← The evidence ledger
Evidence row 586726
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 9c010668-884c-4e3d-ae22-64b8faa1c5ca
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 4c3836091e9c1cb4a3219bb42e706f83bd47071b56277bdfac051ba0ff248d39
- Leaf
- 0x219fdb0df3b995260dd7dae1fab3dbef45def7cca6496010ac5a49bbf66daa9a
What was observed
{
"count": 12,
"tools": [
{
"description": "The published HTTP contract shared by Claspine Atlas and the self-hosted engine (paths under /api/v1). Without path: every operation. With path (and method): parameters, request body and responses with schemas resolved.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"method": {
"description": "HTTP method (default: the path's first).",
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE"
],
"type": "string"
},
"path": {
"description": "For example /payments/orders/{orderId}/refund.",
"type": "string"
}
},
"type": "object"
},
"name": "api_reference"
},
{
"description": "Runs Claspine's Agent Shield rules on files or a unified diff: hardcoded or client-exposed secrets, SQL built from strings, unscoped tenant queries, secrets in logs, buffered uploads, imports of platform internals. Returns file, line, rule and the fix. Code is analysed in memory and not stored. A clean result is not proof of safety; Spring Boot builds also run ProductBoundaryTest.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"diff": {
"description": "A unified diff (only added lines are checked).",
"type": "string"
},
"files": {
"description": "Files to check (path decides browser vs server code).",
"items": {
"properties": {
"content": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"path",
"content"
],
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"name": "check_code"
},
{
"description": "Checks application.yml / application.properties or the engine's environment variables: empty values that switch providers on, sandbox sign-in in STAGING/PRODUCTION, IP addresses as hosts, secrets written into settings, and misspelled setting names. Content is not stored.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"content": {
"description": "The settings file's content.",
"type": "string"
},
"format": {
"description": "yaml, properties or env (default: guessed).",
"enum": [
"yaml",
"properties",
"env"
],
"type": "string"
}
},
"required": [
"content"
],
"type": "object"
},
"name": "check_config"
},
{
"description": "Finds the Claspine version in project files (pom.xml, build.gradle, package.json, docker-compose.yml) or takes it as given, and lists the checklist items of every upgrade note up to the target.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"current": {
"description": "Current version, if known.",
"type": "string"
},
"files": {
"description": "Project files to read the current version from (path and content).",
"items": {
"properties": {
"content": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"path",
"content"
],
"type": "object"
},
"type": "array"
},
"target": {
"description": "Target version (default: the latest release).",
"type": "string"
}
},
"type": "object"
},
"name": "check_upgrade"
},
{
"description": "What a Claspine error code means and how to fix it: HTTP status, the messages it is raised with, where, and the fix for common ones. Every Claspine error response carries its code.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"description": "The error's code, for example HOST_NOT_AVAILABLE.",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "explain_error"
},
{
"description": "The full text of one Claspine guide: steps, code, settings, safety notes and troubleshooting.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "The guide's slug, for example \"sign-in-engine\" (see search_docs).",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_guide"
},
{
"description": "Copy-ready HTTP calls for a common task on Claspine Atlas or the self-hosted engine, in curl, Node.js, Python, Go or Java, checked against Claspine's API on every build. Without task: the list.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"form": {
"description": "Where Claspine runs (default: the first the recipe supports).",
"enum": [
"cloud",
"engine"
],
"type": "string"
},
"language": {
"description": "Code language (default curl; \"all\" for every language).",
"enum": [
"curl",
"node",
"python",
"go",
"java",
"all"
],
"type": "string"
},
"task": {
"description": "Recipe slug or words, for example \"file-upload\" or \"refund\".",
"type": "string"
}
},
"type": "object"
},
"name": "get_recipe"
},
{
"description": "The public Java types of a Claspine capability (its api package) and of the foundation, with methods and record fields, from the current platform build. Without arguments: the capabilities.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"capability": {
"description": "For example payments, files, llm, notifications, authorization, foundation.",
"type": "string"
},
"type": {
"description": "A type name, for example Payments or RefundPaymentCommand.",
"type": "string"
}
},
"type": "object"
},
"name": "java_api"
},
{
"description": "An exact, ordered plan for adding Claspine to this project: what the person must do first, then each step with the files and settings to change (current release pinned) and how to prove it worked. Call it after you know the stack, new or existing, and the person's decisions (Atlas or self-hosted, whose login, which features), and follow it step by step.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"current_version": {
"description": "Only if the project already uses Claspine: its version now (grahmur.platform.version or the BOM version), for example 0.12.0. The plan then upgrades first.",
"type": "string"
},
"database": {
"description": "Self-hosted: where Claspine keeps its own tables (default postgres).",
"enum": [
"postgres",
"mongo",
"firestore"
],
"type": "string"
},
"features": {
"description": "What to add first.",
"items": {
"enum": [
"sign-in",
"email",
"sms",
"whatsapp",
"push",
"files",
"ai",
"payments"
],
"type": "string"
},
"type": "array"
},
"form": {
"description": "Where Claspine runs: the person's choice.",
"enum": [
"atlas",
"self-hosted"
],
"type": "string"
},
"login": {
"description": "Self-hosted: keep the app's own login, or move sign-in to Claspine (default: claspine when sign-in is a feature).",
"enum": [
"keep",
"claspine"
],
"type": "string"
},
"project": {
"description": "new: little or no code yet; existing: an app that already runs.",
"enum": [
"new",
"existing"
],
"type": "string"
},
"stack": {
"description": "The backend.",
"enum": [
"spring-boot",
"node",
"python",
"go",
"other"
],
"type": "string"
},
"uses_spring_security": {
"description": "Spring Boot: the project already uses Spring Security.",
"type": "boolean"
}
},
"required": [
"stack",
"project",
"form",
"features"
],
"type": "object"
},
"name": "plan_integration"
},
{
"description": "Search Claspine's guides, recipes, capability table and error fixes with a plain question or keywords. Returns the best matches first, with links; follow up with get_guide or get_recipe.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "Maximum results, 1 to 10 (default 5).",
"minimum": 1,
"type": "integer"
},
"query": {
"description": "A question or keywords, for example \"add sign-in and email to my existing Spring Boot app\".",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_docs"
},
{
"description": "Every Claspine upgrade note after one version up to another, oldest first, with what changed, the checklist for product code and what to do before deploying. Read them all before changing the Claspine version.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"from": {
"description": "The version the application uses now, for example 0.26.0.",
"type": "string"
},
"to": {
"description": "The target version (default: the latest release).",
"type": "string"
}
},
"required": [
"from"
],
"type": "object"
},
"name": "upgrade_notes"
},
{
"description": "Which Claspine capabilities exist on Claspine Atlas, the self-hosted engine (any language over HTTP) and self-hosted Spring Boot. Check this before planning any Claspine integration: they differ (for example, Claspine Atlas has no sign-in, permissions or push).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"capability": {
"description": "Optional words to filter by, for example \"sign-in\" or \"payments\".",
"type": "string"
}
},
"type": "object"
},
"name": "what_runs_where"
}
]
}What the leaf hashes
{"body":"4c3836091e9c1cb4a3219bb42e706f83bd47071b56277bdfac051ba0ff248d39","id":586726,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793147701530499,"prev":null,"subject":"9c010668-884c-4e3d-ae22-64b8faa1c5ca","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (231336 rows).
- 0x219f734c0c81089af829b9369ac69ed50286c244f7a0106b8cfbaa003581b48b
- 0xf8f9d19aa30c35ab2b37d74b100c39bce9a2422bf7677a0ae0ae49052628b8d6
- 0xe84bfd3be79585b70c32a7eb97c2ef33188d53b10de2669dc09596a549dc557f
- 0x10e27c53c6b96175643fe1373354567479fc1644e674b9e730750371edc0335a
- 0xbaefab791ff6786abe7788c055e76712b60cdfc347956f4328c6748914cde11e
- 0x3c0cd907a611443b47f060826592ac7c5892a64e3d914a8e4429d98d1c1a92db
- 0xb1cc0e15d8d06ae013c43f7351cabe4398c3ff4b82e6b62121c9d1cfa0fa52fd
- 0xe1bafd457862dd0f66937c3a3dab13e2965318804ecb9100968ad60aa78338c5
- 0xdee6481be8543d475db2f794409d5dd06713893d9d1a5ae39dc752608c50fea4
- 0xfbc593729f50249d4803195f580f34750ca7b392f6b7c70cc62579b06e8fb9ee
- 0xfacf884a6c2b3e6139b10f5c7440d0885a3b19bf2389e3d4b6be90aec60612e8
- 0xc93ece3e0a59b69f5b389bd42331a474e675f503f26ab5494a941fa4f5327261
- 0x3ce83ad86ff4f1711072c47e954f682b6a67bc60b2342af27fa493f972b6b9c0
- 0xa45c19ee1ddfa3971a75affe2da0c01e0a09406bb4b50c48e0d9cf0e082801a3
- 0x4698ebc7cbcb2286f661b867355eb6a9183e884482ee16965889e886b17d19ac
- 0x35e8995c30094446ec790423171382fccb377081b921295b0ae3840cc2c4f52c
- 0xf078ea7d84d98dbeffed23d8e67b36751e60464ffd4cfdc005e0aa6f8cb9b459
- 0xe027395fafb7fc41921c42ca0542524ea22204cbd5908b70b27f3d5fb26f5d0f
- Day root
- 0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e
- Chained
- 0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be
- Published
- On Arc Testnet, block 69584042: 0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae