MCP Server
Model Context Protocol (MCP) server for Subscriberbot — a thin shell over @burdenoff/mcp-libs that exposes AI-assistant tools, resources, and prompts for the Subscriberbot platform via GraphQL.
All module logic (auth, sandbox, the subscriberbot product surface, and the shared platform modules) lives in @burdenoff/mcp-libs. This repository only:
- Builds the MCP context with Subscriberbot product defaults.
- Selects which modules to mount.
- Selects the transport (stdio by default,
--httpopt-in) and port.
Quick Start
1. Install Dependencies
cd ~/products/subscriberbot/subscriberbot-mcp
bun install
2. Configure in Claude Code
Add to your project's .mcp.json (or ~/.claude/settings.json under mcpServers):
{
"mcpServers": {
"subscriberbot": {
"type": "stdio",
"command": "bun",
"args": ["run", "~/products/subscriberbot/subscriberbot-mcp/src/index.ts"],
"env": {
"SUBSCRIBERBOT_WORKSPACE_ENDPOINT": "http://localhost:4003/workspaces/graphql",
"SUBSCRIBERBOT_GLOBAL_ENDPOINT": "http://localhost:4000/global/graphql",
"LOG_LEVEL": "error"
}
}
}
}
3. Authenticate
On first use, ask Claude to call subscriberbot_auth_login — it returns a verification URL and user code. Open the URL, enter the code, complete the login in the browser, then ask Claude to call subscriberbot_auth_complete. Tokens are persisted under ~/.config/subscriberbot-mcp/ (permissions 0o600) and auto-refresh before expiry.
Mounted Modules
The shell mounts the Subscriberbot product module plus the shared platform modules from @burdenoff/mcp-libs:
auth, subscriberbot, sandbox, rbac, organizations, tours, workspaces, groups, tags, files, conversations, security, integrations, channels, scheduler, export, notifications, support, products, devportal, billing, store.
Tool / resource / prompt names are product-prefixed (subscriberbot_*).
Development
git clone https://github.com/algoshred/subscriberbot-mcp.git
cd subscriberbot-mcp
bun install # Install dependencies
bun run dev # Dev server (stdio, hot reload)
bun run server:http # HTTP transport mode
bun run test # Run wiring tests (vitest)
bun run sanity # typecheck + lint + format + build
bun run build # Production build
Run as a binary after building:
node dist/index.js # stdio transport
node dist/index.js --http --port 3030
Environment Variables
Defaults point at PROD. Override per environment via SUBSCRIBERBOT_* env vars:
| Variable | Default | Description |
|---|---|---|
SUBSCRIBERBOT_WORKSPACE_ENDPOINT | https://graphqlworkspaces.burdenoff.com/workspaces/graphql | Workspace gateway |
SUBSCRIBERBOT_GLOBAL_ENDPOINT | https://graphql.burdenoff.com/global/graphql | Global gateway |
SUBSCRIBERBOT_API_KEY | — | API key auth (skips device code) |
SUBSCRIBERBOT_ACCESS_TOKEN | — | Pre-set access token |
SUBSCRIBERBOT_WORKSPACE_ID | — | Pre-select workspace |
SUBSCRIBERBOT_ORGANIZATION_ID | — | Pre-select organization |
LOG_LEVEL | info | Logging level (error/warn/info/debug) |
See @burdenoff/mcp-libs (src/core/config/store.ts) for the full list.
The MCP server targets production by default. To use local or alpha, set BURDENOFF_ENV=local|alpha or pass explicit SUBSCRIBERBOT_* endpoint overrides. See Environment Selection for endpoint details.
Publishing
Publishing is held (pre-launch). Pushing to main runs only the green gate (lint, typecheck, test, build). Publishing @subscriberbot/mcp to npmjs happens only via the manual release.yml workflow (workflow_dispatch or a v* tag).
Related
- Repository:
subscriberbot-mcp