pipeline-mcp
v2.3.3
Published
Thin JSON-RPC MCP proxy for Pipeline. Tools, workflow-skill resources, execution classifications, and routing stay server-owned, with optional toolsets for smaller agent contexts.
Maintainers
Readme
pipeline-mcp
Use the Pipeline AI agent team directly from Claude Code, Cursor, Codex, Claude Desktop, or any MCP-aware agent. The public team is Strategist, GTM Engineer, Reply Agent, SDR Agent, and GTM Lead.
The full hosted tool catalog for campaigns, prospects, enrichment, research, signals, content, CRM, conversations, analytics, and workflows.
v2.3 is a thin proxy. Tools, workflow-skill resources, execution classifications, and routing live on the Pipeline server. The client forwards the MCP protocol without duplicating business logic.
Install
Claude Code
Add to ~/.claude.json (or run claude mcp add):
{
"mcpServers": {
"pipeline": {
"command": "npx",
"args": ["-y", "pipeline-mcp", "--api-key", "pipeline_pat_YOUR_TOKEN", "--workspace", "client-workspace"]
}
}
}Cursor
Add to your Cursor MCP config:
{
"mcpServers": {
"pipeline": {
"command": "npx",
"args": ["-y", "pipeline-mcp", "--api-key", "pipeline_pk_YOUR_KEY"]
}
}
}Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"pipeline": {
"command": "npx",
"args": ["-y", "pipeline-mcp", "--api-key", "pipeline_pk_YOUR_KEY"]
}
}
}Codex CLI
codex mcp add pipeline npx -y pipeline-mcp --api-key pipeline_pk_YOUR_KEYAny MCP-aware client
Run pipeline-mcp --api-key pipeline_pk_YOUR_KEY and point your client at its stdio. Or run a loopback-only HTTP proxy. HTTP clients must send their own Pipeline key on every request:
pipeline-mcp --http --port 3000
curl \
-H "Authorization: Bearer pipeline_pk_YOUR_KEY" \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
http://127.0.0.1:3000Authenticate to Pipeline
- Sign in at pipeline.help
- Settings → API Keys → Create a personal token or workspace service key
- Copy the credential (shown only once). Personal tokens use
pipeline_pat_...; workspace service keys usepipeline_pk_...
A personal token follows your live workspace memberships and permissions. It can work across client workspaces where you are an invited admin or member. Use list-workspaces first, then configure --workspace <id-or-slug> when the account has multiple workspaces. Pipeline does not choose the newest or first workspace automatically.
This credential authenticates the MCP client to Pipeline. It is separate from connected sourcing, enrichment, LinkedIn, and model credentials. Those remain workspace connections under Pipeline's BYOK model. A personal token does not grant a provider capability that the selected workspace has not connected.
Global install
npm i -g pipeline-mcpThen reference pipeline-mcp directly in your MCP config (skip the npx -y prefix).
Configuration
| Flag | Env | Default | Purpose |
|---|---|---|---|
| --api-key <key> | PIPELINE_API_KEY | none | Required for stdio. HTTP mode ignores launch-time keys and requires auth per request. |
| --base-url <url> | PIPELINE_BASE_URL | https://app.pipeline.help/api | Override for staging |
| --http | none | off | Run as a loopback-only HTTP proxy instead of stdio |
| --port <n> | none | 3000 | Port for --http mode |
| --toolsets <names> | PIPELINE_MCP_TOOLSETS | full | Comma-separated core, campaigns, tables, content, engagement, operations, or full. |
| --workspace <value> | PIPELINE_WORKSPACE | none | Workspace ID or slug for workspace-scoped calls. Required when a personal token can access multiple workspaces. |
| --version | none | none | Print version |
| --help | none | none | Print help |
Two AI modes
Pipeline supports two explicit paths:
- External-agent reasoning. Codex or another MCP client uses its own subscription to reason, reads Pipeline resources and workspace context, authors artifacts locally, then calls deterministic or provider-backed operations to validate and persist the result.
- Pipeline backend AI. The Pipeline app uses its backend model path for its agent team. Contract operations classified as
pipeline_hosted_aiuse that same path and require explicit consent withallowHostedAi: true.
generate-content and create-strategy-ideas are Pipeline backend AI operations. They are not local Codex skills. In the external-agent path, use get-content-authoring-context, get-gtm-context, and Pipeline resources, then author with Codex and save the result with a draft-only operation.
Every operation advertises one execution class:
deterministic: no additional Pipeline-hosted inference.provider_call: invokes a connected workspace provider.pipeline_hosted_ai: requiresallowHostedAi: truebefore the server will dispatch it.
For shell-native coding agents, prefer the companion CLI:
npm i -g pipeline-gtm
pipeline init
pipeline list-campaigns --status activeSame auth and contract, with compact JSON and predictable exit codes. See the CLI README.
Pipeline workflow skills are exposed through resources/list and resources/read, including campaign building, enrichment tables, content, engagement, and general GTM operations. Workspace role skills, versions, hashes, provider requirements, and resource URIs use the same authenticated resource surface.
Use --toolsets core,campaigns,tables to keep the advertised operation set small. Skill resources remain available regardless of selected toolsets. full remains the compatibility default.
Canonical Codex draft path
Use the Strategist and GTM Engineer resources as instructions, not as separate public teammates:
- Call
resources/list, then readpipeline://skill/strategist-constitutionandpipeline://skill/pipeline-build-campaign. - Call
get-gtm-context. For a LinkedIn post, also callget-content-authoring-context. - Let Codex author the campaign brief, message, or LinkedIn post locally with its own subscription.
- Validate caller-authored campaign work with
validate-campaign-brieforvalidate-table-blueprint. - Persist only a reviewable artifact with
save-campaign-brieforsave-content-post.
The verified campaign pattern uses exactly five prospects for the pilot. It writes five rows to a brief-bound table, saves five draft sequence touches, creates a draft campaign, and enrolls the five rows as pending executions. Enrollment does not start the campaign. Starting, publishing, scheduling, messaging, and sending connection requests remain separate operations outside this draft path.
Content generation is LinkedIn-only. get-content-authoring-context reads the active voice, inspiration, intelligence, and workspace context for local authoring. get-post reads a persisted draft. save-content-post can only save a LinkedIn draft and cannot schedule or publish it.
For engagement, list-tracked-posts is the deterministic read for posts discovered from tracked LinkedIn profiles. A tracked profile must exist before save-comment-draft has an eligible post. In the verified live run, all six bounded track-influencer lookups returned Failed to fetch LinkedIn profile, all used shouldFollow: false, and no tracked profile, comment draft, or follow attempt was created.
ElevenLabs is currently visible through list-integrations. Assignment readiness and preview are not exposed to API-key MCP, CLI, SDK, or REST surfaces, so an external agent cannot safely preview or change an assignment through this contract.
How it works
Claude Code / Cursor / Codex
│ (stdio, MCP protocol)
▼
pipeline-mcp (this package, ~250 LOC)
│ (HTTPS, JSON-RPC 2.0)
▼
https://app.pipeline.help/api/mcp-server
│
▼
the full hosted tool catalog (campaigns, prospects, signals, CRM, …)All schemas and handlers live on the server. This package is a thin layer of network plumbing. When Pipeline adds a tool, it is immediately callable without an npm update.
License
MIT © Pipeline
