MCP server¶
Dezycro exposes a Model Context Protocol (MCP) server at https://mcp.dezycro.ai/mcp for production tenants and https://mcp.dev.dezycro.io/mcp for dev. The MCP server is what the Claude Code plugin talks to — but you can also use it directly from any MCP-compatible client (Cursor, Continue, custom IDE plugins, etc.).
Authentication¶
Use a Personal Access Token:
Pass the header on every request. The MCP server resolves the PAT to your user + tenant + per-workspace permissions on each call — there's no separate workspace selection step.
Wiring up a client¶
Claude Code¶
claude mcp add dezycro \
--transport http \
--url https://mcp.dezycro.ai/mcp \
--header "Authorization: Bearer dzy_..."
Or place this in ~/.claude/settings.json:
{
"mcpServers": {
"dezycro": {
"type": "http",
"url": "https://mcp.dezycro.ai/mcp",
"headers": {
"Authorization": "Bearer dzy_..."
}
}
}
}
Other clients¶
Most MCP-compatible clients accept the same shape — point at https://mcp.dezycro.ai/mcp and pass the bearer header. The transport is Streamable HTTP (the modern MCP transport — initialize handshake, session ID, JSON-RPC over POST).
Available tools¶
The MCP server exposes the same tools the Claude Code plugin uses. Group-by-purpose:
Discovery¶
list_workspaces— your accessible workspaceslist_projects(workspaceId)— projects in a workspacelist_features(workspaceId, projectId, parentDirectoryId?)— directory tree of featuressearch(workspaceId, query)— cross-feature semantic searchsearch_features(workspaceId, projectId, query)— feature-name searchlist_feature_documents(workspaceId, featureId)— PRD/TRD docs for a featureget_document(workspaceId, featureId, docId)— fetch document contentget_workbook(workspaceId, featureId)— full workbook state (journeys, tasks, decisions, issues, …)
Feature lifecycle¶
create_feature(workspaceId, projectId, placement, name, …)— new feature; auto-creates PRD/TRD docsmove_feature(featureId, newDirectoryId)update_document(workspaceId, featureId, docId, content)— overwrite PRD/TRD markdownchange_document_status(docId, status)— DRAFT → COMPLETE → APPROVED transitionssuggest_placement(workspaceId, projectId, featureName)— RAG-backed directory suggestion
Workbook¶
add_decision(workspaceId, featureId, summary, reason, intentRefs?, journeyRefs?)add_issue(workspaceId, featureId, summary, severity, …)add_assumption(workspaceId, featureId, summary, rationale)update_issue(id, status, reason)— also used to invalidate assumptionscreate_task(workspaceId, featureId, …)update_task(id, status, pathRefs?, priorStatus?)— TODO / IN_PROGRESS / DONE / PUSHED / CONFIRMEDconfirm_journey(workspaceId, featureId, journeyId)/unenforce_journey(...)
Verification & coverage¶
publish_feature_spec(workspaceId, featureId, openapi)— upload OpenAPI; triggers JEP generationpull_verifier(featureId, platform)— download the verifier binary for your platformrecord_verifier_run(workspaceId, featureId, results, …)— upload a run resultget_coverage_report(workspaceId, featureId)— current coverage projectionset_verification_scope(workspaceId, featureId, scope)waive_coverage(workspaceId, featureId, gapId, reason)
Test generation¶
generate_tests(workspaceId, featureId, docId)— kick off LLM test generationgeneration_status(workspaceId, featureId, docId)— poll progresslist_test_cases(workspaceId, featureId, …)promote_auto_baseline(workspaceId, featureId, …)/promote_to_regression(...)get_violation_events(workspaceId, featureId)— agent intent-violation log
Council (AI review)¶
trigger_council_review(workspaceId, featureId)— request multi-persona AI review of PRD/TRDget_council_review(workspaceId, featureId)— fetch the latest review
Audit¶
link_artifact(...)— link a commit / PR / file path to a workbook entityget_workspace_metrics(workspaceId)— workspace-level usage + activity statsget_avoided_cost_estimate(workspaceId)— estimated dollar value of intent violations caught
Each tool's full parameter schema is loaded by your MCP client at connection time — refer to the client's tool browser for the canonical signatures.
Quirks¶
- Streamable HTTP transport — the first POST must be an
initializeJSON-RPC call; the server returns aMcp-Session-Idheader. Subsequent calls must echo that header back. Standard MCP clients handle this automatically. - Per-workspace permission inheritance — your PAT inherits your workspace role on every call. A Viewer PAT can call
get_*/list_*tools but notcreate_*/update_*ones. - Idempotency —
update_documentoverwrites;add_*always creates a new entity. There's no append semantics on documents. - Long-running operations —
generate_testsandpublish_feature_specreturn immediately with a status URL; pollgeneration_statusto wait for completion.