{"_id":"@conductordeck/mcp-shim","name":"@conductordeck/mcp-shim","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@conductordeck/mcp-shim","version":"0.1.0","description":"stdio→HTTP proxy that lets Claude Desktop, ChatGPT, Cursor, and Zed connect to the Conductor Deck MCP server running on localhost:47823.","type":"module","bin":{"conductordeck-mcp-shim":"dist/index.js"},"main":"dist/index.js","scripts":{"build":"tsc","prepublishOnly":"npm run build","start":"node dist/index.js"},"engines":{"node":">=18.0.0"},"keywords":["mcp","model-context-protocol","claude","stream-deck","elgato","conductor-deck","automation","ai"],"author":{"name":"Conductor Deck"},"license":"MIT","homepage":"https://conductordeck.com","repository":{"type":"git","url":"git+https://github.com/calebvbi/sd-automate.git","directory":"apps/mcp-shim"},"bugs":{"url":"https://github.com/calebvbi/sd-automate/issues"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.6.0"},"_id":"@conductordeck/mcp-shim@0.1.0","gitHead":"6f9c50a531f3ddb0e8ff3e3d29d59ddef86a1c76","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-siLz4gTZ9anzlw0T10r4YaGlZLG7S+4vI+eTeaAIXzvsTMbOO31d3fnCWCTfazCkBNwMjY32hb7pZwMs9Kbd4A==","shasum":"45a0052252d3aa4d368f6c1aea118d05fb3bfe03","tarball":"https://registry.npmjs.org/@conductordeck/mcp-shim/-/mcp-shim-0.1.0.tgz","fileCount":4,"unpackedSize":15552,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDTib6HooOKXPD07NNOpb6fq87Jnb2rR8fRNkJ+hN44BAiEAmwtYlc3xaC+ipjtVMmfu6K7cE9YEZsQukvnCXSpHCLg="}]},"_npmUser":{"name":"leigh301","email":"leigh301@gmail.com"},"directories":{},"maintainers":[{"name":"leigh301","email":"leigh301@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-shim_0.1.0_1775537313545_0.36620373185229105"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-07T04:48:33.484Z","0.1.0":"2026-04-07T04:48:33.685Z","modified":"2026-04-07T04:48:33.957Z"},"maintainers":[{"name":"leigh301","email":"leigh301@gmail.com"}],"description":"stdio→HTTP proxy that lets Claude Desktop, ChatGPT, Cursor, and Zed connect to the Conductor Deck MCP server running on localhost:47823.","homepage":"https://conductordeck.com","keywords":["mcp","model-context-protocol","claude","stream-deck","elgato","conductor-deck","automation","ai"],"repository":{"type":"git","url":"git+https://github.com/calebvbi/sd-automate.git","directory":"apps/mcp-shim"},"author":{"name":"Conductor Deck"},"bugs":{"url":"https://github.com/calebvbi/sd-automate/issues"},"license":"MIT","readme":"# @conductordeck/mcp-shim\r\n\r\n> Connect Claude Desktop, ChatGPT, Cursor, Zed, and any other stdio MCP client to your **Conductor Deck** Stream Deck plugin.\r\n\r\n[Conductor Deck](https://conductordeck.com) is the AI-native automation backend for Elgato Stream Deck. Its Stream Deck plugin embeds an MCP server on `http://127.0.0.1:47823/mcp` so any AI assistant can list, build, run, and control your workflows directly from a chat interface.\r\n\r\nThis package is a tiny zero-dependency `stdio → HTTP` proxy. Most production MCP clients spawn servers as stdio commands; the Conductor Deck server lives inside the Stream Deck plugin process and speaks Streamable HTTP. This shim bridges the two transports.\r\n\r\n## Install\r\n\r\n```bash\r\nnpm install -g @conductordeck/mcp-shim\r\n```\r\n\r\nOr use `npx` directly inside your MCP client config (recommended — no install step).\r\n\r\n## Connect to Claude Desktop\r\n\r\nAdd Conductor Deck to your `claude_desktop_config.json`:\r\n\r\n**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\r\n**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"conductor-deck\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@conductordeck/mcp-shim\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nRestart Claude Desktop. Open a new conversation and ask:\r\n\r\n> \"List my Conductor Deck workflows\"\r\n\r\nClaude will call the `workflows.list` tool through the shim, the shim forwards it to the local Stream Deck plugin, and the plugin returns your workflows.\r\n\r\n## Connect to Cursor / Zed / other MCP clients\r\n\r\nAny MCP client that supports stdio servers will work. The command and args are identical:\r\n\r\n```json\r\n{\r\n  \"command\": \"npx\",\r\n  \"args\": [\"-y\", \"@conductordeck/mcp-shim\"]\r\n}\r\n```\r\n\r\n## Available tools\r\n\r\nThe Conductor Deck MCP server exposes 9 top-level tools (operation-typed, GitHub-MCP/Stripe-MCP style). Five ship real handlers in v1.0; four are discoverable stubs that return a structured `not_implemented_yet` response so MCP clients can explain the gap instead of hallucinating.\r\n\r\n| Tool | Operations | Status |\r\n|---|---|---|\r\n| `health` | *(no args)* | Live |\r\n| `workflows` | `list`, `get` | Live — `create`, `update`, `delete`, `duplicate` coming in v1.1 |\r\n| `run_workflow` | `run`, `cancel`, `retry`, `status` | Live |\r\n| `stream_deck` | `list_devices`, `set_button`, `set_alert`, `clear` | Live |\r\n| `templates` | `list`, `use`, `create`, `share` | Live |\r\n| `build_workflow` | `add_node`, `connect`, `configure`, `generate_from_description` | Stub — coming in v1.1 |\r\n| `connections` | `list`, `connect`, `disconnect` | Stub — coming in v1.1 |\r\n| `local` | `shell`, `keyboard`, `http`, `obs`, `open_url`, `notification` | Stub — coming in v1.1 (after security review) |\r\n| `suggest` | `workflows`, `integrations`, `optimizations` | Stub — coming in v1.1 |\r\n\r\nThe full schema, examples, and live status for every tool are documented at [conductordeck.com/mcp](https://conductordeck.com/mcp).\r\n\r\n## Requirements\r\n\r\n- Node.js 18 or newer (uses built-in `fetch`)\r\n- Stream Deck Software 6.5 or newer\r\n- Conductor Deck plugin installed and linked to your account\r\n\r\n## Configuration\r\n\r\nOverride the upstream endpoint with environment variables:\r\n\r\n| Variable | Default | Purpose |\r\n|---|---|---|\r\n| `CONDUCTORDECK_MCP_URL` | `http://127.0.0.1:47823/mcp` | URL of the Conductor Deck plugin's MCP endpoint |\r\n| `CONDUCTORDECK_MCP_TIMEOUT_MS` | `30000` | Per-request timeout in milliseconds |\r\n\r\n## Troubleshooting\r\n\r\n**\"Conductor Deck plugin is not running\" error**\r\nOpen Stream Deck Software and ensure the Conductor Deck plugin is installed and enabled. The plugin starts the MCP server automatically when Stream Deck launches.\r\n\r\n**Tools list is empty**\r\nMake sure the Conductor Deck plugin is linked to your account. Open the plugin settings in Stream Deck → click \"Sign in\" → complete the connection flow at conductordeck.com.\r\n\r\n**Session expired errors**\r\nThe MCP server returns a fresh session id on each `initialize` call. The shim handles this automatically — restart Claude Desktop if you see persistent session errors.\r\n\r\n## How it works\r\n\r\n```\r\n┌──────────────┐    stdio      ┌────────────┐    HTTP/SSE    ┌──────────────────┐\r\n│ Claude       │ ◄────────────►│ mcp-shim   │ ◄─────────────►│ Stream Deck      │\r\n│ Desktop      │   JSON-RPC    │ (this pkg) │   POST /mcp    │ plugin process   │\r\n└──────────────┘               └────────────┘                │ :47823/mcp       │\r\n                                                             └──────────────────┘\r\n```\r\n\r\nThe shim:\r\n1. Reads newline-delimited JSON-RPC from stdin\r\n2. POSTs each message to the local plugin's `/mcp` endpoint\r\n3. Captures the `mcp-session-id` response header on `initialize` and forwards it on subsequent requests\r\n4. Handles both plain JSON and `text/event-stream` responses\r\n5. Writes responses back to stdout, one JSON-RPC message per line\r\n\r\n## License\r\n\r\nMIT © Conductor Deck\r\n\r\n## Links\r\n\r\n- [Conductor Deck](https://conductordeck.com) — visual AI workflow builder for Stream Deck\r\n- [MCP Tool Schema](https://conductordeck.com/mcp) — complete tool reference\r\n- [Source code](https://github.com/calebvbi/sd-automate/tree/main/apps/mcp-shim)\r\n","readmeFilename":"README.md","_rev":"1-053f5cbca34e6a1e080941c73d0e7aa4"}