{"_id":"@banana-peel/mcp","name":"@banana-peel/mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.1":{"name":"@banana-peel/mcp","version":"0.1.1","description":"Official Banana Peel MCP server — browser tasks via create/poll/submit_input tools","type":"module","license":"MIT","bin":{"bananapeel-mcp":"dist/index.js"},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","dev":"tsx src/index.ts","prepublishOnly":"npm run build"},"publishConfig":{"access":"public"},"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.30.0","zod":"^4.4.3"},"devDependencies":{"@types/node":"^20","tsx":"^4.23.1","typescript":"^5"},"keywords":["mcp","model-context-protocol","bananapeel","browser-agent","cursor","claude"],"homepage":"https://bananapeel.com/docs/mcp","bugs":{"url":"https://bananapeel.com/docs/mcp"},"_id":"@banana-peel/mcp@0.1.1","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-vX1AyeD1H5VIg+fvC8kCB2cX16MHqp3Uj60bvxOU29JAumIQ9wMppoWXGxc7tjRz6yPYxNKmY1be4yGJqEYbJA==","shasum":"0918b70090c097fe13ecb2d8b010861c9614369a","tarball":"https://registry.npmjs.org/@banana-peel/mcp/-/mcp-0.1.1.tgz","fileCount":8,"unpackedSize":25659,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCqZ7k4m0mnpaKfZ9uU8Bpz0zoS3044/UsaYwAIKnSrzwIgTIRYbVAYbgWgLw/tpS0SjaRLMm1yNAzBBZVaaTmaFu0="}]},"_npmUser":{"name":"banana-peel","email":"yg@deck.co"},"directories":{},"maintainers":[{"name":"banana-peel","email":"yg@deck.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.1.1_1786715774763_0.7184505907886107"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-14T13:56:14.566Z","0.1.1":"2026-08-14T13:56:14.897Z","modified":"2026-08-14T13:56:15.139Z"},"maintainers":[{"name":"banana-peel","email":"yg@deck.co"}],"description":"Official Banana Peel MCP server — browser tasks via create/poll/submit_input tools","homepage":"https://bananapeel.com/docs/mcp","keywords":["mcp","model-context-protocol","bananapeel","browser-agent","cursor","claude"],"bugs":{"url":"https://bananapeel.com/docs/mcp"},"license":"MIT","readme":"# @banana-peel/mcp\n\nOfficial [Model Context Protocol](https://modelcontextprotocol.io) server for [Banana Peel](https://bananapeel.com).\n\nCoding agents call Banana Peel as native MCP tools instead of hand-rolling `curl`.\n\nDocs: https://bananapeel.com/docs/mcp\n\n**Vocabulary:** `routing` is what you request; `banana_peel.runner` is the **runner** that executed.\n\n## One-line install\n\n```bash\nnpx -y @banana-peel/mcp\n```\n\nAlso: `npm install -g @banana-peel/mcp` (runs as `bananapeel-mcp`).\n\n### Publish (maintainers)\n\n```bash\n# requires npm login with rights to @banana-peel (and bare bananapeel for the alias)\ncd mcp && npm publish --access public\ncd alias && npm publish --access public   # after @banana-peel/mcp is live\n```\n\n## Auth\n\n```bash\nexport BANANA_PEEL_API_KEY=bp_live_…   # or BANANAPEEL_API_KEY\nexport BANANA_PEEL_BASE=https://bananapeel.com  # optional\n```\n\n## Cursor\n\n`~/.cursor/mcp.json` (or project `.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"bananapeel\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@banana-peel/mcp\"],\n      \"env\": {\n        \"BANANA_PEEL_API_KEY\": \"bp_live_…\"\n      }\n    }\n  }\n}\n```\n\n## Claude Desktop\n\n`claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"bananapeel\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@banana-peel/mcp\"],\n      \"env\": {\n        \"BANANA_PEEL_API_KEY\": \"bp_live_…\"\n      }\n    }\n  }\n}\n```\n\n## Tools\n\n| Tool | API |\n| --- | --- |\n| `create_response` | `POST /api/v1/responses` (optional **Output normalization**: `normalize` + `output_schema`, +$0.10 / run) |\n| `get_response` | `GET /api/v1/responses/:id` (optional poll until terminal / `requires_action`) |\n| `submit_input` | `POST /api/v1/responses/:id/input` (MFA/OTP/text) |\n| `cancel_response` | `POST /api/v1/responses/:id/cancel` (stop an in-flight run) |\n| `list_runs` | `GET /api/v1/runs` |\n| `list_rankings` | `GET /api/v1/rankings` |\n| `list_capabilities` | `GET /api/v1/capabilities` |\n\nTool names and HTTP mapping are defined in `src/tool-catalog.ts` (the MCP server registry).\n\n### Output normalization (+$0.10)\n\nPass `normalize: true` with `output_schema` (JSON Schema or property map) on `create_response` to reshape the runner result after the run. Flat +$0.10 on that run. Schema builder: Console → Normalize (`/normalize`).\n\n## Develop from this repo\n\n```bash\nnpm install\nnpm run build\nnpm start\n# or: npm run dev\n```\n\n## MFA flow\n\n1. `create_response` with `background: true`\n2. `get_response` with `wait: true` until `status: \"requires_action\"`\n3. `submit_input` with `{ \"code\": \"123456\" }` or `{ \"answer\": \"…\" }`\n4. `get_response` with `wait: true` until `completed` / `failed`\n","readmeFilename":"README.md","_rev":"1-6a02af7f7c3bba780cfe38a8028bbc33"}