addrbookFor publishers
← The evidence ledger

Evidence row 292810

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 0fa5a03e-7063-4e34-83ba-40740c98b974
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
c69021819ef07d92ca9e7316eb66f734c8fddedd130bbbe1cc472b3518cf2441
Leaf
0x65db281dde6a9c5d33fe26fb30a313222625537ddefd1c50a58b29fd8d948db0

What was observed

{
  "count": 14,
  "tools": [
    {
      "description": "Expected invoiced revenue per calendar month per currency from active schedules. Invoiced and skipped periods are excluded and paused schedules listed apart. Free: 3 months; Pro: up to 120.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "months": {
            "description": "Months ahead including this one, default 12",
            "maximum": 120,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "forecast"
    },
    {
      "description": "Create a real invoice in the invoice server for every schedule occurrence on or before as_of that has not been invoiced yet, and render each PDF. Returns what was created, what was skipped and what is still due.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "as_of": {
            "description": "YYYY-MM-DD, defaults to today. Every occurrence on or before this date that has not been invoiced is billed. Idempotent: one invoice per schedule per period, keyed by the occurrence date, so running it twice creates nothing the second time",
            "type": "string"
          },
          "dry_run": {
            "description": "List what would be created without creating anything. Default false. One run creates at most 60 invoices, oldest period first",
            "type": "boolean"
          },
          "schedule_id": {
            "description": "Only this schedule. Free and unlimited on every tier",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "invoice_generate_due"
    },
    {
      "description": "Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "key": {
            "description": "License key from checkout, MCPL1.<payload>.<signature>",
            "type": "string"
          }
        },
        "required": [
          "key"
        ],
        "type": "object"
      },
      "name": "license_activate"
    },
    {
      "description": "Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "license_status"
    },
    {
      "description": "Define a repeating invoice: a client, the line items, how often to bill, and when it starts and ends. Returns the schedule id, a summary and its next dates. Nothing is invoiced until invoice_generate_due runs.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "anchor_day": {
            "description": "Pro: bill on this day of month instead of the start date's day. 31 means the last day of every month",
            "maximum": 31,
            "minimum": 1,
            "type": "integer"
          },
          "auto_generate": {
            "description": "Marks the schedule for the monthly_billing_run prompt. Default false. Nothing runs in the background either way: invoices are created only when invoice_generate_due is called",
            "type": "boolean"
          },
          "client": {
            "description": "Client name or id, as in the invoice server. Unknown names are created on the first generated invoice",
            "type": "string"
          },
          "currency": {
            "description": "Defaults to your business default currency",
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "due_days": {
            "description": "Days until each invoice is due, defaults to your payment terms",
            "type": "integer"
          },
          "end_date": {
            "description": "YYYY-MM-DD, INCLUSIVE: an occurrence landing exactly on it is still generated",
            "type": "string"
          },
          "end_of_month": {
            "description": "Pro: always bill on the last day of the month",
            "type": "boolean"
          },
          "every": {
            "anyOf": [
              {
                "enum": [
                  "weekly",
                  "monthly",
                  "quarterly",
                  "yearly"
                ],
                "type": "string"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "days": {
                    "maximum": 3650,
                    "minimum": 1,
                    "type": "integer"
                  }
                },
                "required": [
                  "days"
                ],
                "type": "object"
              }
            ],
            "description": "How often to bill: \"weekly\", \"monthly\", \"quarterly\", \"yearly\", or {days: 10}. Month steps keep the start date's day of month and clamp it to shorter months, so a schedule starting on the 31st bills on the 28th/29th in February and back on the 31st in March"
          },
          "items": {
            "description": "The line items billed every period",
            "items": {
              "additionalProperties": false,
              "properties": {
                "description": {
                  "type": "string"
                },
                "quantity": {
                  "description": "Hours, units or 1 for a flat fee",
                  "maximum": 1000000000000,
                  "minimum": -1000000000000,
                  "type": "number"
                },
                "tax_rate": {
                  "description": "VAT percent for this line, overrides the business default",
                  "maximum": 1000,
                  "minimum": -100,
                  "type": "number"
                },
                "unit_price": {
                  "description": "Price per unit in major units, e.g. 90 for 90 EUR",
                  "maximum": 1000000000000,
                  "minimum": -1000000000000,
                  "type": "number"
                }
              },
              "required": [
                "description",
                "quantity",
                "unit_price"
              ],
              "type": "object"
            },
            "maxItems": 200,
            "minItems": 1,
            "type": "array"
          },
          "notes": {
            "description": "Free text printed under the totals of every generated invoice",
            "type": "string"
          },
          "start_date": {
            "description": "YYYY-MM-DD. The first invoice falls on this date, and for weekly/monthly/quarterly/yearly steps its day of month is the billing day for every later period",
            "type": "string"
          },
          "tax_note": {
            "description": "Why this schedule bills the tax it bills, e.g. 'Reverse charge: VAT accounted for by the recipient, art. 196 Directive 2006/112/EC'. It is printed under the totals of EVERY invoice this schedule generates, so a 0% retainer carries its reason on the document instead of only in the chat",
            "type": "string"
          }
        },
        "required": [
          "client",
          "items",
          "every",
          "start_date"
        ],
        "type": "object"
      },
      "name": "schedule_create"
    },
    {
      "description": "Delete one schedule permanently. Invoices already generated stay in the invoice server and the history is kept. Re-creating it gives a NEW id, so its old periods count as unbilled. schedule_pause is reversible.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Schedule id, or a client name. Deletion is permanent; re-creating the same schedule afterwards gives it a NEW id, so its old periods count as unbilled again",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "schedule_delete"
    },
    {
      "description": "Return one schedule in full by id or client: items, cadence, dates, due days, anchor rules, notes, per-period amount, next due date and how many invoices it generated. schedule_history is the log.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Schedule id, or a client name",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "schedule_get"
    },
    {
      "description": "The audit log for one schedule id, oldest first: period, invoice number, issue and due dates, amount, PDF path, and whether that invoice is unpaid, paid, skipped or since deleted. schedule_list finds the id. Pro.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "schedule_history"
    },
    {
      "description": "List schedules: id, client, cadence, per-period amount and currency, start and end dates, status, next due date and auto_generate. Filter by status; a paused schedule reports no next due date.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "status": {
            "enum": [
              "active",
              "paused"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "schedule_list"
    },
    {
      "description": "Stop one schedule generating invoices without deleting it; invoice_generate_due and forecast skip it. Its periods keep falling due and resuming back-bills them, so use schedule_skip to drop just one.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "schedule_pause"
    },
    {
      "description": "Make a paused schedule active again. Every period missed while it was paused is still due and the next invoice_generate_due creates them all. Refused when it would pass the free tier's 3 active.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "schedule_resume"
    },
    {
      "description": "Close ONE occurrence for good without pausing the schedule, reporting what will not be billed. period must be a real occurrence of it. An invoiced period is refused; undo reopens a skip.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Schedule id, or a client name",
            "type": "string"
          },
          "period": {
            "description": "The occurrence date to skip, YYYY-MM-DD, exactly as it appears in schedule_upcoming or forecast. This is the answer to \"pause this client for October\": schedule_pause stops the whole schedule and a resumed schedule still back-bills the periods it missed, whereas a skipped period is closed for good",
            "type": "string"
          },
          "undo": {
            "description": "Remove a previous skip so the period becomes due again. Works only on a period that has not been invoiced. Default false",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "period"
        ],
        "type": "object"
      },
      "name": "schedule_skip"
    },
    {
      "description": "Table every occurrence of every ACTIVE schedule due in the next N days (30 default), with its amount and the invoice due date, plus a total per currency. Free lists the first 3 in your horizon.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "days": {
            "description": "Days ahead, default 30. The free tier honours the horizon you ask for and lists the first 3 occurrences in it; Pro lists them all",
            "maximum": 3650,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "schedule_upcoming"
    },
    {
      "description": "Change one schedule by id: client, items, currency, cadence, dates, due_days, notes or auto_generate. Only the fields you pass change. Periods already invoiced are never re-issued, so a new amount applies to future ones.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "additionalProperties": false,
        "properties": {
          "anchor_day": {
            "anyOf": [
              {
                "maximum": 31,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Pro"
          },
          "auto_generate": {
            "type": "boolean"
          },
          "client": {
            "type": "string"
          },
          "currency": {
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "due_days": {
            "type": "integer"
          },
          "end_date": {
            "description": "null clears the end date",
            "type": [
              "string",
              "null"
            ]
          },
          "end_of_month": {
            "description": "Pro",
            "type": "boolean"
          },
          "every": {
            "anyOf": [
              {
                "enum": [
                  "weekly",
                  "monthly",
                  "quarterly",
                  "yearly"
                ],
                "type": "string"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "days": {
                    "maximum": 3650,
                    "minimum": 1,
                    "type": "integer"
                  }
                },
                "required": [
                  "days"
                ],
                "type": "object"
              }
            ],
            "description": "How often to bill: \"weekly\", \"monthly\", \"quarterly\", \"yearly\", or {days: 10}. Month steps keep the start date's day of month and clamp it to shorter months, so a schedule starting on the 31st bills on the 28th/29th in February and back on the 31st in March"
          },
          "id": {
            "type": "string"
          },
          "items": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "description": {
                  "type": "string"
                },
                "quantity": {
                  "description": "Hours, units or 1 for a flat fee",
                  "maximum": 1000000000000,
                  "minimum": -1000000000000,
                  "type": "number"
                },
                "tax_rate": {
                  "description": "VAT percent for this line, overrides the business default",
                  "maximum": 1000,
                  "minimum": -100,
                  "type": "number"
                },
                "unit_price": {
                  "description": "Price per unit in major units, e.g. 90 for 90 EUR",
                  "maximum": 1000000000000,
                  "minimum": -1000000000000,
                  "type": "number"
                }
              },
              "required": [
                "description",
                "quantity",
                "unit_price"
              ],
              "type": "object"
            },
            "maxItems": 200,
            "minItems": 1,
            "type": "array"
          },
          "notes": {
            "type": "string"
          },
          "start_date": {
            "type": "string"
          },
          "tax_note": {
            "description": "Replace the tax reason carried onto every future generated invoice. Pass an empty string to clear it",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "name": "schedule_update"
    }
  ]
}

What the leaf hashes

{"body":"c69021819ef07d92ca9e7316eb66f734c8fddedd130bbbe1cc472b3518cf2441","id":292810,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793048968889898,"prev":null,"subject":"0fa5a03e-7063-4e34-83ba-40740c98b974","subject_kind":"endpoint"}

Proof

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

  1. 0x65db5194f1d2a990efe210c0bfe8d372afba0a741cc33b686d03690c7831f6d3
  2. 0xc010b3eb9cc713f0ed83cf3521d937e6d1e0b397ddb967f1bdeb2828b6bfdfbd
  3. 0x2dd147c6d3de509d6d0102d961384a363ffa163b8687f57e6c929c57872b0c61
  4. 0x8ca3c2a5bda8e2b57d682b8024a71881e28deb14bb4a33057663fac7421f2240
  5. 0xd77f7a242ba0c6fed485e9b20ed9582f7b07dc82d0589a2466e670e7355cd1dd
  6. 0x5081ac22473e4e0759cf6276a679278750f6c8db091858fe96c13b2c5c9b4fd2
  7. 0xdfefa62539a455bfdb614e761b7c93a144eba30eb2a5d9879f1da331c0fecb71
  8. 0x00c659bf3fec3c1506d3a463f23b47a65837539af28c1e5b5f3dfee7f5f5ac82
  9. 0xaefd42c44fc9de8b508dbc7ce1a1219a2819ec0fb2f590559df61ac4681d5d28
  10. 0x17b7b18fdb5634f7375f480081f04da08fa690f97e6123e0cec534ab5ca72dd5
  11. 0x97befbe0402dae50d99027054f0d354513b22fda782f887ba0d9fae94219c296
  12. 0x611b1c1b68d04a71934006e383071a8f3836400d60beb86d81dd038bc102029f
  13. 0x13f4b94ecf613d585c952b5363dad2b247a55371eb8e358bb89dc033e83128b1
  14. 0x9a79c65e077cd9da9d436b3ade6f5ddc0d244510c4d5903ef2f02d81205f7666
  15. 0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40
  16. 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON