← The evidence ledger
Evidence row 292639
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 7c30ddce-ea94-478d-808f-09d6f8ee0d61
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- e5c9c2dadc4f32b84d7c970f20822217e6ec1ae0886f49a2d03b1cd25a65ddc8
- Leaf
- 0x02b4a4ed9887302b24c5e6e712ba8995f740c54499010d6ccf962342305ceb26
What was observed
{
"count": 11,
"tools": [
{
"description": "Open a job card for a job your crew is taking on and return its JC-YYYY-NNNN number: the client, the site, what the job is, the currency and when it is scheduled. Free tier: 10 active cards; archiving a finished job frees its slot.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"client": {
"description": "Who the job is for, e.g. Kowalski bathroom refit, or Acme Ltd",
"maxLength": 200,
"type": "string"
},
"currency": {
"description": "ISO code the rates and prices are in",
"pattern": "^[A-Za-z]{3}$",
"type": "string"
},
"description": {
"description": "What the job is, e.g. Replace the consumer unit and certify",
"maxLength": 2000,
"type": "string"
},
"note": {
"maxLength": 2000,
"type": "string"
},
"scheduled_date": {
"description": "The date the crew is due on site, YYYY-MM-DD. May be in the future; it is a plan, not a log",
"maxLength": 10,
"type": "string"
},
"site": {
"description": "Where the job is, e.g. 14 Nowa Street, flat 3",
"maxLength": 400,
"type": "string"
}
},
"required": [
"client",
"site",
"description",
"currency"
],
"type": "object"
},
"name": "job_card_create"
},
{
"description": "Delete a job card entered by mistake. One with labor or materials logged is refused, naming what it holds, because deleting it would lose the record of work done: archive it instead. The JC number is never reissued.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"card": {
"description": "The job card id, e.g. JC-2026-0003, or the client name when only one card has it",
"maxLength": 200,
"type": "string"
}
},
"required": [
"card"
],
"type": "object"
},
"name": "job_card_delete"
},
{
"description": "Read one job card in full by JC number or client: every labor entry and every material used, the hours per worker, and the running totals -- labor, materials and grand total -- as integer cents with formatted amounts. Reads only.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"card": {
"description": "The job card id, e.g. JC-2026-0003, or the client name when only one card has it",
"maxLength": 200,
"type": "string"
}
},
"required": [
"card"
],
"type": "object"
},
"name": "job_card_get"
},
{
"description": "List job cards newest first: client, site, status, hours logged, and the labor, materials and grand totals in cents. Filter by status and by client. Totals are kept per currency, never mixed.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"client": {
"description": "Only cards whose client contains this text, case-insensitive",
"maxLength": 200,
"type": "string"
},
"status": {
"description": "Only cards at this status: open, in_progress, done, invoiced, archived",
"maxLength": 20,
"type": "string"
}
},
"type": "object"
},
"name": "job_card_list"
},
{
"description": "Log hours worked on a job card: who did the work, the day, the hours and the hourly rate in whole cents, with a note on what was done. The line value is hours times rate, rounded half-up to the cent, fixed the moment it is logged.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"card": {
"description": "The job card id, e.g. JC-2026-0003, or the client name when only one card has it",
"maxLength": 200,
"type": "string"
},
"date": {
"description": "The day the work was done, YYYY-MM-DD. A future date is refused",
"maxLength": 10,
"type": "string"
},
"hours": {
"description": "Hours worked, to the hundredth, e.g. 7.5 or 3.25. One entry is one worker's day at most",
"exclusiveMinimum": 0,
"maximum": 24,
"type": "number"
},
"note": {
"description": "What was done, e.g. First fix, kitchen ring main",
"maxLength": 2000,
"type": "string"
},
"rate_cents": {
"description": "The hourly rate in whole cents. 4500 is 45.00 an hour",
"maximum": 100000000000000,
"minimum": 0,
"type": "integer"
},
"worker": {
"description": "Who did the work, e.g. Anna",
"maxLength": 200,
"type": "string"
}
},
"required": [
"card",
"worker",
"date",
"hours",
"rate_cents"
],
"type": "object"
},
"name": "job_card_log_labor"
},
{
"description": "Log materials used on a job card: the item, the day it went in, the quantity and the unit cost in whole cents. The line value is quantity times unit cost, rounded half-up to the cent, fixed the moment it is logged.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"card": {
"description": "The job card id, e.g. JC-2026-0003, or the client name when only one card has it",
"maxLength": 200,
"type": "string"
},
"date": {
"description": "The day it went in, YYYY-MM-DD. A future date is refused",
"maxLength": 10,
"type": "string"
},
"item": {
"description": "What went into the job, e.g. Copper pipe 15mm, or Consumer unit 10-way",
"maxLength": 200,
"type": "string"
},
"note": {
"maxLength": 2000,
"type": "string"
},
"qty": {
"description": "How many, to the thousandth, e.g. 2 or 0.5",
"exclusiveMinimum": 0,
"maximum": 1000000,
"type": "number"
},
"unit_cost_cents": {
"description": "What one costs in whole cents. 1299 is 12.99",
"maximum": 100000000000000,
"minimum": 0,
"type": "integer"
}
},
"required": [
"card",
"item",
"date",
"qty",
"unit_cost_cents"
],
"type": "object"
},
"name": "job_card_log_material"
},
{
"description": "Render a job card ready to print and hand to the client: the labor, the materials, the totals and a signature line for client sign-off. Markdown, or self-contained HTML that needs nothing from the network. Writes nothing.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"card": {
"description": "The job card id, e.g. JC-2026-0003, or the client name when only one card has it",
"maxLength": 200,
"type": "string"
},
"format": {
"description": "markdown (default) or html. The HTML carries its own styling and references nothing external",
"enum": [
"markdown",
"html"
],
"type": "string"
}
},
"required": [
"card"
],
"type": "object"
},
"name": "job_card_print"
},
{
"description": "Hours and value for a day or a week: the job cards touched, the hours per worker, and the labor, materials and total value, kept per currency. A week runs Monday to Sunday. Touched means a labor or material entry dated inside the window.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"date": {
"description": "A date inside the window, YYYY-MM-DD. Default today",
"maxLength": 10,
"type": "string"
},
"span": {
"description": "day (default) is the date itself; week is the Monday to Sunday containing it",
"enum": [
"day",
"week"
],
"type": "string"
}
},
"type": "object"
},
"name": "job_card_summary"
},
{
"description": "Move one job card exactly one step: open, in_progress, done, invoiced, archived, stamping the date and an optional note into its history. A skipped or backwards step is refused and nothing is written. Archiving a finished job frees a free-tier slot.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"card": {
"description": "The job card id, e.g. JC-2026-0003, or the client name when only one card has it",
"maxLength": 200,
"type": "string"
},
"date": {
"description": "The date to stamp the step with, YYYY-MM-DD. Default today",
"maxLength": 10,
"type": "string"
},
"note": {
"maxLength": 2000,
"type": "string"
},
"status": {
"description": "The next step for this card: open, in_progress, done, invoiced, archived. in-progress is accepted too",
"maxLength": 20,
"type": "string"
}
},
"required": [
"card",
"status"
],
"type": "object"
},
"name": "job_card_update_status"
},
{
"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"
}
]
}What the leaf hashes
{"body":"e5c9c2dadc4f32b84d7c970f20822217e6ec1ae0886f49a2d03b1cd25a65ddc8","id":292639,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793048887543786,"prev":null,"subject":"7c30ddce-ea94-478d-808f-09d6f8ee0d61","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x02b49ff8661b2f5d040385505cf35333bf04a97a84a681261d0e797ae3da77c7
- 0xea9bfaeb10d541d9d09e3625a6a8e9d9b52acd38a9973f8a46049fc93277337b
- 0x528058cc2ad768ef9f54634944674cb427389897887fa9cf21767fa3595e59f7
- 0xc23b92360788bdc4c4dacf8d8f75e6772c912d95e04ff6d8632df7c0f9c9669c
- 0x70a1d195772e8953a1c21046f342854b9182f3fd9df45a167c5605221649a607
- 0x649156d389bc4f8c924c9250ff990871a247d722b555536d7156b984b8a2d183
- 0x6915fe9995c2bf44effa4b831bb7394975a4c39bad53e4452211c10fbfa79709
- 0xe0f68cc38193c8f7d03604a84ca06764cc307830e9282bc1e2179bfa5229bf0d
- 0x0f72f9b37b4039cbc3aae0497be60babe84e78bbc0183946137d3e4b5bcad991
- 0x0507461ad0f3996c7ed1e50036c084ea5d5d84cc0a082dd8688f824e00fc6a5b
- 0x4e18f6df894eff467396bfe85f6d6b90f40522629a1dd7517152c38e1c70e111
- 0xd75ede2689ed83bbc8980becaf4f32a77c7e05567790cd351e997bb28aa0844c
- 0x92ff7d176556ddbe3d885e2ab73948b14a6aa3568a8fd237427d4f8415235a23
- 0xd1d3499072edb10edc68f84bcae2365d2ab534df689250cab18c751b6f13b6ff
- 0x7ddc2fead128357f881b63e6c7c26d7fbbb84fca6c7c8e0bbfe386de86ca8d39
- 0xc6a4d7899a0f442958e26505011190b7cff2483611c1b94eba9043e0ba9ac36e
- 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae