Files
PaperClipAI/packages/mcp-server
Harold KimandPaperclip 98df214917 fix: fail closed on unusable Codex auth during sandbox auth merge
When reusing a Codex sandbox, the workspace-restore step now performs
an auth-merge check before adopting the sandbox's auth.json. The merge
fails closed when:

- host or sandbox Codex auth is unusable (missing token or account)
- the subscription payload shapes differ between host and sandbox
- subscription account identities do not match

Additional hardening: node absence on PATH during the embedded decision
script now exits non-zero instead of silently falling through. Co-change
comments link parseAuth (the embedded script) to hasUsableAuthPayload
(codex-home.ts) so a future auth-format change cannot silently diverge
between the two implementations.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-09 10:08:57 +00:00
..

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 its configuration from environment variables:

  • PAPERCLIP_API_URL - Paperclip base URL, for example http://localhost:3100
  • PAPERCLIP_API_KEY - bearer token used for /api requests
  • PAPERCLIP_COMPANY_ID - optional default company for company-scoped tools
  • PAPERCLIP_AGENT_ID - optional default agent for checkout helpers
  • PAPERCLIP_RUN_ID - optional run id forwarded on mutating requests

Usage

npx -y @paperclipai/mcp-server

Or locally in this repo:

pnpm --filter @paperclipai/mcp-server build
node packages/mcp-server/dist/stdio.js

Tool Surface

Read tools:

  • paperclipMe
  • paperclipInboxLite
  • paperclipListAgents
  • paperclipGetAgent
  • paperclipListIssues
  • paperclipGetIssue
  • paperclipGetHeartbeatContext
  • paperclipListComments
  • paperclipGetComment
  • paperclipListIssueApprovals
  • paperclipListDocuments
  • paperclipGetDocument
  • paperclipListDocumentRevisions
  • paperclipListProjects
  • paperclipGetProject
  • paperclipGetIssueWorkspaceRuntime
  • paperclipWaitForIssueWorkspaceService
  • paperclipListGoals
  • paperclipGetGoal
  • paperclipListApprovals
  • paperclipGetApproval
  • paperclipGetApprovalIssues
  • paperclipListApprovalComments

Write tools:

  • paperclipCreateIssue
  • paperclipUpdateIssue
  • paperclipCheckoutIssue
  • paperclipReleaseIssue
  • paperclipAddComment
  • paperclipSuggestTasks
  • paperclipAskUserQuestions
  • paperclipRequestConfirmation
  • paperclipUpsertIssueDocument
  • paperclipRestoreIssueDocumentRevision
  • paperclipControlIssueWorkspaceServices
  • paperclipCreateApproval
  • paperclipLinkIssueApproval
  • paperclipUnlinkIssueApproval
  • paperclipApprovalDecision
  • paperclipAddApprovalComment

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.