addrbookFor publishers
← The evidence ledger

Evidence row 1227660

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 784950d8-c160-4c3e-88e7-856c5cb3804f
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
34fe354104b9630b48c372e81fd3867b219a546a099ae6fe291817c7ba5e5c93
Leaf
0x7d6a396e9748856f51df1b065108cc7922a4147e6bb51e30504ca863f6a55665

What was observed

{
  "count": 10,
  "tools": [
    {
      "description": "Works out how many months a loan takes to pay off and the total interest, month by month (one month of interest = APR / 12 is added, then the payment is taken off), and what an optional extra monthly payment saves in interest and time. Same method as https://profitdrawer.com/tools/loan-payoff-calculator.html. A close estimate; lenders can differ slightly.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "apr_percent": {
            "description": "Annual interest rate (APR) in percent, for example 6.",
            "minimum": 0,
            "type": "number"
          },
          "balance": {
            "description": "Loan balance in USD.",
            "minimum": 0,
            "type": "number"
          },
          "extra_payment": {
            "description": "Optional extra payment each month in USD.",
            "minimum": 0,
            "type": "number"
          },
          "monthly_payment": {
            "description": "Monthly payment in USD.",
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "balance",
          "apr_percent",
          "monthly_payment"
        ],
        "type": "object"
      },
      "name": "calculate_loan_payoff"
    },
    {
      "description": "Works out a price for one service job: cost = hours x hourly pay + materials + travel + monthly overhead / jobs per month; price = cost / (1 - profit margin). Also returns profit per job, monthly revenue and break-even jobs per month. Same formula as https://profitdrawer.com/tools/price-per-job-calculator.html. Margins above 95% are treated as 95%.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "hourly_rate": {
            "description": "Your pay per hour in USD.",
            "minimum": 0,
            "type": "number"
          },
          "hours": {
            "description": "Hours one job takes.",
            "minimum": 0,
            "type": "number"
          },
          "jobs_per_month": {
            "description": "Jobs expected per month; the overhead is shared across them. Default 0.",
            "minimum": 0,
            "type": "number"
          },
          "materials": {
            "description": "Materials per job in USD. Default 0.",
            "minimum": 0,
            "type": "number"
          },
          "monthly_overhead": {
            "description": "Monthly overhead (insurance, phone, software, ...) in USD. Default 0.",
            "minimum": 0,
            "type": "number"
          },
          "profit_margin_percent": {
            "description": "Profit margin as a percent of the price, for example 20.",
            "minimum": 0,
            "type": "number"
          },
          "travel": {
            "description": "Travel cost per job in USD. Default 0.",
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "hours",
          "hourly_rate",
          "profit_margin_percent"
        ],
        "type": "object"
      },
      "name": "calculate_price_per_job"
    },
    {
      "description": "Estimates how much of a self-employed profit to set aside for taxes: set-aside = profit x chosen percent, and the US self-employment tax part = profit x 92.35% x 15.3% (12.4% Social Security + 2.9% Medicare), per month, quarter or year. Same formula as https://profitdrawer.com/tools/self-employed-tax-calculator.html. An estimate, not tax advice.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "period": {
            "default": "month",
            "description": "The period the profit is for. Default month.",
            "enum": [
              "month",
              "quarter",
              "year"
            ],
            "type": "string"
          },
          "profit": {
            "description": "Profit (income minus business expenses) for one period, in USD.",
            "minimum": 0,
            "type": "number"
          },
          "set_aside_percent": {
            "description": "Share of the profit to set aside, in percent, for example 30.",
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "profit",
          "set_aside_percent"
        ],
        "type": "object"
      },
      "name": "calculate_tax_set_aside"
    },
    {
      "description": "Adds up one-time startup costs and monthly costs and works out cash left and months of runway (cash left divided by monthly costs, rounded down to 0.1, assuming no sales). Same formula as https://profitdrawer.com/tools/startup-cost-calculator.html. Optional preset with example amounts: Cleaning, Lawn care, Vending machine, Food truck, Any business; cost lists you pass replace the preset lines. Preset amounts are rough examples, not quotes.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "monthly_costs": {
            "description": "Monthly costs [{label, amount}] in USD. Replaces the preset monthly lines.",
            "items": {
              "properties": {
                "amount": {
                  "description": "USD",
                  "minimum": 0,
                  "type": "number"
                },
                "label": {
                  "maxLength": 60,
                  "type": "string"
                }
              },
              "required": [
                "amount"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "type": "array"
          },
          "one_time_costs": {
            "description": "One-time costs [{label, amount}] in USD. Replaces the preset one-time lines.",
            "items": {
              "properties": {
                "amount": {
                  "description": "USD",
                  "minimum": 0,
                  "type": "number"
                },
                "label": {
                  "maxLength": 60,
                  "type": "string"
                }
              },
              "required": [
                "amount"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "type": "array"
          },
          "preset": {
            "description": "Example cost lines from the website calculator.",
            "enum": [
              "Cleaning",
              "Lawn care",
              "Vending machine",
              "Food truck",
              "Any business"
            ],
            "type": "string"
          },
          "starting_cash": {
            "description": "Starting cash in USD. Default 0.",
            "minimum": 0,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "estimate_startup_costs"
    },
    {
      "description": "Returns one answer published by ProfitDrawer by id: question, short answer, full detail, source with label, published and updated dates, answer page URL, Markdown URL, related questions, and the products and calculators the answer mentions. Ids come from search_profitdrawer.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Answer id, as returned by search_profitdrawer.",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "get_answer"
    },
    {
      "description": "Returns public facts about ProfitDrawer: description, website, founding year with its source, area served, currency, support channels, social profiles and other facts, each with a source. Includes the About page URL.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_company_info"
    },
    {
      "description": "Lists the categories of ProfitDrawer's published answers with description, number of answers and category page URL.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_categories"
    },
    {
      "description": "Lists ProfitDrawer products (spreadsheets, printables, templates, planners and printed goods) with name, price in USD, file formats, availability, product page URL and Etsy listing URL. Optional filters: words to match, collection, maximum price and file format.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "collection": {
            "description": "Collection: money = Money & Budget; business-templates = Business Templates & Kits; planners = Planners; kids = Kids & Family; bookkeeping-spreadsheets = Bookkeeping Spreadsheets; printed = Printed Goods.",
            "enum": [
              "money",
              "business-templates",
              "planners",
              "kids",
              "bookkeeping-spreadsheets",
              "printed"
            ],
            "type": "string"
          },
          "format": {
            "description": "File format to match, for example \"Google Sheets\", \"Excel\", \"PDF\", \"PowerPoint\". Matched as text, case-insensitive.",
            "maxLength": 60,
            "type": "string"
          },
          "limit": {
            "default": 25,
            "description": "Maximum number of products (1-100). Default 25.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "max_price": {
            "description": "Only products at or below this price in USD.",
            "minimum": 0,
            "type": "number"
          },
          "query": {
            "description": "Words to match in the product name, type or collection, for example \"cleaning bookkeeping\".",
            "maxLength": 200,
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_products"
    },
    {
      "description": "Returns rows from the datasets published by ProfitDrawer: irs-small-business-tax-deadlines-2027 (IRS small business tax deadlines 2027); irs-standard-mileage-rates (IRS standard mileage rates for business use, 2020 to 2026). Each row includes its IRS source URL and the date it was checked. Optional: filter by column values. Includes the dataset page URL and license.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "filters": {
            "additionalProperties": {
              "type": [
                "string",
                "number"
              ]
            },
            "description": "Column key to value. Text matches case-insensitively as a substring; numbers match exactly. Example: {\"year\": 2025}.",
            "type": "object"
          },
          "limit": {
            "default": 100,
            "description": "Maximum number of rows (1-200). Default 100.",
            "maximum": 200,
            "minimum": 1,
            "type": "integer"
          },
          "slug": {
            "description": "Dataset slug.",
            "enum": [
              "irs-small-business-tax-deadlines-2027",
              "irs-standard-mileage-rates"
            ],
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "query_dataset"
    },
    {
      "description": "Searches the questions and answers published by ProfitDrawer on small business bookkeeping, taxes, pricing and money. Categories: Bookkeeping basics; Small business taxes; Start a business; Pricing and profit; Personal budgeting; Google Sheets and Excel how-tos; About ProfitDrawer files. Returns up to 10 matching answers, each with id, question, short answer, category, last-updated date and the URL of the answer page. Use get_answer with an id for the full text and source.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "default": 5,
            "description": "Maximum number of answers (1-10). Default 5.",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "query": {
            "description": "Search words or a question.",
            "maxLength": 500,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_profitdrawer"
    }
  ]
}

What the leaf hashes

{"body":"34fe354104b9630b48c372e81fd3867b219a546a099ae6fe291817c7ba5e5c93","id":1227660,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793335511393640,"prev":null,"subject":"784950d8-c160-4c3e-88e7-856c5cb3804f","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (243099 rows).

  1. 0x7d69c6643db0e1f5f942c47592bca836118d5da03d4cb2091f3e792689d8bb4f
  2. 0x30a1e97641637fd0eb0666fd5ad9412dadda4dcc259b28ca13bdb5acaa70703d
  3. 0xca4a41367dd2d1bc4d1c223ea95cfacfe4b8d6e6c76a5a00f5329e6a8400c1d7
  4. 0xf72b56a176e69e57fb1b7c69ef1d1a1f79502e421529c3248533b134a854019b
  5. 0x2981a57f56d0a8bf318b39ee7575d61a58424c1654afdd3d3274cb9340f5b174
  6. 0xa0111c5fe47599fc55724c8777f87758fae0d35583dbc87809e16889c4428bcd
  7. 0x679a201b1483d6af33b8e83bedc588335b675f4b973a116a8ebe68a00389df02
  8. 0xc5e9cdd6fe92e6e1ab877ead2146b669863741c7ec40fc9a27917066ff96e557
  9. 0x71d5af51d0d5e5be768fe256697d89f248891fd1a87666256c21ad7ca006549b
  10. 0xeacfa88b08253280fb09bf1e915ef9c6085c2ce7c235c355fdc16d8d560ab153
  11. 0xe52aad639e8a538914f12d9a11a9b31e8de71838cb27eb9ec5d204819c8da851
  12. 0xcf45f2dcc5888aaadc0eb496a54cc515a0a59ac8c35821d099c43cdc3ab3abad
  13. 0xa7d56640df9ea5dff8b1806e8b12302229aca5a856e7e8485fd58e4585190f8d
  14. 0x98147b4434f11be9b2162fe0bf2cff64bd30ca1bfe5cd0edf25228078b678708
  15. 0x235114e50a987e65d728b9ef8b5978846cd7c01f22effc55dd604c388ce359ec
  16. 0xdbaaffa44665d1fa60d33d2c4075bd87629b76d01a6ee63e621e78590303b56d
  17. 0xffe660edb9e5c6e3449a49454634c3e7b2f9fe703e5697f723b021735647ab7e
  18. 0x30a81d8fcef4e8f9e2877c62796cfc5612fc1b251127d531dee28f8dbd5c5147
Day root
0x0826c7ad6039e06a2360ca0a4a3a4fe7f2626c6dc19f71a37599386f78b39875
Chained
0x36b4c8a1063758f0b8765fa1bdf75fa92fb543cc183add3e261880ee2bd1f822
Published
On Arc Testnet, block 69923247: 0x8704744146c6967c8abc9e9a99de4db7283b29e840922ea83a69b6fe776e6861

How to check it · This row as JSON