← The evidence ledger
Evidence row 523086
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 6ecabaef-d1b7-485c-bb48-a5c14aca42cc
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- b47b40b33f14b8a5ca870966129c143d79812821c092dac8f0fb16338409701c
- Leaf
- 0xd5725c3941650eda84ec0ded82ece8c4672170ca7e08794d422de5552129ff2d
What was observed
{
"count": 12,
"tools": [
{
"description": "Create multiple pages at once from a tree structure. Ideal for generating a full sitemap with zoning, entry points, CTAs and tags.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"nodes": {
"description": "Flat list of nodes with temp_id references for parent-child relationships (500 max)",
"items": {
"properties": {
"cta": {
"description": "Call-to-action labels",
"items": {
"type": "string"
},
"type": "array"
},
"description": {
"type": "string"
},
"entry_points": {
"description": "Traffic sources",
"items": {
"properties": {
"label": {
"type": "string"
},
"type": {
"enum": [
"google",
"direct",
"nav",
"social",
"email",
"ads",
"qrcode"
],
"type": "string"
}
},
"required": [
"type",
"label"
],
"type": "object"
},
"type": "array"
},
"label": {
"type": "string"
},
"notes": {
"type": "string"
},
"parent_temp_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Temp ID of the parent node. Null = root."
},
"priority": {
"enum": [
"primary",
"secondary",
"utility"
],
"type": "string"
},
"rationale": {
"type": "string"
},
"seo": {
"description": "SEO data of the page: URL, target keyword, volume, intent, migration status",
"properties": {
"intent": {
"enum": [
"informational",
"navigational",
"commercial",
"transactional"
],
"type": "string"
},
"keyword": {
"description": "Main target keyword",
"type": "string"
},
"redirectTo": {
"description": "Destination URL when status is 'redirect'",
"type": "string"
},
"status": {
"description": "keep = existing page kept, create = new page, redirect = 301 to redirect_to, delete = removed (410)",
"enum": [
"keep",
"create",
"redirect",
"delete"
],
"type": "string"
},
"url": {
"description": "Page URL or path (e.g. '/services/audit-seo')",
"type": "string"
},
"volume": {
"description": "Monthly search volume of the main keyword",
"type": "number"
}
},
"type": "object"
},
"tags": {
"description": "Tags",
"items": {
"type": "string"
},
"type": "array"
},
"temp_id": {
"description": "Temporary ID for referencing as parent (e.g. 'home', 'about')",
"type": "string"
},
"type": {
"type": "string"
},
"zoning_blocks": {
"description": "Wireframe zoning blocks",
"items": {
"properties": {
"height": {
"type": "number"
},
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"skin": {
"description": "nav, hero, breadcrumb, titre, contenu, sidebar, cards, grille, filtres, cta, double-cta, form, submit, arguments, social-proof, image, question, reponses, progression, nav-quiz, search-bar, resultats, pagination, footer, dots",
"type": "string"
}
},
"required": [
"id",
"label",
"skin",
"height"
],
"type": "object"
},
"type": "array"
},
"zoning_expanded": {
"type": "boolean"
}
},
"required": [
"temp_id",
"parent_temp_id",
"label"
],
"type": "object"
},
"maxItems": 500,
"type": "array"
},
"project_id": {
"description": "The project ID",
"type": "string"
}
},
"required": [
"project_id",
"nodes"
],
"type": "object"
},
"name": "bulk_create_nodes"
},
{
"description": "Add a page to a project's sitemap. Use parent_id to create hierarchy. Supports rich data: zoning blocks (wireframe layout), entry points (traffic sources), CTAs, and tags.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"cta": {
"description": "Call-to-action button labels (e.g. ['Acheter', 'En savoir plus'])",
"items": {
"type": "string"
},
"type": "array"
},
"description": {
"description": "Page description. Use real newlines for formatting. Supports long multiline content (SEO, copy, sections, CTAs, FAQ). No length limit.",
"type": "string"
},
"entry_points": {
"description": "Traffic entry points for this page",
"items": {
"properties": {
"label": {
"type": "string"
},
"type": {
"enum": [
"google",
"direct",
"nav",
"social",
"email",
"ads",
"qrcode"
],
"type": "string"
}
},
"required": [
"type",
"label"
],
"type": "object"
},
"type": "array"
},
"label": {
"description": "Page name (e.g. 'Accueil', 'Contact')",
"type": "string"
},
"notes": {
"description": "Additional notes",
"type": "string"
},
"parent_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Parent node ID. Null = root page."
},
"priority": {
"description": "Page importance",
"enum": [
"primary",
"secondary",
"utility"
],
"type": "string"
},
"project_id": {
"description": "The project ID",
"type": "string"
},
"rationale": {
"description": "Why this page exists (UX insight)",
"type": "string"
},
"seo": {
"description": "SEO data of the page: URL, target keyword, volume, intent, migration status",
"properties": {
"intent": {
"enum": [
"informational",
"navigational",
"commercial",
"transactional"
],
"type": "string"
},
"keyword": {
"description": "Main target keyword",
"type": "string"
},
"redirectTo": {
"description": "Destination URL when status is 'redirect'",
"type": "string"
},
"status": {
"description": "keep = existing page kept, create = new page, redirect = 301 to redirect_to, delete = removed (410)",
"enum": [
"keep",
"create",
"redirect",
"delete"
],
"type": "string"
},
"url": {
"description": "Page URL or path (e.g. '/services/audit-seo')",
"type": "string"
},
"volume": {
"description": "Monthly search volume of the main keyword",
"type": "number"
}
},
"type": "object"
},
"tags": {
"description": "Tags for categorization (e.g. ['SEO', 'conversion'])",
"items": {
"type": "string"
},
"type": "array"
},
"type": {
"description": "Page type: home, listing, detail, form, landing, quiz, search, hub, error, legal",
"type": "string"
},
"zoning_blocks": {
"description": "Wireframe zoning blocks (page layout structure)",
"items": {
"properties": {
"height": {
"description": "Visual height in px (e.g. 18 for nav, 64 for hero, 60 for contenu)",
"type": "number"
},
"id": {
"description": "Unique block ID (e.g. 'z1')",
"type": "string"
},
"label": {
"description": "Block label (e.g. 'Hero', 'Navigation')",
"type": "string"
},
"skin": {
"description": "Block skin: nav, hero, breadcrumb, titre, contenu, sidebar, cards, grille, filtres, cta, double-cta, form, submit, arguments, social-proof, image, question, reponses, progression, nav-quiz, search-bar, resultats, pagination, footer, dots",
"type": "string"
}
},
"required": [
"id",
"label",
"skin",
"height"
],
"type": "object"
},
"type": "array"
},
"zoning_expanded": {
"description": "If true, zoning is shown expanded by default on the canvas",
"type": "boolean"
}
},
"required": [
"project_id",
"label"
],
"type": "object"
},
"name": "create_node"
},
{
"description": "Create a new project. Returns the project ID. Add nodes with create_node after.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"accent": {
"description": "Accent color hex (e.g. #2563EB)",
"type": "string"
},
"client": {
"description": "Client name",
"type": "string"
},
"name": {
"description": "Project name",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "create_project"
},
{
"description": "Remove a page from the sitemap (soft delete, can be restored via version history)",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"cascade": {
"description": "If true, also deletes all children. Default: false (children are reparented to grandparent)",
"type": "boolean"
},
"node_id": {
"description": "The node ID to delete",
"type": "string"
},
"project_id": {
"description": "The project ID",
"type": "string"
}
},
"required": [
"project_id",
"node_id"
],
"type": "object"
},
"name": "delete_node"
},
{
"description": "Generate a lo-fi wireframe HTML for a page using AI. The wireframe is saved to the node's zoningHtml field. Requires zoning blocks to be defined on the node. Costs 1 AI credit (or uses BYOK key). Returns the generated HTML.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"node_id": {
"description": "The node ID to generate wireframe for",
"type": "string"
},
"project_id": {
"description": "The project ID",
"type": "string"
}
},
"required": [
"project_id",
"node_id"
],
"type": "object"
},
"name": "generate_wireframe"
},
{
"description": "Change list from the open review comments: deduplicated and classed (text, visual, structure), out-of-scope requests with a reply and an amendment line, and contradictions with decided points. Costs AI credits (quality model, 3 credits), paid by the token's account or the project owner. Requires write access.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"node_id": {
"description": "Only this page",
"type": "string"
},
"project_id": {
"description": "The project ID",
"type": "string"
},
"step": {
"description": "Review step: wireframe or mockup",
"enum": [
"wireframe",
"mockup"
],
"type": "string"
}
},
"required": [
"project_id"
],
"type": "object"
},
"name": "get_change_list"
},
{
"description": "Get a project with its full sitemap tree",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project_id": {
"description": "The project ID",
"type": "string"
}
},
"required": [
"project_id"
],
"type": "object"
},
"name": "get_project"
},
{
"description": "Review of a project: per page, the status and version of each step (wireframe, mockup), and the latest Figma link per breakpoint",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project_id": {
"description": "The project ID",
"type": "string"
}
},
"required": [
"project_id"
],
"type": "object"
},
"name": "get_review"
},
{
"description": "List all projects accessible with this token",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "list_projects"
},
{
"description": "Comments left in the review (wireframe or mockup), pinned on a version and a breakpoint. Set open_only true to get only the unresolved ones.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"node_id": {
"description": "Only the comments of this page",
"type": "string"
},
"open_only": {
"description": "Only unresolved comments",
"type": "boolean"
},
"project_id": {
"description": "The project ID",
"type": "string"
},
"step": {
"description": "Review step: wireframe or mockup",
"enum": [
"wireframe",
"mockup"
],
"type": "string"
}
},
"required": [
"project_id"
],
"type": "object"
},
"name": "list_review_comments"
},
{
"description": "Mark a review comment resolved or open again. Same rights as the other write tools (write:nodes, owner or editor).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"comment_id": {
"description": "The comment ID (from list_review_comments)",
"type": "string"
},
"project_id": {
"description": "The project ID",
"type": "string"
},
"resolved": {
"description": "true to resolve, false to reopen",
"type": "boolean"
}
},
"required": [
"project_id",
"comment_id",
"resolved"
],
"type": "object"
},
"name": "set_comment_resolved"
},
{
"description": "Update a page's properties. For the description field: use real newlines (not literal \\n). Supports rich multiline content: SEO notes, copy, sections, CTAs, FAQ, maillage, etc. No length limit. You can also set zoning_html (full wireframe HTML) and annotations (contextual notes per wireframe section).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"annotations": {
"description": "Contextual annotations for wireframe sections. These appear as a sidebar alongside the wireframe preview.",
"items": {
"properties": {
"body": {
"description": "Detailed annotation content",
"type": "string"
},
"id": {
"description": "Unique annotation ID (e.g. 'ann_1')",
"type": "string"
},
"section": {
"description": "Section name in the wireframe this annotation refers to (e.g. 'Hero', 'Navigation')",
"type": "string"
},
"tag": {
"description": "Annotation category",
"enum": [
"UX",
"COPY",
"SEO",
"DEV",
"DESIGN",
"A11Y",
"PERF",
"TODO"
],
"type": "string"
},
"title": {
"description": "Short annotation title",
"type": "string"
}
},
"required": [
"id",
"section",
"tag",
"title",
"body"
],
"type": "object"
},
"type": "array"
},
"description": {
"description": "Page description. Use real newlines for formatting. Supports long multiline content (SEO, copy, sections, CTAs, FAQ). No length limit.",
"type": "string"
},
"label": {
"description": "New page name",
"type": "string"
},
"node_id": {
"description": "The node ID to update",
"type": "string"
},
"notes": {
"type": "string"
},
"parent_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Move to new parent"
},
"priority": {
"enum": [
"primary",
"secondary",
"utility"
],
"type": "string"
},
"project_id": {
"description": "The project ID",
"type": "string"
},
"rationale": {
"type": "string"
},
"seo": {
"description": "SEO data. Fields sent are merged into the existing SEO block.",
"properties": {
"intent": {
"enum": [
"informational",
"navigational",
"commercial",
"transactional"
],
"type": "string"
},
"keyword": {
"description": "Main target keyword",
"type": "string"
},
"redirectTo": {
"description": "Destination URL when status is 'redirect'",
"type": "string"
},
"status": {
"description": "keep = existing page kept, create = new page, redirect = 301 to redirect_to, delete = removed (410)",
"enum": [
"keep",
"create",
"redirect",
"delete"
],
"type": "string"
},
"url": {
"description": "Page URL or path (e.g. '/services/audit-seo')",
"type": "string"
},
"volume": {
"description": "Monthly search volume of the main keyword",
"type": "number"
}
},
"type": "object"
},
"type": {
"description": "New page type",
"type": "string"
},
"zoning_html": {
"description": "Full wireframe HTML (lo-fi, inline CSS, standalone). Replaces the current wireframe for this page.",
"type": "string"
}
},
"required": [
"project_id",
"node_id"
],
"type": "object"
},
"name": "update_node"
}
]
}What the leaf hashes
{"body":"b47b40b33f14b8a5ca870966129c143d79812821c092dac8f0fb16338409701c","id":523086,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793124126471263,"prev":null,"subject":"6ecabaef-d1b7-485c-bb48-a5c14aca42cc","subject_kind":"endpoint"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.