unseen-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@unseen-mcpturn this incident playbook into a cited visual workflow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Unseen MCP Server (unseen-mcp)
The official Model Context Protocol (MCP) server for Unseen (unseendocs.in).
Turn messy operational documents, standard operating procedures (SOPs), incident playbooks, spreadsheets, and business communications into faithful, source-grounded visual workflows directly inside Claude Desktop, Cursor, Zed, Windsurf, or any MCP-compatible agent.
Capabilities
The unseen-mcp server provides 3 primary tools:
compile_workflow: Compiles raw text, SOPs, or multi-page documents into a structured, verifiableVisualSpecworkflow graph, accompanied by production-ready SVG and Mermaid syntax.Arguments:
content(string, required),title(string, optional).
revise_workflow: Applies focused revisions or node additions/modifications to an existing workflow graph while preserving citation integrity.Arguments:
visualSpec(object, required),instructions(string, required).
get_workflow: Retrieves the full structured representation of an existing visual artifact by its ID.Arguments:
id(string, required).
Related MCP server: obscuraai-mcp
1-Click Installation (Smithery)
If you use Smithery.ai:
npx -y @smithery/cli install unseen-mcp --client claudeOr for Cursor:
npx -y @smithery/cli install unseen-mcp --client cursorClaude Desktop Configuration
Add the following to your claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"unseen": {
"command": "npx",
"args": ["-y", "unseen-mcp"],
"env": {
"OPENROUTER_API_KEY": "sk-or-v1-your-openrouter-key",
"TYPESAFE_API_KEY": "your-optional-typesafe-key"
}
}
}
}Cursor IDE Configuration
In Cursor Settings -> Features -> MCP:
Click + Add New MCP Server.
Name:
unseenType:
commandCommand:
npx -y unseen-mcpAdd environment variables:
OPENROUTER_API_KEY: Your OpenRouter API key
Environment Variables
Variable | Description | Required? |
| OpenRouter API key for LLM-assisted document compilation | Recommended for rich natural language compilation (falls back to deterministic heuristics if absent) |
| TypeSafe API key for Jev semantic audits and missing branch recovery | Optional |
Running Locally
To run the stdio server directly from the command line:
npx -y unseen-mcpOr build from source in the unseen repository:
git clone https://github.com/eyeinthesky6/unseen.git
cd unseen
npm install
npm run build:mcp
node dist-mcp/index.cjsLicense
MIT © Unseen
Available Tools
9 toolsauth_loginSign In with Email + PasswordAInspect
Authenticate an existing Unseen account using email and password (or create one if register: true), returning { token: 'utok_...', user } for use in Authorization: Bearer <token> or authToken.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional display name when registering. | |
| Yes | The user's email address. | ||
| password | Yes | Account password (min 8 characters). | |
| register | No | Set to true to register a new Email + Password account if it does not exist yet. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag readOnlyHint=false and destructiveHint=false; the description goes beyond them by disclosing the side effect (account creation when `register: true`) and the exact token shape prefix `utok_`. It does not cover failure behavior (wrong password, duplicate email) or rate limits, which would be needed for a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the core action, then the conditional branch, then the return value. No wasted words and nothing important buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully inlines the return shape (`{ token: 'utok_...', user }`) and how to attach the token, which is exactly what an agent needs for the next call. Error paths and token lifetime are the only notable omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented in the input schema, and the description mostly restates the `register` behavior found there. The `name` parameter is not mentioned at all in the description. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Authenticate an existing Unseen account using email and password') and adds the registration variant, so the agent knows exactly what the tool does. It does not explicitly contrast itself with the auth_request_otp/auth_verify_otp siblings, which is the one missing differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames the two modes: log in with existing credentials, or pass `register: true` to create an account. It also explains what to do with the result ('use in Authorization: Bearer <token> or authToken'). It stops short of saying when to prefer this over the OTP siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_request_otpRequest Agent & Human Login OTP (Email + OTP)AInspect
Step 1 of Agent & Human Login (Email + OTP): Sends a 6-digit Login OTP (UNSEEN_LOGIN_OTP) to the user's email address. This is a passwordless Login OTP (NOT a password reset). Once called, the agent can either read the 6-digit UNSEEN_LOGIN_OTP directly from the user's email (when the user has granted email access) or ask the user in chat for the 6-digit code, then call auth_verify_otp.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | The user's email address to receive the 6-digit Login OTP. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is not read-only, not destructive, not idempotent, and closed-world, so the safety profile is already structured. The description adds real value beyond that: it sends an actual email as a side effect, the code is a 6-digit login OTP (not a reset token), and the code is discoverable via the inbox rather than returned. It does not mention expiry, resend behavior, or rate limits, which for a non-idempotent email-sending tool would be useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The workflow step and action are front-loaded, and the sentence about reading or asking for the code is genuinely useful. It is slightly repetitive, restating '6-digit Login OTP' four times and restating 'Agent & Human Login (Email + OTP)' from the title, which costs a little density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly implies the OTP is delivered by email rather than returned, which is the key thing an agent needs to know. Nothing about OTP lifetime, resend-per-call behavior, or failure modes (bad email, delivery failure) is covered, which leaves some gaps for a non-idempotent side-effecting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single email parameter, so the schema already carries the definition. The description still adds meaning by clarifying that the email is the destination that receives the login OTP and that the agent may later read the code from that same inbox, tying the parameter to the downstream flow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: sends a 6-digit Login OTP to the user's email, and explicitly labels it as step 1 of the Agent & Human Login flow. It preempts the most likely confusion by stating it is NOT a password reset, which clearly separates it from sibling auth tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit sequencing (step 1, followed by auth_verify_otp) and names the two supported paths for obtaining the code: read it from the user's email when email access is granted, or ask the user in chat. The only mild gap is not stating what to do if an OTP was already requested, but the workflow ordering is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_verify_otpVerify Agent & Human Login OTPAInspect
Step 2 of Agent & Human Login (Email + OTP): Verifies the 6-digit Login OTP sent to email and returns { token: 'utok_...', user } (30 free credits / 3 visuals per month on new accounts). Pass the returned token as Authorization: Bearer <token> or in the authToken argument of subsequent MCP tool calls.
| Name | Required | Description | Default |
|---|---|---|---|
| otp | Yes | The 6-digit Login OTP read from the user's email (`UNSEEN_LOGIN_OTP`) or supplied by the user. | |
| Yes | The user's email address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=false, idempotentHint=false, and destructiveHint=false, the description adds useful behavior beyond the safety profile: it returns a token and user object, mentions new-account credits, and explains how to pass the token in later calls. It does not cover failure modes, OTP expiry, or token lifetime, but it is substantially more informative than the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the step and purpose, then gives return shape and token usage in a compact single-sentence structure. The free-credits/visuals parenthetical is slightly tangential but still relevant onboarding context, so it is efficient without being maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter authentication step with no output schema, the description supplies the key missing context: the tool's place in the login flow, the return shape, and how to use the token afterward. It could be more complete by mentioning failure behavior or token expiry, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `email` and `otp` are already documented in the input schema. The description reinforces that the OTP is a 6-digit login OTP sent to `email`, but it adds little parameter-level detail beyond what the schema already provides, fitting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it verifies a 6-digit Login OTP sent to `email` as Step 2 of Agent & Human Login. It also names the return shape (`{ token: 'utok_...', user }`), which makes the tool's role unambiguous against siblings like auth_request_otp and auth_login.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly places the tool as 'Step 2' of the login flow, implying it should be used after requesting an OTP. It also explains how to use the returned token in subsequent MCP calls, though it does not explicitly name auth_request_otp as the prerequisite or exclude other login alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
autofix_workflowAutofix & Re-Render Workflow ($0 Free)AIdempotentInspect
Deterministic connector healing and full visual re-rendering ($0 compute cost, instant, unlimited). Rescues orphan nodes, heals broken or missing decision branches, recomputes deterministic orthogonal layout, and returns fresh spec, svg, mermaid, excalidraw, and studioUrl. Use this tool after making direct structural edits to VisualSpec JSON (nodes / edges), or when a user asks to autofix connectors.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | The VisualSpec JSON object to deterministically heal and re-render into SVG, Mermaid, and Excalidraw. | |
| authToken | No | Optional session token (`utok_...`) if not passed via Authorization header. | |
| orientation | No | Optional layout orientation (defaults to portrait). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotent, non-destructive and closed-world; the description adds real context beyond that: deterministic healing of orphan nodes and broken/missing decision branches, layout recomputation, zero compute cost/unlimited calls, and that a fresh spec is returned rather than mutating in place. It stops short of describing failure behavior on invalid specs or whether caller-supplied layout is discarded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action before the return values and the usage trigger. Slightly diluted by promotional framing ('$0 compute cost, instant, unlimited') that partially duplicates the title and the parenthetical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the exact returned artifacts, and for a three-parameter healing tool it covers purpose, triggers and side effects. Nothing an agent needs to invoke it correctly appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all three parameters, so spec/authToken/orientation are already documented in the schema. The description only loosely restates that spec is the object to heal and implies layout options via 'recomputes deterministic orthogonal layout', adding little parameter-level meaning. Baseline 3 applies when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action set: deterministic connector healing plus full re-rendering, and enumerates the returned artifacts (spec, svg, mermaid, excalidraw, studioUrl). It is distinct from compile/revise/enhance by being a heal-and-rerender pass, but the description never names those siblings explicitly, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete triggers: after direct structural edits to VisualSpec nodes/edges, or when a user asks to autofix connectors. That is a clear when-to-use statement. It does not say when *not* to use it or which sibling (compile_workflow, revise_workflow, enhance_workflow) handles the adjacent cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compile_workflowCompile Workflow DiagramAInspect
Turn supplied document evidence or raw operational text into a publication-ready workflow diagram with source references, clean vector SVG, Mermaid, Excalidraw scene, and interactive Studio deep link (studioUrl). HOW TO STRUCTURE TEXT INPUTS: Either pass sources (array of 1..60 verbatim chunks {id, locator, excerpt} where each excerpt is <= 2000 chars with exact numbers/actors/thresholds preserved) OR pass raw text and Unseen will automatically segment it into source chunks. EDITING GUIDANCE: For cosmetic/styling/annotation edits, edit the returned <svg> XML directly. For structural/topological edits (adding/removing nodes or rerouting branches), edit spec (VisualSpec JSON) and call autofix_workflow ($0 deterministic connector healing + fresh SVG/Mermaid/Excalidraw) or revise_workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Optional raw document or user text. If provided when `sources` is omitted or empty, Unseen automatically segments `text` into faithful `sources[]` chunks. | |
| jobId | No | Optional job ID when resuming a workflow after clarification | |
| sources | Yes | Array of faithful source excerpts with locators from the input document (1..60 chunks, <=2000 chars each). Preserve exact thresholds, actors, and IF/ELSE branches. | |
| userGoal | Yes | The overarching operational goal or process description (e.g. 'Driver Onboarding SOP' or 'Vendor Risk Assessment') | |
| authToken | No | Optional session token (`utok_...`) obtained from `auth_verify_otp` or `auth_login` if not already supplied in the HTTP `Authorization: Bearer` header. | |
| requestId | No | Optional client request correlation ID | |
| hostContext | No | Optional advisory context observed by the host agent | |
| priorAnswers | No | Answers to prior Unseen clarification questions when resuming a compilation | |
| desiredOutput | No | ||
| schemaVersion | Yes | Protocol envelope version (must be '0.1') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-idempotent, non-destructive, closed-world operation, so the safety profile is covered. The description adds real value by disclosing auto-segmentation of raw `text` and the $0 cost of autofix_workflow, but it never says whether compilation persists a job, what auth/credits it consumes (despite an `authToken` param), or how long a compile takes. Useful, but thin on mutation-side behavior for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the outcome and the artifact list, then split into labeled HOW TO STRUCTURE and EDITING GUIDANCE blocks, so it scans well. Slightly overlong for an invocation description since the editing guidance targets post-call workflows, but each sentence carries actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Compensates for the absent output schema by naming every returned artifact, which is exactly what an agent needs to plan downstream steps. With 10 parameters including nested `hostContext` and the clarification-resume fields (`jobId`, `priorAnswers`), it leaves the multi-turn clarification flow unexplained, which is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 90% schema coverage the baseline is 3; the description earns an extra point by clarifying the `sources` vs `text` relationship, which the schema alone leaves ambiguous (sources is marked required yet text is described as an alternative). It also restates the 1..60 chunk / 2000-char limits, though it says nothing about `authToken`, `jobId`, `hostContext`, or `priorAnswers` beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('turn ... into a publication-ready workflow diagram') and enumerates the concrete artifacts produced (SVG, Mermaid, Excalidraw, studioUrl). It also implicitly separates itself from the sibling editors by describing what it emits versus what autofix_workflow/revise_workflow repair.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit either/or for input construction (`sources` vs raw `text` with auto-segmentation) and names the exact alternatives for downstream edits, including the condition that selects each (cosmetic → edit SVG; structural → edit spec then autofix_workflow or revise_workflow). Nothing about routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_workflowsDetect Candidate Workflows in DocumentARead-onlyIdempotentInspect
Discover distinct operational workflows from multi-section documents or raw text before compiling. Returns candidate workflows (id, title, description, sourceIds) audited by TypeSafe Jev.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Optional raw document text if `sources` is not pre-segmented. | |
| sources | No | Array of source excerpts `{id, locator, excerpt}` from the document. | |
| authToken | No | Optional session token (`utok_...`) if not passed via Authorization header. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful return-shape detail (`id`, `title`, `description`, `sourceIds`) but does not explain auth expectations, processing limits, or what 'audited by TypeSafe Jev' means in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences, front-loading the purpose and then the return shape. Every clause contributes either routing context or output information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully lists the candidate workflow fields returned. The main remaining gap is that 'audited by TypeSafe Jev' is opaque, but overall the definition gives enough context for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The description maps conceptually to `text` and `sources` by mentioning raw text and multi-section documents, but adds no syntax, constraints, or guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Discover distinct operational workflows'. It also scopes the input to multi-section documents or raw text and frames the action as happening before compiling, which helps distinguish it from compile_workflow, though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates when to use the tool: before compiling, on multi-section documents or raw text. It does not state when not to use it or explicitly route to alternatives, but the pre-compile context is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enhance_workflowAI Enhance Workflow (TypeSafe Jev Audit & Repair)AInspect
Bundled free semantic verification and repair powered by TypeSafe Jev. Audits the VisualSpec against its cited sources[] for unsupported claims, missing decision branches, and role accuracy, applies targeted repair if actionable issues are found, and returns the enhanced spec, svg, mermaid, excalidraw, studioUrl, and Jev quality metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | The current VisualSpec JSON object (including its `sources` array) to audit and enhance. | |
| visualId | No | The `jobId` or `visualId` returned when the workflow was compiled. | |
| authToken | No | Optional session token (`utok_...`) if not passed via Authorization header. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, and the description adds meaningful context beyond them: the operation is bundled/free, repair is conditional ('if actionable issues are found'), and the response includes the enhanced spec plus svg/mermaid/excalidraw/studioUrl and quality metrics. It does not explicitly state that the original stored workflow is left intact (only the returned spec is enhanced) nor any auth expectation, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Everything is packed into one front-loaded sentence that leads with the operation and the engine, then the checks, then the repairs, then the return values. Dense but zero filler; it could have been split into two sentences for scannability, which is the only real deduction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description steps in to enumerate the return payload (spec, svg, mermaid, excalidraw, studioUrl, metrics), which is exactly what an agent needs. The nested `spec` object and the conditional mutation are covered; what's missing is any hint of cost/latency or prerequisite that `compile_workflow` must have run first, though `visualId` being 'returned when the workflow was compiled' in the schema partially covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are documented in the schema, establishing the baseline of 3. The description adds only one semantic detail — that `spec` must include its `sources` array to be auditable — and says nothing extra about `visualId` or `authToken` beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Audits the VisualSpec against its cited sources[] ... applies targeted repair') and enumerates the checks performed (unsupported claims, missing decision branches, role accuracy), which is far more than a restatement of the name. However, it never distinguishes itself from siblings `autofix_workflow` or `revise_workflow`, which plausibly overlap with 'repair' and 'revise' — an agent cannot tell from this text which of the three to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Applies targeted repair if actionable issues are found' implies a post-compile audit-and-fix usage, and the spec must already carry `sources[]`, so context is partially implied. But there is no explicit when-to-use, no when-not-to-use, and no mention of `autofix_workflow`/`revise_workflow` as alternatives, leaving the main selection question unanswered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowGet Compiled WorkflowARead-onlyIdempotentInspect
Retrieve an existing VisualSpec workflow by jobId or visualId, returning the spec, SVG layout, and Mermaid diagram.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The jobId or visualId of the workflow to retrieve | |
| authToken | No | Optional session token (`utok_...`) if not passed via Authorization header. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds genuine value by disclosing the return payload (spec, SVG layout, Mermaid diagram), which annotations cannot convey, though it omits behavior on missing/unknown ids.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence that front-loads the action, the identifier inputs, and the return contents with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with rich annotations and full schema coverage, the description covers purpose, inputs, and outputs. Minor gaps remain (error behavior for unknown ids, whether authToken is required in headerless contexts) but nothing blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both `id` and `authToken` are fully documented in the schema. The description adds only that `id` accepts either a jobId or visualId, which the schema already says — a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (retrieve) and resource (VisualSpec workflow) plus what the result contains: spec, SVG layout, and Mermaid diagram. It clearly reads as a read operation distinct from compile/revise/autofix siblings, though it never names a sibling for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Retrieve an existing VisualSpec workflow" implies usage (an already-compiled workflow exists) but gives no explicit when-to-use/when-not guidance against siblings like detect_workflows or compile_workflow, and doesn't say what happens if the workflow hasn't been compiled yet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revise_workflowRevise Workflow DiagramAIdempotentInspect
Apply targeted delta revisions to an existing VisualSpec workflow diagram (e.g. modify node labels, adjust roles like step vs decision, add/remove edges, or heal connections) while preserving Visual Contract v0.1 validity and source grounding.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | Yes | The existing VisualSpec object to revise | |
| authToken | No | Optional session token (`utok_...`) if not passed via Authorization header. | |
| instruction | Yes | Clear revision instruction (e.g. 'Change node-2 role to decision and label to Finance Approval?', 'Remove orphan node-4', 'Autofix layout connections') | |
| additionalSources | No | Optional additional source evidence excerpts to support the revision |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive, idempotent, closed-world mutation, so the safety profile is covered. The description usefully adds post-conditions – the result must still satisfy Visual Contract v0.1 and remain source-grounded – but does not say whether the passed spec is mutated in place or a new spec is returned, which matters for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the action front-loaded and the constraint trailing. The parenthetical example list is dense but each item maps to a real capability; nothing is redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers what the tool does and its validity/grounding guarantees, which is most of what is needed for a nested-object mutation. However there is no output schema, so the description should have said what comes back (revised spec, diff, validation errors) and it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so per the baseline this is a 3, raised slightly because the description's phrase 'source grounding' explains why 'additionalSources' exists and ties 'instruction' to delta-style edits. It still adds no format or size constraints beyond the schema's own examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('apply targeted delta revisions') against a specific resource ('an existing VisualSpec workflow diagram') and enumerates the operation types (labels, roles, edges, connection healing). It is clearly separable from compile_workflow/detect_workflows, though the overlap with autofix_workflow implied by 'heal connections' is never resolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'existing' spec and 'delta' revisions suggest it is for editing a spec you already hold, versus generating one. No sibling is named and there is no exclusions guidance, so an agent cannot tell from this text whether to call revise_workflow or autofix_workflow to repair connections.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.0- First observed
auth_login - First observed
auth_request_otp - First observed
auth_verify_otp - First observed
autofix_workflow - First observed
compile_workflow - First observed
detect_workflows - First observed
enhance_workflow - First observed
get_workflow - First observed
revise_workflow
TDQS
Scored across 9 tools
Most tools have clear boundaries: detection, compilation, retrieval, revision, deterministic repair, semantic enhancement, and authentication are distinct operations. The main ambiguity is among revise_workflow, autofix_workflow, and enhance_workflow, since all can modify and return diagram artifacts, though their descriptions clarify structural delta edits vs deterministic connector healing vs semantic verification.
Tool names consistently use snake_case with clear verb_noun phrasing: compile_workflow, revise_workflow, autofix_workflow, enhance_workflow, detect_workflows, get_workflow. The auth_* prefix groups authentication tools predictably.
Nine tools is well-scoped for a workflow-diagram generation server, covering the core workflow lifecycle plus login. No tools appear redundant or unnecessary, and the count is within a manageable range for agent selection.
The surface covers the main workflow lifecycle: discovery, compilation, retrieval, revision, deterministic repair, and semantic enhancement, plus authentication. Minor gaps remain, such as listing/searching existing workflows or deleting/archiving them, but core agent workflows are covered.
Maintenance
Related MCP Connectors
Turn calls and notes into process flow diagrams in Claude, ChatGPT, VS Code, Cursor, and Teams.
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
Connect Claude or any MCP client to Wireflow, the AI canvas for image, video and audio workflows. List, build, inspect and run your workflows and published apps, browse templates, check models, prices and credits, edit a video node's timeline, and plan or schedule social posts. Drafts and edits cost no credits; run tools spend the user's credits.
Related MCP Servers
- AlicenseAqualityDmaintenanceAI workflow orchestration platform with 100+ integrations, knowledge graph, and unified credits. Build, manage, and execute workflows from Claude Code, Cursor, or any MCP client.40282 npm3MIT
- AlicenseBqualityDmaintenanceMCP server for Claude, ChatGPT, coding agents (cursor, claude code etc), windsurf, etc— generate visual AI automation workflows. Describe a business process, get an interactive flow map you can edit and share.157 npmMIT
- AlicenseNot gradedqualityDmaintenanceObsidian-backed knowledge graph with semantic search, entity extraction, and cross-session memory. 11 MCP tools. Works with Claude Code, Cursor, Windsurf, and any MCP-compatible editor.96 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables building and running visual workflows conversationally inside Claude, orchestrating your existing connector tools step-by-step without storing credentials or owning integrations.4 npmMIT