diff --git a/apps/web/index.html b/apps/web/index.html index ee9f897d..500031d7 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -63,7 +63,7 @@
.radical file.
+ Draw it in Studio, chat it with AI, or connect your agent over MCP.
+ A local MCP server gives Claude Code, Claude Desktop, Codex or any MCP client the model as tools: + read the summary and the metamodel rules, search, add and move elements, create views, sequences and slides, run Smart Layout. + Every write is checked against the metamodel, and Studio shows it on the open canvas. +
+# Node.js ≥ 20, from the repository root
+npm run build -w @radical/mcp
+
+# point it at a Markdown model folder
+claude mcp add radical-folder -- node \
+ /path/to/radical.tools/apps/mcp/dist/index.js \
+ --folder /path/to/my-model
+ One model of your architecture; every diagram, table and wiki page derived from it. This guide walks through modelling, the six view kinds, milestones, presentations, - files, the metamodel editor, the Concept Hub and the AI assistant. + files, the metamodel editor, the Concept Hub, the AI assistant and the MCP server that lets coding agents edit the model.
The same tools are available outside Studio: the MCP server hands them to Claude Code, Claude Desktop, Codex or any other MCP client.
+ The MCP server lets a coding agent work on your model directly: Claude Code, Claude Desktop, Codex or any other client that speaks the Model Context Protocol. It runs locally over stdio, is bound to one Markdown folder, and offers the same tools as the AI assistant in Studio, so the agent can read the architecture, ADRs and requirements before it writes code and update the model when the design changes. Nothing leaves your machine except what your agent sends to its own provider. +
+Build it once with Node.js 20 or newer, from a clone of the repository (see local install):
+npm install
+npm run build -w @radical/mcp
+node apps/mcp/dist/index.js --folder /absolute/path/to/my-model # waits for MCP messages on stdin
+ Then register that command with your client, using absolute paths:
+# Claude Code
+claude mcp add radical-folder -- node /path/to/radical.tools/apps/mcp/dist/index.js --folder /path/to/my-model
+
+# Codex
+codex mcp add radical-folder -- node /path/to/radical.tools/apps/mcp/dist/index.js --folder /path/to/my-model
+ For Claude Desktop, add it under mcpServers in ~/Library/Application Support/Claude/claude_desktop_config.json (on Windows %APPDATA%\Claude\claude_desktop_config.json) and restart the app. Give the full path to node, because the app does not see your shell's PATH:
{
+ "mcpServers": {
+ "radical-folder": {
+ "command": "/usr/local/bin/node",
+ "args": ["/path/to/radical.tools/apps/mcp/dist/index.js", "--folder", "/path/to/my-model"]
+ }
+ }
+}
+
+ Open the same folder in Studio: in the desktop app, or in a Chromium browser through Manage models… (the browser asks for folder access; a model kept only in browser storage cannot be reached by the server). Studio reloads the folder when the agent changes it, so new elements appear on the open canvas. Then ask the agent to call get_model_summary first; the server's instructions tell it to as well.
+
| Group | Tools |
|---|---|
| Read | get_model_summary — counts, views, sequences, presentations and the metamodel rules (property keys and enum options, allowed parents, cardinality, allowed relation pairs) · search_model — the assistant's query language (LIST NODES WHERE …, GET NEIGHBORS, LIST SEQUENCES…) |
| Elements & relations | add_node, update_node, delete_node, move_node (change the parent) · add_relation, update_relation, delete_relation |
| Views | create_view, update_view, set_view_nodes, delete_view · smart_layout for All elements or one view |
| Sequences & slides | create_sequence, update_sequence, delete_sequence · create_presentation, update_presentation, delete_presentation |
| Metamodel | upsert_node_type, delete_node_type, upsert_relation_type, delete_relation_type |
smart_layout to tidy up. New elements show in All elements until a view lists them (create_view, set_view_nodes).…-custom copy, like the Metamodel editor. The server then re-announces the element and relation tools with the new types.radical.md are left as they were, so the agent's changes show up as small Git diffs.Single .radical files, milestones, canvas-only actions (switching or focusing the view in Studio) and remote HTTP connections are not supported.
- Each .md has YAML front-matter (id, type, label, then the element's properties, sorted) and the description as body. Hierarchy is the directory tree. Output is deterministic — sorted keys, stable file names — so Git diffs show what changed and nothing else. Edit the files by hand; the app picks them up.
+ Each .md has YAML front-matter (id, type, label, then the element's properties, sorted) and the description as body. Hierarchy is the directory tree. Output is deterministic — sorted keys, stable file names — so Git diffs show what changed and nothing else. Edit the files by hand, or let an agent edit them through the MCP server; the app picks them up.
The desktop app adds native file dialogs, Markdown folders without browser permissions and --file watching. Everything else is identical to the browser build.