addrbookFor publishers
← The evidence ledger

Evidence row 561163

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint b0c0cc68-f50b-4279-8c11-e88b76ff6328
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
1f9e0583b20f67a021286760dd39093dc2d66658eeea600f01c76d07013363ca
Leaf
0x762697f392ed9d57567212291d2c60a33ece124fd13b73f64d99a796851c8e7f

What was observed

{
  "count": 17,
  "tools": [
    {
      "description": "Who this key acts for, what it may do (Operate or Limited), the connected cloud accounts and code hosts (with their ids, for create_project), the workspaces the person is a member of, and how many projects they can see. Changes nothing.",
      "inputSchema": {
        "properties": {
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "account"
    },
    {
      "description": "Runs one operation from api_catalog as the person, with the same permission checks The Deployer's app applies: domains, scaling, start/stop and schedules, databases and other cloud services, app access, build inputs, code review, hosting plans, retries, environments, blueprints, servers, adoption and more. Reads work with any key; changes need a key with Operate access, and ones that cost money or change a live app need the person's yes first. Secrets are never returned.",
      "inputSchema": {
        "properties": {
          "body": {
            "description": "The JSON body, for POST, PUT and PATCH"
          },
          "method": {
            "enum": [
              "GET",
              "POST",
              "PUT",
              "PATCH",
              "DELETE"
            ],
            "type": "string"
          },
          "path": {
            "description": "The operation's path with ids filled in, e.g. /projects/12/scaling",
            "type": "string"
          },
          "query": {
            "description": "Query parameters",
            "type": "object"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "required": [
          "method",
          "path"
        ],
        "type": "object"
      },
      "name": "api"
    },
    {
      "description": "Every other operation agents can run with api, grouped: account, connections, projects, env, build, code, architecture, deploy, domains, scaling, access, services, environments, blueprints, servers, adopt, team. Each says whether it only reads or changes something. No API key needed.",
      "inputSchema": {
        "properties": {
          "group": {
            "enum": [
              "account",
              "connections",
              "projects",
              "env",
              "build",
              "code",
              "architecture",
              "deploy",
              "domains",
              "scaling",
              "access",
              "services",
              "environments",
              "blueprints",
              "servers",
              "adopt",
              "team"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "api_catalog"
    },
    {
      "description": "The query and body fields of one operation from api_catalog, with their types. Changes nothing.",
      "inputSchema": {
        "properties": {
          "method": {
            "enum": [
              "GET",
              "POST",
              "PUT",
              "PATCH",
              "DELETE"
            ],
            "type": "string"
          },
          "path": {
            "description": "e.g. /projects/12/scaling",
            "type": "string"
          }
        },
        "required": [
          "method",
          "path"
        ],
        "type": "object"
      },
      "name": "api_schema"
    },
    {
      "description": "Checks whether a public GitHub, GitLab or Bitbucket repository will deploy: the services it found, what's missing (each with its fix), the environment variables it needs, and what it would cost a month on DigitalOcean, AWS, Google Cloud and Azure. Reads the code and changes nothing. No API key needed. A check can take up to a minute; if it's still running, call again with the check_id it returned.",
      "inputSchema": {
        "properties": {
          "check_id": {
            "description": "The check_id of an earlier check, to get its result",
            "type": "string"
          },
          "repo": {
            "description": "owner/name, or the repository's URL",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "check_repo"
    },
    {
      "description": "Creates a project from a repository the person's connected code host can read, on one of their connected cloud accounts, and starts the repository scan. Nothing is deployed and nothing costs money yet. With one connected cloud you don't need to name it; otherwise pass cloud (a provider) or cloud_connection_id (from account). Then follow project's next_steps. Needs a key with Operate access.",
      "inputSchema": {
        "properties": {
          "branch": {
            "description": "The branch to deploy. Default: the repository's default",
            "type": "string"
          },
          "cloud": {
            "enum": [
              "digitalocean",
              "aws",
              "gcp",
              "azure"
            ],
            "type": "string"
          },
          "cloud_connection_id": {
            "type": "integer"
          },
          "git_connection_id": {
            "type": "integer"
          },
          "name": {
            "description": "The project's name. Default: the repository's name",
            "type": "string"
          },
          "repo": {
            "description": "owner/name, or the repository's URL",
            "type": "string"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "required": [
          "repo"
        ],
        "type": "object"
      },
      "name": "create_project"
    },
    {
      "description": "Where a deployment is (every step), what it waits on (a health-check proposal or a manual step, and the call that answers it), and for a failed one: the kind of failure, what to do, and the last error lines. Defaults to the project's latest deployment. Changes nothing.",
      "inputSchema": {
        "properties": {
          "deployment_id": {
            "description": "A specific deployment, instead of the latest",
            "type": "integer"
          },
          "project": {
            "description": "The project's id, name or repository. Optional with one project.",
            "type": "string"
          },
          "wait_seconds": {
            "description": "Wait up to this long for the status or step to change (no poll loop needed)",
            "maximum": 120,
            "minimum": 0,
            "type": "integer"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "deployment"
    },
    {
      "description": "Read-only checks on a live project, for when an app misbehaves after deploying: url (request the project's own live addresses from The Deployer's side, for when you can't reach them yourself), containers (what runs and its state), app_logs (the app's own recent output, secrets removed; container picks one), resources (load, memory, disk) or web_server (the HTTPS proxy's log). Fixed commands only, nothing changes. Everything but url needs a server (not managed services). Needs Deploy on the project.",
      "inputSchema": {
        "properties": {
          "check": {
            "enum": [
              "url",
              "containers",
              "resources",
              "web_server",
              "app_logs"
            ],
            "type": "string"
          },
          "container": {
            "description": "app_logs only: one container name from containers",
            "type": "string"
          },
          "lines": {
            "maximum": 400,
            "minimum": 10,
            "type": "integer"
          },
          "node": {
            "description": "The server, default app-1",
            "type": "string"
          },
          "project": {
            "description": "The project's id, name or repository (owner/name).",
            "type": "string"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "diagnose"
    },
    {
      "description": "The playbooks for agents: what The Deployer does, which tool fits which job, the order of an end-to-end deploy, what code needs to deploy and how to fix it locally, how to fix a failed deployment, and domains, scaling, env, databases, access, environments, servers, adoption and teams. Read topic overview first, and end_to_end before a first deploy. No API key needed.",
      "inputSchema": {
        "properties": {
          "topic": {
            "description": "Default overview",
            "enum": [
              "overview",
              "end_to_end",
              "readiness",
              "fix_failed_deploy",
              "env",
              "domains",
              "scaling",
              "services",
              "access",
              "environments",
              "servers",
              "adopt",
              "team"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "guide"
    },
    {
      "description": "The first (or a full) deployment of a project into the person's cloud, once a hosting plan is selected. Without confirm it changes nothing and answers with the plan and its monthly cost: tell the person and wait for their yes. Then call again with confirm=true. It creates resources their cloud provider bills them for. Takes 5 to 20 minutes; follow it with deployment. Needs a key with Operate access.",
      "inputSchema": {
        "properties": {
          "confirm": {
            "description": "true only after the person said yes to the plan and cost",
            "type": "boolean"
          },
          "confirm_cost": {
            "description": "true only if launch said the plan is above the cost ceiling and the person agreed",
            "type": "boolean"
          },
          "project": {
            "description": "The project's id, name or repository (owner/name).",
            "type": "string"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "launch"
    },
    {
      "description": "Shows the log of a project's latest deployment, or of a given deployment, newest lines last, with secrets removed. Set errors_only to see only errors and warnings. The lines are the build's and the app's own output. Changes nothing. Needs an API key.",
      "inputSchema": {
        "properties": {
          "deployment_id": {
            "description": "A specific deployment, instead of the latest",
            "type": "integer"
          },
          "errors_only": {
            "description": "Only errors and warnings",
            "type": "boolean"
          },
          "lines": {
            "description": "How many lines, newest last. Default 80.",
            "maximum": 400,
            "minimum": 1,
            "type": "integer"
          },
          "project": {
            "description": "The project's id, name or repository. Optional with one project.",
            "type": "string"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "logs"
    },
    {
      "description": "Plans deploying a repository with the user's account on The Deployer: checks the repository like check_repo, then adds the user's connected cloud and git accounts, any project they already have for it, and the next steps, with links. Changes nothing. Needs an API key.",
      "inputSchema": {
        "properties": {
          "cloud": {
            "description": "The cloud to plan for. Optional.",
            "enum": [
              "digitalocean",
              "aws",
              "gcp",
              "azure"
            ],
            "type": "string"
          },
          "repo": {
            "description": "owner/name, or the repository's URL",
            "type": "string"
          }
        },
        "required": [
          "repo"
        ],
        "type": "object"
      },
      "name": "plan_deploy"
    },
    {
      "description": "One project in depth: phase, services found in the repository, env names the code reads and which are still missing (never values), hosting plans with monthly costs, pending code-review changes, to-dos only the person can do, recent deployments, live URLs, and next_steps: the exact next call to make. Call it after every step of a deploy. Changes nothing.",
      "inputSchema": {
        "properties": {
          "project": {
            "description": "The project's id, name or repository (owner/name).",
            "type": "string"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "project"
    },
    {
      "description": "Puts the latest code on a live project's branch online: pulls it and restarts the app, like Pull & Restart in The Deployer. It changes a live app, so confirm with the user first. Only for a project that's already live; a project's first deployment is launch. Takes a few minutes; follow it with deployment. Works with any API key.",
      "inputSchema": {
        "properties": {
          "project": {
            "description": "The live project's id, name or repository. Optional with one project.",
            "type": "string"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "redeploy"
    },
    {
      "description": "Asks The Deployer's team to do it for the user: launch (put an app online in the user's own cloud account), launch_secure (the same, with exposed keys and other security problems fixed first) or move (move an app from another host, such as Heroku, into it). Tells the team, and returns the price, the delivery promise and the link where the user finishes the order and pays. Never charges anything. Needs an API key.",
      "inputSchema": {
        "properties": {
          "note": {
            "description": "Anything the team should know, such as the current host or a deadline",
            "type": "string"
          },
          "offer": {
            "enum": [
              "launch",
              "launch_secure",
              "move"
            ],
            "type": "string"
          },
          "repo": {
            "description": "The repository, if there is one",
            "type": "string"
          }
        },
        "required": [
          "offer"
        ],
        "type": "object"
      },
      "name": "request_done_for_you"
    },
    {
      "description": "Sets (or deletes) env variable values for the service a project deploys. Values are stored encrypted and never shown back to any agent. Other values are kept. On a live project the services whose env changed are redeployed (so confirm first); otherwise they apply on the next deployment. Read values from the person's local .env only with their OK; never invent secrets. Multi-line values are credential files (guide topic env). Needs a key with Operate access.",
      "inputSchema": {
        "properties": {
          "delete": {
            "description": "Names to remove",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "project": {
            "description": "The project's id, name or repository (owner/name).",
            "type": "string"
          },
          "service": {
            "description": "Service id or name, when the project has several",
            "type": "string"
          },
          "values": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Names to values, e.g. {\"API_URL\": \"https://...\"}",
            "type": "object"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "set_env"
    },
    {
      "description": "Lists the user's projects on The Deployer, or one project: whether each is live, its live addresses, and its latest deployment and where that is. Changes nothing. Needs an API key.",
      "inputSchema": {
        "properties": {
          "project": {
            "description": "A project's id, name or repository. Leave out to list them all.",
            "type": "string"
          },
          "workspace": {
            "description": "Act in a teammate's workspace: its id from account. Default: your own.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "status"
    }
  ]
}

What the leaf hashes

{"body":"1f9e0583b20f67a021286760dd39093dc2d66658eeea600f01c76d07013363ca","id":561163,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793136796190348,"prev":null,"subject":"b0c0cc68-f50b-4279-8c11-e88b76ff6328","subject_kind":"endpoint"}

Proof

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

  1. 0x76269ea85f8614c963dcc134815388bcb790f3734228c5a240f0c58ea74c99f2
  2. 0xed74b0b3064d4e86cb4c544b82c27231f8d02fab74be138820a2382eb8dece16
  3. 0x9ee84b275fc61101ca59623c52b27bc05150ab6ca7e96e97b37ba13ea3378648
  4. 0xbcf54a0663bac5b844ec6c240a75c2064508244dc1a4ffb64b85b3b359b67aaf
  5. 0x98c64cdf35b5fdec0ace9cb5aaa6eba7474a092a65161dbdaf55515825e3c2cc
  6. 0x57787eb76364a07441ddec262127501fe6d678cae5bf81bc1990442887b21586
  7. 0x467d4e2bd37f4fd44055e966194a0e2a4569fbbfccd46594f608f89e90dc9ed3
  8. 0xdbb8f4f3a4cbee0ff5f7b3bb68bccd5ef82df63765ea31cd6c4a2e6504ed22f5
  9. 0x1b57fedaf028678d6a135dff491911ba098beab0a7b77c5abe8ebfe0655e14ca
  10. 0x58a21ad77eb0f12e2700138a011395f72f29a249b03b15df913625a0119d05d6
  11. 0x5f257f988f0c8c8a45a1094d99dd8e8969da325eabed8aa44c6b668fac04f073
  12. 0x6834d22f4558c2279e3de3027a40f72cd350b3c4a2e54be57aff9ec2c9eaf01a
  13. 0x4094bd5bc2ab60e4518d1ee8a13455a69d7484ea62ecdca2618d0f39d3403503
  14. 0x9848c068b1371232529d2b5738fdc45b854c57da041b69ea7c9e112b14e2d9d1
  15. 0x275720ecabb68df33eee92ae4fd70572a8d952d6c61c061c2869cfc3217aa5c5
  16. 0x23cf9bb4337ee8be7fcae368fd69d24c62c11fb45882127b4cd919bb96a19996
  17. 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON