{"_id":"@getholdings/mcp","_rev":"3-59bbcb5311bc53ca555417fa412f52d2","name":"@getholdings/mcp","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@getholdings/mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","holdings","invoicing","accounting","claude","cursor"],"author":{"name":"Holdings"},"license":"MIT","_id":"@getholdings/mcp@0.1.0","maintainers":[{"name":"hdavis730","email":"hunterdavis730@gmail.com"}],"homepage":"https://getholdings.com","bugs":{"url":"https://github.com/holdings-io/workspace/issues"},"bin":{"holdings-mcp":"dist/index.js"},"dist":{"shasum":"33dbabd074ce750c5b2b3f0097019e47addfd6c0","tarball":"https://registry.npmjs.org/@getholdings/mcp/-/mcp-0.1.0.tgz","fileCount":12,"integrity":"sha512-ZBrn4QvM9qoOPdc8Wif0g/0bVWSNINMnEba9ZOv0Yla5HvxbUr9bIUG14hc41Ss2wzbBOdDhI6GXdeJAz4Pyjg==","signatures":[{"sig":"MEUCIGg1ZgH/OwwgLrj7k6GPX1cPr9+bibGO7B8bq+pLlHedAiEAvg8FzBG8wFwRgTjqbLGAgAZL/1WTN/TzKp9HOS5y11o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32916},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"3ac72bf0b7fd7d0ff60de95f6c03572834964e6f","mcpName":"com.getholdings/mcp","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"hdavis730","email":"hunterdavis730@gmail.com"},"repository":{"url":"git+https://github.com/holdings-io/workspace.git","type":"git","directory":"packages/mcp"},"_npmVersion":"11.16.0","description":"Holdings Workspace MCP server (stdio) — guided, confirmable invoicing/quotes/clients/payments for Claude Desktop, Cursor, and other MCP hosts.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1784751070588_0.7416381847360087","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@getholdings/mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","holdings","invoicing","accounting","claude","cursor"],"author":{"name":"Holdings"},"license":"MIT","_id":"@getholdings/mcp@0.2.0","maintainers":[{"name":"hdavis730","email":"hunterdavis730@gmail.com"}],"homepage":"https://getholdings.com","bugs":{"url":"https://github.com/holdings-io/workspace/issues"},"bin":{"holdings-mcp":"dist/index.js"},"dist":{"shasum":"31f345b80631d1e9e4c3b3f71c8a5e63a6b594c1","tarball":"https://registry.npmjs.org/@getholdings/mcp/-/mcp-0.2.0.tgz","fileCount":12,"integrity":"sha512-OL+FeP1K7inRohnJHPSg/gR0AHtqVbrKNPqey8u/WbuN7FveEwdLFRBhqYwllYhnbMFizoVt78XPf9h6jIujVg==","signatures":[{"sig":"MEUCIFNp3iYo+mvm/Y/xLXMO/R674Vq1x2ScjF3KGsXEAycKAiEA2yZBE5l+MaTJthyHHo1NRw5eUiTh2SaQaWMr7y/DHgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45744},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"7b311c5ffdfb44d9ce38d9a2ea8ca36bfbc1fdc5","mcpName":"com.getholdings/mcp","scripts":{"dev":"tsc -p tsconfig.json --watch","build":"tsc -p tsconfig.json","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"hdavis730","email":"hunterdavis730@gmail.com"},"repository":{"url":"git+https://github.com/holdings-io/workspace.git","type":"git","directory":"packages/mcp"},"_npmVersion":"11.16.0","description":"Holdings Workspace MCP server (stdio) — guided, confirmable invoicing/quotes/clients/payments for Claude Desktop, Cursor, and other MCP hosts.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.26.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1785783318227_0.3462207430756734","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@getholdings/mcp","version":"0.3.0","mcpName":"com.getholdings/mcp","description":"Holdings Workspace MCP server (stdio) — guided, confirmable invoicing/quotes/clients/payments for Claude Desktop, Cursor, and other MCP hosts.","keywords":["mcp","model-context-protocol","holdings","invoicing","accounting","claude","cursor"],"homepage":"https://getholdings.com","license":"MIT","author":{"name":"Holdings"},"repository":{"type":"git","url":"git+https://github.com/holdings-io/workspace.git","directory":"packages/mcp"},"bugs":{"url":"https://github.com/holdings-io/workspace/issues"},"type":"module","bin":{"holdings-mcp":"dist/index.js"},"main":"dist/index.js","publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","dev":"tsc -p tsconfig.json --watch","start":"node dist/index.js","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run build"},"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.26.0","zod":"^3.23.0"},"devDependencies":{"@types/node":"^25.9.1","typescript":"^5.8.0"},"gitHead":"55abcb840ec38f86a37a04701a9b8bc8a03ed3d0","types":"./dist/index.d.ts","_id":"@getholdings/mcp@0.3.0","_nodeVersion":"26.3.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-vfs3iOP2/lI9S2v+Lk4LUlNoV+eqe8Ltho04AhWjnQ+KrAWJkDf+P0+F4BxXEfu0+wpNkLoFFzTs/C+WZ8coqA==","shasum":"0eee0742b9c8442462f9787033837d01bbc8d990","tarball":"https://registry.npmjs.org/@getholdings/mcp/-/mcp-0.3.0.tgz","fileCount":12,"unpackedSize":50315,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD7j4t/+GJzkT+60evR5rCdLxAkBZnVV6v7P+9boMmILgIgfZQQM8bsZW2IlRRPo2hzGVHxf24nYDvbjLQtTE05i6I="}]},"_npmUser":{"name":"hdavis730","email":"hunterdavis730@gmail.com"},"directories":{},"maintainers":[{"name":"hdavis730","email":"hunterdavis730@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.3.0_1786065684224_0.5565872725373948"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-22T20:11:10.395Z","modified":"2026-08-07T01:21:24.561Z","0.1.0":"2026-07-22T20:11:10.716Z","0.2.0":"2026-08-03T18:55:18.366Z","0.3.0":"2026-08-07T01:21:24.400Z"},"bugs":{"url":"https://github.com/holdings-io/workspace/issues"},"author":{"name":"Holdings"},"license":"MIT","homepage":"https://getholdings.com","keywords":["mcp","model-context-protocol","holdings","invoicing","accounting","claude","cursor"],"repository":{"type":"git","url":"git+https://github.com/holdings-io/workspace.git","directory":"packages/mcp"},"description":"Holdings Workspace MCP server (stdio) — guided, confirmable invoicing/quotes/clients/payments for Claude Desktop, Cursor, and other MCP hosts.","maintainers":[{"name":"hdavis730","email":"hunterdavis730@gmail.com"}],"readme":"# @getholdings/mcp\n\nRun your Holdings Workspace (invoices, quotes, clients, payments) from any MCP\nhost — **Claude**, **ChatGPT**, **Cursor**, and others — in natural language,\nwith every write **previewed and confirmed**.\n\n## Fastest way to connect: hosted URL (no install)\n\nHoldings runs a hosted MCP server. Generate a key in **Holdings → Settings →\nMCP**, then paste your connection URL into your MCP client's custom-connector\nfield:\n\n```\nhttps://mcp.getholdings.com/mcp?mcpKey=YOUR_MCP_KEY\n```\n\nThat's it — no download, no local config. The key in the URL authenticates you\nand scopes the server to your company. Clients that accept a header can instead\nsend `Authorization: Bearer YOUR_MCP_KEY` to the same URL. If a key leaks,\nregenerate it in Settings → MCP (the old key + URL stop working immediately).\n\n> The `?mcpKey=` URL form is a secret in a URL — treat the URL like a password,\n> and use the header form when your client supports it.\n\n## Local option: stdio (npm)\n\nHoldings Workspace MCP server (stdio). Lets an MCP host — **Claude Desktop**,\n**Cursor**, and others — run your Holdings Workspace (invoices, quotes, clients,\npayments) in natural language, with every write **previewed and confirmed**.\n\n## How it works\n\nThin stdio MCP server (`@modelcontextprotocol/sdk`, `StdioServerTransport`).\nEvery tool is an HTTPS call to the live Holdings v1 API with your company key.\nThe guided-write intelligence — slot-filling, preview, the server-enforced\nconfirmation gate, and humanized copy — lives server-side in the agent-actions\nlayer, so this package stays thin and never drifts from the API.\n\n### Tools (Option C)\n\n- **Reads (one-shot):** `list_invoices`, `get_invoice`, `list_quotes`,\n  `get_quote`, `list_clients`, `get_client`, `list_payments`, `get_company`,\n  `capabilities`, `overview`.\n- **Guided writes (three meta-tools):** `resolve_action` → `prepare_action`\n  (returns a preview + `confirmationToken`) → `execute_action` (runs it with\n  the token, after you approve). A write cannot execute without a valid,\n  payload-bound token — the server enforces this, not the model.\n\n## Install & configure\n\n```bash\nnpm install -g @getholdings/mcp   # or run via npx\n```\n\nAdd to your MCP host config (Claude Desktop example, `claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"holdings\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@getholdings/mcp\"],\n      \"env\": {\n        \"HOLDINGS_API_KEY\": \"hw_live_…\",\n        \"HOLDINGS_API_BASE\": \"https://workspace.getholdings.com/api/v1\"\n      }\n    }\n  }\n}\n```\n\n- `HOLDINGS_API_KEY` (required): your company API key. It scopes what the\n  server can do.\n- `HOLDINGS_API_BASE` (optional): defaults to production. Point it at a preview\n  deployment for testing.\n\n## Build (from source)\n\n```bash\ncd packages/mcp\nnpm install\nnpm run build\nnpm start   # needs HOLDINGS_API_KEY in env\n```\n\n## Safety\n\nWrites go through the server confirmation gate (`/agent/execute` returns **428**\nfor a write with no valid `confirmationToken`). Even a misbehaving host cannot\npush a write through without the user-approved, payload-bound token.\n","readmeFilename":"README.md"}