{"ok":true,"site":{"host":"chalkline-steel.vercel.app","url":"https://chalkline-steel.vercel.app/","type":"live","desc":"A WebMCP-powered architecture diagram canvas. Describe a system, watch an agent draw it, then move, rename and connect things yourself while the agent keeps up.","tools":[{"name":"get_diagram","kind":"answer","impl":"imperative","description":"Read the current diagram: every node (id, label, kind, description, who added it) and every edge. Call this first before modifying an existing diagram so you can reference existing node ids.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add_node","kind":"act","impl":"imperative","description":"Add a node (box) to the diagram. Returns the node id to use in later calls. Position is chosen automatically; call auto_layout after adding several nodes.","inputSchema":{"type":"object","properties":{"label":{"type":"string","description":"Short display name, e.g. 'Payment Service'."},"kind":{"type":"string","enum":["service","database","queue","cache","user","external","storage","note"],"description":"What the node represents."},"description":{"type":"string","description":"One sentence about the component's responsibility."},"id":{"type":"string","description":"Optional stable id (snake_case)."}},"required":["label","kind"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_node","kind":"act","impl":"imperative","description":"Rename, re-type, or re-describe an existing node. Reference it by id or label.","inputSchema":{"type":"object","properties":{"node":{"type":"string","description":"Node id or label."},"label":{"type":"string"},"kind":{"type":"string","enum":["service","database","queue","cache","user","external","storage","note"],"description":"What the node represents."},"description":{"type":"string"}},"required":["node"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"remove_node","kind":"act","impl":"imperative","description":"Delete a node and every edge attached to it.","annotations":{"destructiveHint":true},"inputSchema":{"type":"object","properties":{"node":{"type":"string","description":"Node id or label."}},"required":["node"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"connect","kind":"act","impl":"imperative","description":"Draw a directed edge from one node to another, optionally labelled with the protocol or data that flows (e.g. 'gRPC', 'events').","inputSchema":{"type":"object","properties":{"from":{"type":"string","description":"Source node id or label."},"to":{"type":"string","description":"Target node id or label."},"label":{"type":"string","description":"Optional edge label."}},"required":["from","to"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"disconnect","kind":"act","impl":"imperative","description":"Remove the edge between two nodes.","inputSchema":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"auto_layout","kind":"act","impl":"imperative","description":"Tidy the diagram with an automatic layered layout. Use after adding or connecting several nodes.","inputSchema":{"type":"object","properties":{"direction":{"type":"string","enum":["LR","TB"],"description":"Left-to-right or top-to-bottom."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"highlight_nodes","kind":"act","impl":"imperative","description":"Select/highlight nodes on the canvas so the human can see what you are talking about.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"nodes":{"type":"array","items":{"type":"string"},"description":"Node ids or labels."}},"required":["nodes"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"clear_diagram","kind":"act","impl":"imperative","description":"Remove everything from the canvas. Only call when the user clearly asks to start over.","annotations":{"destructiveHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_mermaid","kind":"act","impl":"imperative","description":"Return the diagram as Mermaid flowchart source, useful for pasting into docs or README files.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","favicon":"/favicons/chalkline-steel.vercel.app.ico","apiSurface":"spec","toolCount":10}}