Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Connect AI clients to your Dactic work context through a hosted MCP service.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://mcp.app.dactic.io/mcpRun this in your terminal
claude mcp add --transport http dactic https://mcp.app.dactic.io/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"dactic": {
"url": "https://mcp.app.dactic.io/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"dactic": {
"type": "http",
"url": "https://mcp.app.dactic.io/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://mcp.app.dactic.io/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
list_agentsList the Dactic agents you (the signed-in user) have deployed, newest first. Returns each agent's id, name, platform and status. Use load_agent to run one or get_agent for its details. Returns not_found when you have none.
get_agentGet one of your Dactic agents by id: its name, platform, status, complete instructions and every skill (name, description, full procedure). Never returns another user's agent.
load_agentLoad one of your Dactic agents (by agent_id or exact agent_name) so you can run it in this chat: returns its complete instructions and skills. Follow them exactly. Returns not_ready when the agent has no approved instructions, and not_found when no agent matches; it never returns
invoke_agentRun one of your deployed Dactic agents. Claude agents start a Managed Agent session; Monday agents are run by Monday's own board automation. The response always includes the agent's complete instructions and skills. Retrying the same request returns the same run instead of starti
resolve_termsLook up what company-specific terms mean, from your organization's confirmed Dactic terminology only. Terms that aren't confirmed come back in gaps; never guess their meaning.
check_freshnessIs my Dactic knowledge up to date? Reports each surface (app sync, knowledge, terminology, playbook, department policies, skills, and optionally one agent) as fresh, stale, empty or unknown, with a recommendation for anything not fresh. Pass refs from other Dactic tools to check
get_policyGet your department's current policies with their source document. With query: the policies that apply to it (all of them when your department has few, else the closest matches; coverage says which). Returns not_found when none are published.
list_skillsList your active Dactic skills (procedures derived from your interviews). disclosure_tier L1 returns a catalog; L2/L3 add the procedure. Use get_skill for one skill. Returns not_found when you have none.
get_skillGet one of your Dactic skills by id, with its full procedure at disclosure_tier L3.
ask_knowledgeAnswer a question from your own Dactic context: matches holds evidence from your synced work data and current department policies related to the question; your_profile holds your work context, skills, agents and connected apps. When nothing matches, say so; never another user's d
get_context_bundleGet everything a task needs from Dactic in one call; use it before doing a task, especially when running an agent. With agent_id: that agent's complete instructions and skills. Without: your most relevant skills. Plus your knowledge (confirmed first, then inferred from approved s
get_user_contextYour own Dactic profile for personalising answers: job title, team, department and role; work context (role, guardrails, preferences); knowledge files (paginated, confirmed first; each says confirmed or inferred); connected apps; tools you use. Only ever your own data, even for o
get_knowledge_provenanceWhere did that come from? For refs returned by other Dactic tools (1-20), describes each item's source and a confidence of high, medium or low from a fixed rubric, with the rule that applied in `basis`. Rubric — terminology: high when confirmed with score >= 0.9 and no conflict,
submit_agent_feedbackFile feedback about one of your own Dactic agents (e.g. 'it keeps CC'ing finance'). Quote the user's words in detail. First call without confirmation_code: you get a preview and a confirmation_code and nothing is saved; show the preview, ask the user to confirm, then call again w
check_against_policyAdvisory check of a draft reply, plan or action against your department's Dactic policies. Returns findings that quote the policy and the draft verbatim, with a suggested change, and says how many policies were checked. Present the result as advice: it is never a compliance sign-
get_skill_usageHow often your Dactic skills were listed and loaded by AI clients (ChatGPT, Claude…) over the last 7, 30 or 90 days, how many live agents use each, and a suggestion (promote, keep, review or trim) with its basis. Suggestions are advice and never change anything. data_since is whe
synthesize_agentDraft a new Dactic agent for a task the user describes, built only from the user's own Dactic skills, policies and work context. Runs in the background: it returns a task_id at once; call get_task_status with it until the status is succeeded or failed. The result is a draft saved
create_agent_from_processDraft a new Dactic agent, and the new skills it needs, from a process the user describes in this chat — use this when the user's existing skills don't cover the work (synthesize_agent only reuses existing skills). The input includes purpose, concrete ordered steps, trigger, resou
get_task_statusStatus of a background task you started (e.g. synthesize_agent): queued, running, succeeded (with its result) or failed (with error_message). Only your own tasks; anything else is not_found.
searchSearch your Dactic knowledge (your skills, agents and playbooks, and your organization's confirmed terminology, plus current department policies). Returns results with an id, title and link; call fetch with an id for the full text.
fetchFetch the full text of one Dactic item by the id search returned, with a link to it.
get_usageYour Dactic AI usage (tokens by operation) over the last N days; scope=org is for org admins.
get_sync_statusReport recorded sync progress, last successful sync, approved source coverage and safe recovery guidance. Credential linkage is not proof of current access.
get_feedback_statusFollow the recorded processing/application state of your submitted agent feedback. No immediate agent change is implied.
recommend_agentMatch a task to accessible deployed agents by their stored instructions and skills. Returns candidate evidence and limitations; never runs or creates an agent.
compare_agent_versionsCompare two stored artifact versions of the same accessible agent/platform, with instruction diffs and skill additions/removals. Missing guardrails/parameters remain unknown. Never rolls back or deploys.
find_context_gapsAssess task preparation using available knowledge, skills, policies, terminology and sync readiness. Returns blocking/nonblocking gaps; unknown requirements or execution permissions remain unknown.
get_entity_contextFollow bounded explicit stored links from an approved board, accessible agent/project or confirmed term. Returns entities, relationship bases, citations and missing-link gaps. Text similarity never establishes a dependency.
get_context_deltaRetrieve added/updated/removed permitted knowledge and published policies since an actor-bound snapshot cursor. Omit cursor for a complete bounded baseline. Expired cursors or changed scopes/permissions require a fresh baseline. Returns snapshot differences, not every intermediat
retrieve_similar_casesFind comparable recent runs or resolved feedback owned by you. Returns recorded summaries/outcomes, citations and uncertainty; missing actions/outcomes remain unknown. Past outcomes do not guarantee success.
query_work_datasetQuery the approved synced Monday item view with supported scalar filters, sorting, grouping and count/sum aggregation. Fields are base identifiers or column: . Returns typed rows, pagination and explicit sync/coverage limits. Older syncs may lack structured columns. Never accepts
guide_workflowBuild advisory human-reviewed workflow options using accessible agents, context gaps, connection/sync readiness and provisional platform capabilities. Separates source, execution-platform and host connectors. Returns next actions and conservative net human-hours estimates only fr
recommend_new_agentsAfter confirming the user's goal, save a new recommendation iteration containing validated Claude draft proposals from their own skills/context. Optional priorities produce up to three proposals. A proposal never copies an agent or draft the user already has: when their skills ar
deploy_agentFirst deployment of your selected saved draft. Call without confirmation_code for a preview, show it to the user and obtain authorization, then repeat the same definition/target with the code. Checks skills, source approvals and existing deploy readiness/billing gates. Returns a
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain dactic.io (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 425 ms (HTTP 200)
No sign-in needed
Read 34 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (0.1.2) reached the registry 2 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, debuff
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Let coding agents play, test and tune your 2D web game: live state, explained errors, replays, fuzz.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Connect MCP clients to your Dactic work context through the hosted service at https://mcp.app.dactic.io/mcp. A Dactic account and access to the requested capabilities are required. Available tools depend on your account and permissions.
This repository contains the public client manifests, installation guidance, and complete source for the stdio launcher. The launcher uses the pinned mcp-remote transport and OAuth implementation. Backend processing remains on the hosted Dactic service. Reviewers and users use the same integration.
Draft release: the npm installation example is reserved for after @dactic/mcp-server@0.1.0 is published. Use a local checkout today. Marketplace approval and authenticated production verification are tracked in the release checklist.
Add a Streamable HTTP MCP server with URL https://mcp.app.dactic.io/mcp in your client's MCP settings, then complete the client's OAuth sign-in and consent flow. No API key is embedded in this repository.
For Cursor, merge the following entry into your existing MCP configuration:
{"mcpServers":{"dactic":{"url":"https://mcp.app.dactic.io/mcp"}}}
For Claude Code, use the bundled .mcp.json or run:
claude mcp add --transport http dactic https://mcp.app.dactic.io/mcp
The repository also includes Cursor, Claude, and portable plugin manifests. For a local Claude plugin check, run claude plugin validate .; for a local session, run claude --plugin-dir /absolute/path/to/dactic-v1-mcp-public. See client installation for the marketplace formats.
Install Node.js 22.12 or later. From a checkout:
npm ci
npm run verify node src/cli.js --help
Merge examples/stdio.local.json into the host's configuration and replace its absolute path with your checkout path. Launch from the MCP host so stdin/stdout stay connected. The bridge opens your browser when OAuth consent is needed. Do not enter account credentials in client JSON.
After the npm release, examples/stdio.npm.json runs the same bridge using npx -y @dactic/mcp-server@0.1.0.
When your account supports a Dactic bearer credential, supply it through the DACTIC_MCP_TOKEN environment variable. Configure the value in your host's secret settings or a private environment; never commit it. The bridge passes a literal environment placeholder to its child process, never the credential in process arguments. OAuth and bearer credentials retain the backend's normal permission checks.
docker build -t dactic-mcp:local .
docker run --rm -i -e DACTIC_MCP_TOKEN dactic-mcp:local
This uses an already-set host environment variable. Do not use -t: stdout must remain a clean MCP stream. Headless Docker requires a bearer credential; an interactive browser OAuth callback is not configured by this container.
| Variable | Behavior |
|---|---|
DACTIC_MCP_TOKEN | Optional bearer credential; omitted means browser OAuth |
DACTIC_REQUEST_ID | Optional safe correlation ID; otherwise a UUID is created |
MCP_REMOTE_CONFIG_DIR | Optional OAuth cache directory; contains credentials |
DACTIC_MCP_URL | Production URL or a loopback fixture for local verification |
OAuth requests the base scopes openid offline_access mcp/mcp:tools. Additional capabilities depend on server authorization and client consent; this launcher does not request organization-wide usage scopes by default. OAuth storage and refresh are handled by mcp-remote, normally under ~/.mcp-auth. Protect that cache like a password and do not share it.
The bridge writes only protocol messages to stdout. JSON lifecycle diagnostics go to stderr with a request_id, which is also sent as X-Request-ID to the service. Logs classify connection failures and retain safe stack function frames; upstream response bodies, authorization URLs, and credentials are discarded. Search diagnostics by request_id and events bridge.fail or bridge.dependency.fail. Connection establishment is bounded by a 15-second connect timeout, 60-second headers timeout, 300-second body idle timeout, and 120-second browser authorization callback timeout.
For authentication failures, reconnect using your host's sign-in flow. For permission failures, check account access; repeated authentication will not grant new permissions. For network errors, check endpoint availability and your network. Share only a correlation reference with support.
Public code implements transport and integration configuration. It contains no retrieval engine, internal prompts, database access, production infrastructure, or customer fixtures. Tool descriptions and schemas returned by the service are visible to MCP clients and may be captured by directory inspection. See review scope, security, and the Dactic privacy policy.
npm run verify checks official schema snapshots, manifest consistency, assets, packaging boundaries, and offline protocol integration tests against a synthetic loopback MCP server. Tests do not contact Dactic or read user credentials. CI runs the same checks and builds the non-root Docker image. No registry or marketplace publication runs in CI.
Source is licensed under MIT. Branding and the hosted service are outside that license; see NOTICE.