{"_id":"@askoptimus/mcp","name":"@askoptimus/mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@askoptimus/mcp","version":"0.1.0","description":"Model Context Protocol server for AskOptimus — email verification, lead discovery, sequences, and inbox.","type":"module","bin":{"askoptimus-mcp":"dist/index.js"},"main":"dist/index.js","scripts":{"dev":"tsx watch src/index.ts","build":"tsc","start":"node dist/index.js","typecheck":"tsc --noEmit","smoke":"tsx scripts/smoke-tools.ts","prepublishOnly":"npm run typecheck && npm run build"},"keywords":["mcp","model-context-protocol","askoptimus","email-verification","cold-email"],"author":{"name":"AskOptimus"},"license":"MIT","homepage":"https://askoptimus.com","repository":{"type":"git","url":"git+https://github.com/askoptimus/askoptimus.git","directory":"ask-optimus-mcp"},"bugs":{"url":"https://github.com/askoptimus/askoptimus/issues"},"publishConfig":{"access":"public"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.4","dotenv":"^17.4.0","undici":"^7.2.0","zod":"^4.3.6"},"devDependencies":{"@types/node":"^25.5.2","tsx":"^4.21.0","typescript":"^6.0.2"},"engines":{"node":">=20"},"_id":"@askoptimus/mcp@0.1.0","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-28mnsDhNBcPxZK4FyvTsxSFM8Ue17tI3yrQy7gaFLsv9uHiSQJ+2oXQoEmhbqWtewpVgH/cpZUCk/2emkwqS7Q==","shasum":"e0edbec737520d765cf6cfca9c9960f916a510fa","tarball":"https://registry.npmjs.org/@askoptimus/mcp/-/mcp-0.1.0.tgz","fileCount":37,"unpackedSize":147053,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC1+NXBRMojH9n1dosezMHL/NPZnSOgYD3C0HJ97Jv5gQIgMasSQpcGE0WjNzigWcG8pFZbHIbBUTMzB66s+B6hQAI="}]},"_npmUser":{"name":"askoptimusdotai","email":"developer@askoptimus.ai"},"directories":{},"maintainers":[{"name":"askoptimusdotai","email":"developer@askoptimus.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.1.0_1783078636888_0.6948740651453926"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-03T11:37:16.704Z","0.1.0":"2026-07-03T11:37:17.021Z","modified":"2026-07-03T11:37:17.246Z"},"maintainers":[{"name":"askoptimusdotai","email":"developer@askoptimus.ai"}],"description":"Model Context Protocol server for AskOptimus — email verification, lead discovery, sequences, and inbox.","homepage":"https://askoptimus.com","keywords":["mcp","model-context-protocol","askoptimus","email-verification","cold-email"],"repository":{"type":"git","url":"git+https://github.com/askoptimus/askoptimus.git","directory":"ask-optimus-mcp"},"author":{"name":"AskOptimus"},"bugs":{"url":"https://github.com/askoptimus/askoptimus/issues"},"license":"MIT","readme":"# @askoptimus/mcp\r\n\r\nModel Context Protocol server for [AskOptimus](https://askoptimus.com) — email verification, lead discovery, cold-email sequences, and unified inbox.\r\n\r\nExposes your AskOptimus account as MCP tools, resources, and prompts so any MCP-compatible AI client (Claude Desktop, Cursor, ChatGPT, n8n, etc.) can drive your workflows via natural language.\r\n\r\n## Requirements\r\n\r\n- Node.js 20 or newer\r\n- An AskOptimus API key. Generate one at `https://app.askoptimus.com/settings/api`.\r\n\r\n## Install\r\n\r\n### Local (stdio) — for Claude Desktop, Cursor, etc.\r\n\r\nAdd to your `claude_desktop_config.json` (Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`):\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"askoptimus\": {\r\n      \"command\": \"npx\",\r\n      \"args\": [\"-y\", \"@askoptimus/mcp\"],\r\n      \"env\": {\r\n        \"ASKOPTIMUS_API_KEY\": \"ev_your_key_here\",\r\n        \"ASKOPTIMUS_API_URL\": \"https://api.askoptimus.com\"\r\n      }\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### Remote (HTTP) — for hosted / team use\r\n\r\n```bash\r\nASKOPTIMUS_API_URL=https://api.askoptimus.com \\\r\n  npx @askoptimus/mcp --transport http --port 8787\r\n```\r\n\r\nThen point any Streamable-HTTP-compatible MCP client at `http://your-host:8787/mcp` with header `Authorization: Bearer ev_your_key`.\r\n\r\nThe HTTP transport is **stateless** and requires the API key on every request — each caller uses their own key.\r\n\r\n## Local development\r\n\r\n```bash\r\ncd ask-optimus-mcp\r\nnpm install\r\nnpm run build\r\n\r\n# stdio\r\nASKOPTIMUS_API_KEY=ev_... ASKOPTIMUS_API_URL=http://localhost:4000 node dist/index.js\r\n\r\n# http\r\nnode dist/index.js --transport http --port 8787\r\n```\r\n\r\n## What's inside\r\n\r\n### Tools\r\n\r\n| Group | Tools |\r\n|-------|-------|\r\n| Account | `whoami`, `get_credits` |\r\n| Email intel | `verify_email`, `verify_emails_bulk`, `get_bulk_job`, `list_bulk_jobs`, `find_email`, `search_domain` |\r\n| Discover | `discover_companies`, `discover_people`, `discover_options` |\r\n| Leads | `list_lead_lists`, `create_lead_list`, `update_lead_list`, `delete_lead_list`, `list_leads`, `get_lead`, `create_lead`, `update_lead`, `delete_lead`, `bulk_create_leads` |\r\n| Sequences | `list_sequences`, `get_sequence`, `create_sequence`, `update_sequence`, `delete_sequence`, `duplicate_sequence`, `launch_sequence`, `pause_sequence`, `resume_sequence`, `get_sequence_analytics`, `list_sequence_steps`, `add_sequence_step`, `update_sequence_step`, `delete_sequence_step`, `list_sequence_recipients`, `add_sequence_recipients_manual`, `add_sequence_recipients_from_leads`, `remove_sequence_recipient` |\r\n| Inbox | `list_inbox`, `get_thread`, `list_inbox_labels`, `reply_to_thread`, `update_inbox_message`, `delete_inbox_message` |\r\n| AI writer | `ai_generate_sequence`, `ai_rewrite`, `ai_shorten`, `ai_expand`, `ai_fix_grammar`, `ai_suggest_subjects` |\r\n\r\n### Resources\r\n\r\nBrowsable read-only URIs:\r\n\r\n- `askoptimus://account`\r\n- `askoptimus://credits`\r\n- `askoptimus://lead-lists`\r\n- `askoptimus://leads/{listId}`\r\n- `askoptimus://sequences`\r\n- `askoptimus://sequence/{id}`\r\n- `askoptimus://thread/{id}`\r\n\r\n### Prompts\r\n\r\n- `enrich_and_verify_domain(domain, list_name?)`\r\n- `build_sequence_for_icp(icp, offer, step_count?)`\r\n- `triage_inbox(limit?)`\r\n\r\n## Safety rails\r\n\r\nDestructive and sending tools require an explicit `confirm: true` argument (and `reply_to_thread` also supports `dry_run: true` for previews). Bulk verification and Discover calls emit clear credit costs; the backend returns HTTP 402 if credits are insufficient, which the MCP server surfaces as an actionable error.\r\n\r\n## Environment variables\r\n\r\n| Variable | Default | Notes |\r\n|----------|---------|-------|\r\n| `ASKOPTIMUS_API_KEY` | *(required for stdio)* | Bearer key, prefixed `ev_` |\r\n| `ASKOPTIMUS_API_URL` | `https://api.askoptimus.com` | Override to point at self-hosted / local |\r\n| `ASKOPTIMUS_LOG_LEVEL` | `info` | `debug` / `info` / `warn` / `error` — logs go to stderr |\r\n| `PORT` | `8787` | HTTP transport port |\r\n| `MCP_ALLOWED_ORIGINS` | *(empty = any)* | Comma-separated allow-list for CORS |\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md","_rev":"1-e17e18d4196db3f908b63360196daa8c"}