paperclip-mcp
An MCP bridge to Paperclip. Read your companies and issues, and act on what awaits a human, from any remote MCP client, with a policy on every tool.
A morning round, handing work to an agent, what gets refused, and the path each request takes. Fictional data.
Why
The official @paperclipai/mcp-server speaks stdio and exposes everything, approvals
included, plus raw API access. A board token has every right on every company: this bridge exposes
a closed set of tools instead, and is the only thing that restricts that token.
One mode per tool
Decision tools only accept ask or deny; the server refuses to start otherwise.
Tools
companies | Companies, issue prefix, id |
attention | What awaits a human, across companies |
issues · issue · document | Issues, detail, comments, documents, pending cards |
agents | Agents of a company |
approvals · action_requests | Pending approvals and tool actions |
issue_comment | Comment on an issue |
issue_create | Create an unassigned issue, optionally in a project |
issue_updateask | Assign an issue to an agent or to yourself, change its status, with an optional comment. Assignment and safe statuses (backlog, todo, done, cancelled by default) run directly; other changes ask |
projects · project_create | List projects, create one |
runs · run | Runs in progress, an agent's last runs, a run's error and last messages |
issue_history | What happened on an issue |
spend | Tokens and runs per agent over the last days |
activity · routines | Latest events of a company, its routines |
agent_pause · agent_wake · run_stop | Pause an agent, wake it, stop a run |
approval_comment | Comment on an approval without deciding it |
agent_resume · agent_unblock · routine_runask | Resume an agent, clear its error, run a routine now |
approval_decisionask | Approve or reject an approval |
interaction_respondask | Answer an agent's question card |
plan_confirmask | Accept or reject a plan |
action_request_decisionask | Authorize or decline a suspended tool action |
Making an agent act
In Paperclip, a comment only wakes the assigned agent, and an issue assigned to a user wakes nobody.
To hand work to an agent, issue_update assigns it, sets the status to todo
and adds a comment saying what to do, in a single request.
Run
docker build -t paperclip-mcp .
docker run -e PAPERCLIP_API_KEY=... \
-e CF_ACCESS_TEAM_DOMAIN=... -e CF_ACCESS_AUD=... \
-v ./policy.yaml:/app/policy.yaml:ro -p 9200:9200 paperclip-mcp
Every request must carry a valid Cloudflare Access JWT: a shared Docker network is not enough to
drive Paperclip. The MCP endpoint is /mcp.