Configuration
The Ductape MCP server uses stdio transport and requires no environment variables. Configure your MCP client to spawn the server as a child process.
Cursor
Add the server in MCP settings. Config file locations:
- User-wide:
~/.cursor/mcp.json - Project-scoped:
.cursor/mcp.jsonin your project root
{
"mcpServers": {
"ductape": {
"command": "node",
"args": ["/absolute/path/to/Ductape/platform/mcp-server/dist/index.js"]
}
}
}
Important: Use an absolute path for args[0]. Relative paths may fail depending on the client's working directory.
Development mode
Point to tsx for live reload during server development:
{
"mcpServers": {
"ductape": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/Ductape/platform/mcp-server/src/index.ts"]
}
}
}
Global binary
If you ran npm link in platform/mcp-server/:
{
"mcpServers": {
"ductape": {
"command": "ductape-mcp"
}
}
}
After editing config, restart Cursor or reload MCP servers from the MCP settings panel.
Claude Desktop
Claude Desktop uses a similar JSON config. On macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
On Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ductape": {
"command": "node",
"args": ["/absolute/path/to/Ductape/platform/mcp-server/dist/index.js"]
}
}
}
Restart Claude Desktop after saving.
Other MCP clients
Any client that supports stdio MCP servers can use the same pattern:
| Field | Value |
|---|---|
command | node (or ductape-mcp if linked globally) |
args | ["/absolute/path/to/platform/mcp-server/dist/index.js"] |
| Transport | stdio (default for spawned processes) |
Clients that support MCP over SSE or HTTP would need a separate adapter — the Ductape MCP server ships stdio only.
Credentials
The server itself stores no credentials. Pass them per tool call:
| Tool | Credential |
|---|---|
ductape_execute | publishable_key (required on every call) |
ductape_generate_payload | public_key, workspace_id, user_id |
ductape_generate_snippet | Same as payload generation |
Where to find keys
- Publishable Key — Workbench → workspace settings, or SDK access panel
- Public Key / Workspace ID / User ID — Same workspace settings; used for payload generation and direct SDK initialization
See Security for why credentials are per-request rather than in server config.
Project-scoped vs user-wide config
| Scope | Best for |
|---|---|
User-wide (~/.cursor/mcp.json) | Personal development across all projects |
Project-scoped (.cursor/mcp.json) | Team-shared config committed to the repo |
For team repos, consider documenting the required absolute path in a README and using project-scoped config with a path each developer adjusts locally, or a wrapper script that resolves the monorepo path.
Wrapper script (optional)
If absolute paths are awkward across machines, use a small launcher:
#!/usr/bin/env bash
# save as ~/bin/ductape-mcp-launch.sh
exec node "$(dirname "$0")/../../Ductape/platform/mcp-server/dist/index.js"
Then in MCP config:
{
"mcpServers": {
"ductape": {
"command": "/Users/you/bin/ductape-mcp-launch.sh"
}
}
}