About Dactic
Dactic MCP connects MCP clients to Dactic work context for account holders who need Dactic capabilities in AI tools. Backend processing stays on the hosted service, while the repository provides client configuration and a stdio launcher; available tools depend on account permissions.
Key features
- 01Connect to the hosted MCP service
- 02Support OAuth sign-in and consent
- 03Provide a stdio launcher
- 04Configure a bearer token through an environment variable
- 05Supply connection diagnostics
Use cases
- 01Connect Dactic work context in Cursor
- 02Authorize Dactic access in Claude Code
- 03Connect with a bearer credential in a headless environment
- 04Investigate connection issues by request ID
MCP support
Clients connect directly to the hosted MCP service over Streamable HTTP or through a stdio launcher using the mcp-remote bridge. The backend exposes tools according to account permissions; authentication uses OAuth or, where supported, a bearer credential.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.app.dactic.io/mcpclaude mcp add --transport http io-dactic-dactic https://mcp.app.dactic.io/mcp{"mcpServers":{"io-dactic-dactic":{"type":"http","url":"https://mcp.app.dactic.io/mcp"}}}Open in Cursor{"servers":{"io-dactic-dactic":{"type":"http","url":"https://mcp.app.dactic.io/mcp"}}}Open in VS Code{"mcpServers":{"io-dactic-dactic":{"type":"http","url":"https://mcp.app.dactic.io/mcp"}}}{"mcpServers":{"io-dactic-dactic":{"serverUrl":"https://mcp.app.dactic.io/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEDactic MCP
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/[email protected] is published. Use a local checkout today. Marketplace
approval and authenticated production verification are tracked in
the release checklist.
Connect directly (recommended)
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.
Connect through stdio
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/[email protected].
Headless environments and Docker
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.
Configuration and diagnostics
| 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 source boundary
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.
Development
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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.