{"_id":"@attribloom/mcp","_rev":"4-49b1c0f8ac4f604684d573e42233e743","name":"@attribloom/mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"@attribloom/mcp","version":"0.0.1","keywords":["mcp","attribloom","affiliate","shopify","app-store"],"author":{"name":"Attribloom"},"license":"MIT","_id":"@attribloom/mcp@0.0.1","maintainers":[{"name":"attribloom","email":"legitimateappsllc@gmail.com"}],"homepage":"https://attribloom.com/agents/ios-affiliate-attribution","bugs":{"url":"https://github.com/attribloom/attribloom-mcp/issues"},"bin":{"attribloom-mcp":"dist/stdio.js","attribloom-mcp-http":"dist/http.js"},"dist":{"shasum":"ff4b887a28fa8711bd0404e8d1efe9c781be5ddf","tarball":"https://registry.npmjs.org/@attribloom/mcp/-/mcp-0.0.1.tgz","fileCount":26,"integrity":"sha512-pUvbJhhYQnZCIPusqqSnzo5uC0uNGRVGOTWflZJvJ9VTGiajzVepO2sQR/vbn/QFA5O4nxk/n1So5WRSRbFU3w==","signatures":[{"sig":"MEYCIQCrm1SZ4zitsMJ8+bwX+yNSd3+/a+iZ1mjgCaw6uQZOowIhAIFfUX0pq4ujI4Ji6gG9QJJGtvsE/tQRxQozjbclQaNn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33544},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"03a19381e4b38ed38c07b669d71cdb41aee8f534","scripts":{"test":"cd ../.. && vitest run packages/mcp/test","build":"tsc -b","typecheck":"tsc --noEmit"},"_npmUser":{"name":"attribloom","email":"legitimateappsllc@gmail.com"},"repository":{"url":"git+https://github.com/attribloom/attribloom-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Attribloom MCP server · operate your tenant via the read-only management API","directories":{},"_nodeVersion":"26.5.0","dependencies":{"zod":"^3.24.2","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.29"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.0.1_1784642846468_0.5448683222509356","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@attribloom/mcp","version":"0.1.0","keywords":["mcp","modelcontextprotocol","attribloom","affiliate","affiliate-attribution","shopify","app-store","storekit"],"author":{"name":"Attribloom"},"license":"MIT","_id":"@attribloom/mcp@0.1.0","maintainers":[{"name":"attribloom","email":"legitimateappsllc@gmail.com"}],"homepage":"https://attribloom.com/agents/ios-affiliate-attribution","bugs":{"url":"https://github.com/attribloom/attribloom-mcp/issues"},"bin":{"attribloom-mcp":"dist/cli.js"},"dist":{"shasum":"47864c4e1fe3a99e2eac37f202b12fd101b964b4","tarball":"https://registry.npmjs.org/@attribloom/mcp/-/mcp-0.1.0.tgz","fileCount":31,"integrity":"sha512-L1BXyzqY2FHLavIiEX1OyOyA/v55pQ4sHcmIpqI27HE/pWRhs89BmtvSlGrCQhOxaXCTomB4J1I0mQ2j/tq6lA==","signatures":[{"sig":"MEQCIGxpTxaja9qKOoPGvsmCIlJetoPDgiE5pHrLUac7R2W+AiAWLFxY0UeDtftK6TB8ThnmF42vFyy0Ts9Di0oPwFXXpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40924},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"198011e9b4c292af0be7ef76a2d879f0bddb82a1","mcpName":"com.attribloom/mcp","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"attribloom","email":"legitimateappsllc@gmail.com"},"repository":{"url":"git+https://github.com/attribloom/attribloom-mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"Attribloom MCP server · operate your tenant via the read-only management API","directories":{},"_nodeVersion":"26.5.0","dependencies":{"zod":"^3.24.2","@modelcontextprotocol/sdk":"^1.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.9","typescript":"^5.7.3","@types/node":"^22.15.29","@tsconfig/strictest":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1784647113506_0.14774290256800104","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-07-21T14:07:26.131Z","modified":"2026-07-24T23:59:08.889Z","0.0.1":"2026-07-21T14:07:26.633Z","0.1.0":"2026-07-21T15:18:33.678Z"},"bugs":{"url":"https://github.com/attribloom/attribloom-mcp/issues"},"author":{"name":"Attribloom"},"license":"MIT","homepage":"https://attribloom.com/agents/ios-affiliate-attribution","keywords":["mcp","modelcontextprotocol","attribloom","affiliate","affiliate-attribution","shopify","app-store","storekit"],"repository":{"url":"git+https://github.com/attribloom/attribloom-mcp.git","type":"git"},"description":"Attribloom MCP server · operate your tenant via the read-only management API","maintainers":[{"name":"attribloom","email":"legitimateappsllc@gmail.com"}],"readme":"# @attribloom/mcp\n\n[![npm](https://img.shields.io/npm/v/@attribloom/mcp)](https://www.npmjs.com/package/@attribloom/mcp)\n[![license](https://img.shields.io/npm/l/@attribloom/mcp)](./LICENSE)\n\nModel Context Protocol server for [Attribloom](https://attribloom.com). It lets Claude Code, Claude Desktop, Cursor, and any other MCP client read your tenant's affiliate data and get integration guidance, using a tenant API key.\n\nAttribloom is affiliate attribution and commission tracking for iOS apps (StoreKit 2 and App Store Server Notifications v2) and Shopify stores. Two of the seven tools need no key at all, so an agent can learn how to integrate before you have an account.\n\n## Install\n\n### Claude Code\n\n```bash\nclaude mcp add attribloom --env ATTRIBLOOM_API_KEY=eak_live_... -- npx -y @attribloom/mcp\n```\n\n### Claude Desktop / any client using `mcpServers` JSON\n\n```json\n{\n  \"mcpServers\": {\n    \"attribloom\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@attribloom/mcp\"],\n      \"env\": {\n        \"ATTRIBLOOM_API_KEY\": \"eak_live_...\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n\nSettings, then MCP, then Add new server:\n\n- **Name:** `attribloom`\n- **Type:** `command`\n- **Command:** `env ATTRIBLOOM_API_KEY=eak_live_... npx -y @attribloom/mcp`\n\n### HTTP transport (self-hosted)\n\n```bash\nATTRIBLOOM_API_KEY=eak_live_... npx -y @attribloom/mcp --http\n```\n\nServes Streamable HTTP at `http://127.0.0.1:3000/mcp`. Set `PORT` and `HOST` to override.\n\nGet a key from the Attribloom dashboard: Settings, then API keys. Keys are shown once and are scoped read-only.\n\n## Tools\n\n| Tool | Scope required | Description |\n| --- | --- | --- |\n| `get_started_guidance` | none | Public onboarding steps |\n| `connect_store_guidance` | none | How to connect Shopify or an iOS app |\n| `whoami` | any key | Verify the key and show tenant plus scopes |\n| `list_campaigns` | `read:campaigns` | List campaigns and commission rules |\n| `campaign_readout` | `read:conversions` + `read:commissions` | Conversions and matured commission summary |\n| `list_payouts` | `read:payouts` | List payouts |\n| `payout_eligibility` | `read:payouts` | Per-affiliate available balance vs threshold |\n\nMoney mutations (approving an affiliate, creating a campaign, approving a payout) stay in the Attribloom dashboard and are intentionally not exposed here. This server is read-only by design.\n\nEvery figure returned comes from the real ledger. There are no estimated or projected numbers.\n\n## Environment variables\n\n| Variable | Required | Default | Description |\n| --- | --- | --- | --- |\n| `ATTRIBLOOM_API_KEY` | for data tools | none | Tenant API key from Dashboard, Settings, API keys |\n| `ATTRIBLOOM_BASE_URL` | no | `https://api.attribloom.com` | Management API base URL |\n| `PORT` | no | `3000` | HTTP transport port |\n| `HOST` | no | `127.0.0.1` | HTTP transport host |\n\nWithout a key the server still starts and the two guidance tools work. The data tools return a clear \"API key required\" message rather than failing silently.\n\n## Scope table\n\n| Scope | Tools |\n| --- | --- |\n| `read:campaigns` | `list_campaigns` |\n| `read:conversions` | `campaign_readout` |\n| `read:commissions` | `campaign_readout` |\n| `read:payouts` | `list_payouts`, `payout_eligibility` |\n\n## Example session\n\n```text\nUser: connect my Attribloom account\nwhoami: Tenant: Acme Corp (tenant-123), scopes: read:campaigns, read:conversions, read:commissions, read:payouts\n\nUser: what campaigns do I have?\nlist_campaigns: Summer Launch, Web Purchase funnel\n\nUser: how is it performing?\ncampaign_readout: 42 conversions, $1,240 USD matured commission\n\nUser: who can be paid out?\npayout_eligibility: 3 affiliates above threshold\n```\n\n## CLI\n\n```bash\nattribloom-mcp             # stdio transport (default; what MCP clients spawn)\nattribloom-mcp --http      # Streamable HTTP transport\nattribloom-mcp --version\nattribloom-mcp --help\n```\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm test\n```\n\n## Related\n\n- [AttribloomKit](https://github.com/attribloom/AttribloomKit): the Swift package for StoreKit 2 attribution in iOS apps\n- [attribloom-examples](https://github.com/new-usemame/attribloom-examples): signed postback, Shopify ref preservation, and StoreKit bind examples\n- [Agent onboarding guide](https://attribloom.com/agents/ios-affiliate-attribution): zero-auth integration steps written for coding agents\n- [OpenAPI spec](https://api.attribloom.com/openapi.json)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}