Harness MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| harness_hello | Handshake. The editor announces what it can lend the harness: its own agent model (native mode — no API key needed) and a webview panel (native render). Call once at session start. Without it the harness assumes a bare MCP client and falls back to its own model from config.json plus a browser window. |
| harness_statusC | What the harness currently holds: entry counts, design rules, pending changes, open questions. |
| harness_init | Create /harness and assemble the initial harness for a NEW project from the user description. One-time: once a harness exists, changes go through harness_propose_change and human approval. |
| harness_reverseA | Create /harness and reverse-assemble the harness from EXISTING code. Code is the evidence and wins over stale docs; inferred intent is marked [assumption] with a question for the human. Pass ProjectMind analysis in |
| harness_submit_generation | Native mode callback: the editor agent ran the requested generation with its own model and returns the result here. The request_id comes from a previous tool call that answered with status "needs_agent". |
| harness_get_specA | Read the harness. The agent implements FROM this and must not depart from it. Call it before writing code; the constitution belongs in every turn. |
| harness_chat | The way a human edits the harness with words: "make the buttons green", "move the sidebar left". Turns the message into proposed harness changes — queued for approval, never applied directly. Uses the editor model (native) or the configured model (universal). |
| harness_propose_structureB | Generate or extend the project structure (modules, entities, screens, flows) from an instruction. Result lands in pending changes for review. |
| harness_propose_changeB | Propose one precise change to the harness without involving a model. The change is NOT applied — it waits in pending_changes with a diff for a human to accept or reject. |
| harness_add_design_rule | Record a design rule ("all buttons have an 8px radius"). Once approved it applies GLOBALLY to the whole project — the agent must satisfy it in any UI it writes. Optionally attach a machine check so harness_verify can enforce it. |
| harness_set_design_tokens | Host path to a design system: pass the payload of Design MCP's get_tokens({category:"all"}) (or an already normalized token set) and the mockup renders in the project's own visual language instead of a grey skeleton. Optionally pass the get_rules payload as |
| harness_sync_design_systemA | Direct path to a design system: the harness itself connects to the Design MCP server configured in config.json (design_mcp.command/args), pulls tokens and rules, stores the tokens and queues the rules for approval. Use where no host wires the two servers together; otherwise prefer harness_set_design_tokens. |
| harness_list_pendingC | Pending changes with their diffs, plus the unapproved-count badge. |
| harness_approve | A human accepts a pending change: it is applied to the harness, the markdown spec is rewritten, and a checkpoint is taken first so it can be rolled back. Agents must not call this on their own behalf. |
| harness_reject | A human rejects a pending change. Nothing is applied; the reason is kept in the approval history. |
| summarize_session_to_harness | Bridge between the ephemeral chat and the durable spec. The editor agent returns a STRUCTURED summary of the current session — completed_tasks, decisions, open_questions, touched_files — which is stored and turned into per-item proposals a human approves point by point. Amorphous prose is rejected. |
| harness_render | Render the structure + mockup visualization. Returns HTML for a webview (native hosts) or serves it on localhost and opens a browser (everywhere else). The picture is an output: critique goes back in words through harness_chat. |
| harness_verifyA | On demand only: compare the real code against the harness and report divergences. The harness is never redrawn from code — this is the safety net for when the agent drifted. |
| harness_configureC | Read or update /harness/config.json — the model for universal mode (provider, model, api_key) and render preferences. |
| harness_checkpointC | Take a rollback point, list them, or restore one. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mykolariabokon/harness-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server