@bbengamin/paperclip-mcp-server
v0.1.1
Published
Model Context Protocol server for Paperclip.
Readme
Paperclip MCP Server
Model Context Protocol server for Paperclip.
This package is a thin MCP wrapper over the existing Paperclip REST API. It does not talk to the database directly and it does not reimplement business logic.
Authentication
The server reads explicit environment variables first:
PAPERCLIP_API_URL- Paperclip base URL, for examplehttp://localhost:3100PAPERCLIP_API_KEY- bearer token used for/apirequestsPAPERCLIP_COMPANY_ID- default company for company-scoped toolsPAPERCLIP_AGENT_ID- optional default agent for checkout helpersPAPERCLIP_RUN_ID- optional run id forwarded on mutating requests
If PAPERCLIP_API_URL, PAPERCLIP_API_KEY, or PAPERCLIP_COMPANY_ID is not set,
the server falls back to the active Paperclip CLI profile:
- context from
~/.paperclip/context.jsonorPAPERCLIP_CONTEXT - board credential from
~/.paperclip/auth.jsonorPAPERCLIP_AUTH_STORE
The board credential is read in memory and sent only as the REST Authorization header. The server does not print or copy token values.
Startup fails with setup instructions when CLI context or board auth is missing. Run these before using a token-free MCP config:
paperclipai context set --api-base https://paperclip.right.link --company-id <company-id> --use
paperclipai auth login --api-base https://paperclip.right.linkUsage
npx -y @bbengamin/paperclip-mcp-serverOr locally in this repo:
pnpm --filter @bbengamin/paperclip-mcp-server build
node packages/mcp-server/dist/stdio.jsToken-free MCP host config:
{
"mcpServers": {
"paperclip": {
"command": "npx",
"args": ["-y", "@bbengamin/paperclip-mcp-server"]
}
}
}Use explicit env vars when you want a host-local override:
{
"mcpServers": {
"paperclip": {
"command": "npx",
"args": ["-y", "@bbengamin/paperclip-mcp-server"],
"env": {
"PAPERCLIP_API_URL": "https://paperclip.right.link",
"PAPERCLIP_COMPANY_ID": "<company-id>"
}
}
}
}Tool Surface
Read tools:
paperclipMepaperclipInboxLitepaperclipListAgentspaperclipGetAgentpaperclipListIssuespaperclipGetIssuepaperclipGetHeartbeatContextpaperclipListCommentspaperclipGetCommentpaperclipListIssueApprovalspaperclipListDocumentspaperclipGetDocumentpaperclipListDocumentRevisionspaperclipListProjectspaperclipGetProjectpaperclipGetIssueWorkspaceRuntimepaperclipWaitForIssueWorkspaceServicepaperclipListGoalspaperclipGetGoalpaperclipListApprovalspaperclipGetApprovalpaperclipGetApprovalIssuespaperclipListApprovalComments
Write tools:
paperclipCreateIssuepaperclipUpdateIssuepaperclipCheckoutIssuepaperclipReleaseIssuepaperclipAddCommentpaperclipSuggestTaskspaperclipAskUserQuestionspaperclipRequestConfirmationpaperclipUpsertIssueDocumentpaperclipRestoreIssueDocumentRevisionpaperclipControlIssueWorkspaceServicespaperclipCreateApprovalpaperclipLinkIssueApprovalpaperclipUnlinkIssueApprovalpaperclipApprovalDecisionpaperclipAddApprovalComment
Escape hatch:
paperclipApiRequest
paperclipApiRequest is limited to paths under /api and JSON bodies. It is
meant for endpoints that do not yet have a dedicated MCP tool.
