{"_id":"@optimalai/optibot-mcp","_rev":"4-7372d058cdba7c4ddb2626b6e6cfcf92","name":"@optimalai/optibot-mcp","dist-tags":{"latest":"1.4.1"},"versions":{"1.1.0":{"name":"@optimalai/optibot-mcp","version":"1.1.0","keywords":["mcp","model-context-protocol","ai","code-review","optibot","pull-request","pr-review","automated-review","code-quality","claude","cursor","developer-tools","javascript","typescript"],"author":{"url":"https://getoptimal.ai","name":"Optimal AI, Inc.","email":"hello@getoptimal.ai"},"license":"MIT","_id":"@optimalai/optibot-mcp@1.1.0","maintainers":[{"name":"syedahmedz","email":"syed.a.ahmedz@gmail.com"},{"name":"edmon_optimal_ai","email":"edmon@getoptimal.ai"}],"homepage":"https://github.com/Optimal-AI/optibot-mcp#readme","bugs":{"url":"https://github.com/Optimal-AI/optibot-mcp/issues","email":"support@getoptimal.ai"},"bin":{"optibot-mcp":"dist/index.js"},"dist":{"shasum":"05a6341786e6e493b9bfea9cc32f228e7d66bed5","tarball":"https://registry.npmjs.org/@optimalai/optibot-mcp/-/optibot-mcp-1.1.0.tgz","fileCount":25,"integrity":"sha512-fcxYd2M1zudr0KjL4gh7spsTzwHxt6qg65IYKJcuZ8yh/P6UENC0z6bPzsNgN6GEKiTMZsBa8+V+/1XM0Z7w9w==","signatures":[{"sig":"MEUCIHhJInVAjPH0ZrArCIjsuz2t49zZ+TnfQG1MjmrXo6c2AiEAoUuXrjNM6IDgQsAfeQsIlqmqZRdRWiH52Szbeite8Ms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57513},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"fcd5027f93188783ff1dd45258f73b36a6b1b491","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"rm -rf dist && npm run build && npm test"},"_npmUser":{"name":"edmon_optimal_ai","email":"edmon@getoptimal.ai"},"repository":{"url":"git+https://github.com/Optimal-AI/optibot-mcp.git","type":"git"},"_npmVersion":"11.8.0","description":"MCP server for AI code reviews powered by Optibot","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.24.0","open":"^9.1.0","socket.io-client":"^4.8.3","@modelcontextprotocol/sdk":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.5.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/optibot-mcp_1.1.0_1773843701283_0.1995390132963859","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@optimalai/optibot-mcp","version":"1.3.1","keywords":["mcp","model-context-protocol","ai","code-review","optibot","pull-request","pr-review","automated-review","code-quality","claude","cursor","developer-tools","javascript","typescript"],"author":{"url":"https://getoptimal.ai","name":"Optimal AI, Inc.","email":"hello@getoptimal.ai"},"license":"MIT","_id":"@optimalai/optibot-mcp@1.3.1","maintainers":[{"name":"syedahmedz","email":"syed.a.ahmedz@gmail.com"},{"name":"edmon_optimal_ai","email":"edmon@getoptimal.ai"}],"homepage":"https://github.com/Optimal-AI/optibot-mcp#readme","bugs":{"url":"https://github.com/Optimal-AI/optibot-mcp/issues","email":"support@getoptimal.ai"},"bin":{"optibot-mcp":"dist/index.js"},"dist":{"shasum":"4a3f6139d51d7670034f9407438cb6f529a6810e","tarball":"https://registry.npmjs.org/@optimalai/optibot-mcp/-/optibot-mcp-1.3.1.tgz","fileCount":45,"integrity":"sha512-rq3Pe8ABitN7khRWluuuVX55dxbXBu4+3cYD7mqyBx6PiKqxWdPfzgXXjWCaWxCcJ0nmtDdWn/brrr3qVWGZ8g==","signatures":[{"sig":"MEQCIDl6fsD0rnHSTUtmKwrtpWRQ341/vqcMP9Z2p8iRyRjZAiBvlxnJVErA3XXxsZGfHXgsgzZE4rc1a5Mx9nTVf5iMMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133283},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"67131a0829f3bf111d59131c18140524063c63c1","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"rm -rf dist && npm run build && npm test"},"_npmUser":{"name":"edmon_optimal_ai","email":"edmon@getoptimal.ai"},"repository":{"url":"git+https://github.com/Optimal-AI/optibot-mcp.git","type":"git"},"_npmVersion":"11.8.0","description":"MCP server for AI code reviews powered by Optibot","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^3.24.0","open":"^9.1.0","socket.io-client":"^4.8.3","@modelcontextprotocol/sdk":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^5.5.0","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/optibot-mcp_1.3.1_1778232793377_0.905081530595194","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@optimalai/optibot-mcp","version":"1.4.0","keywords":["mcp","model-context-protocol","ai","code-review","optibot","pull-request","pr-review","automated-review","code-quality","claude","cursor","developer-tools","javascript","typescript"],"author":{"url":"https://getoptimal.ai","name":"Optimal AI, Inc.","email":"hello@getoptimal.ai"},"license":"MIT","_id":"@optimalai/optibot-mcp@1.4.0","maintainers":[{"name":"syedahmedz","email":"syed.a.ahmedz@gmail.com"},{"name":"edmon_optimal_ai","email":"edmon@getoptimal.ai"}],"homepage":"https://github.com/Optimal-AI/optibot-mcp#readme","bugs":{"url":"https://github.com/Optimal-AI/optibot-mcp/issues","email":"support@getoptimal.ai"},"bin":{"optibot-mcp":"dist/index.js"},"dist":{"shasum":"a27fd10c20f0d6ea285e8472e0eb14bb3d26ed1c","tarball":"https://registry.npmjs.org/@optimalai/optibot-mcp/-/optibot-mcp-1.4.0.tgz","fileCount":49,"integrity":"sha512-Y+izdVkHiCuLgxb+1DooP+6fjgUezMDWAIwe7/hEw2sopfYupjtiok2/VEKjEKUyuI4plB2U1CJoVslNzlrEZQ==","signatures":[{"sig":"MEQCID9jn0dwnEJJHzehllXoKrROHpeQce/wpZq5CGBgE3u2AiALPyeuNgR/yAPl57UJTV3dpAXdgNODeb1BkdUYYN7QdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142518},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"gitHead":"23f404df8a31a32f9cd486ee90404001aa15e389","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","start":"node dist/index.js","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"rm -rf dist && npm run build && npm test"},"_npmUser":{"name":"edmon_optimal_ai","email":"edmon@getoptimal.ai"},"repository":{"url":"git+https://github.com/Optimal-AI/optibot-mcp.git","type":"git"},"_npmVersion":"11.8.0","description":"MCP server for AI code reviews powered by Optibot","directories":{},"_nodeVersion":"25.5.0","dependencies":{"zod":"^4.4.3","open":"^11.0.0","socket.io-client":"^4.8.3","@modelcontextprotocol/sdk":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","typescript":"^6.0.3","@types/node":"^25.6.2","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/optibot-mcp_1.4.0_1779373556107_0.798071971408645","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@optimalai/optibot-mcp","version":"1.4.1","mcpName":"ai.getoptimal/optibot","description":"MCP server for AI code reviews powered by Optibot","type":"module","main":"./dist/index.js","bin":{"optibot-mcp":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsc --watch","start":"node dist/index.js","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"rm -rf dist && npm run build && npm test"},"dependencies":{"@modelcontextprotocol/sdk":"^1.7.0","open":"^11.0.0","socket.io-client":"^4.8.3","zod":"^4.4.3"},"devDependencies":{"@types/node":"^25.6.2","@vitest/coverage-v8":"^4.0.18","typescript":"^6.0.3","vitest":"^4.0.18"},"engines":{"node":">=22.0.0"},"keywords":["mcp","model-context-protocol","ai","code-review","optibot","pull-request","pr-review","automated-review","code-quality","claude","cursor","developer-tools","javascript","typescript"],"license":"MIT","author":{"name":"Optimal AI, Inc.","email":"hello@getoptimal.ai","url":"https://getoptimal.ai"},"repository":{"type":"git","url":"git+https://github.com/Optimal-AI/optibot-mcp.git"},"homepage":"https://github.com/Optimal-AI/optibot-mcp#readme","bugs":{"url":"https://github.com/Optimal-AI/optibot-mcp/issues","email":"support@getoptimal.ai"},"gitHead":"3d1c129f4bdcf536f1b57bfaa8795c547ced18e8","types":"./dist/index.d.ts","_id":"@optimalai/optibot-mcp@1.4.1","_nodeVersion":"25.5.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-IwrUsDBu/JHeDU3PrxRbgpA+dMigVEsbYYoAsIxcZZF1pCqSmyLLM3bOj/6ZXfWHU/8726ThSS/gbd/7CH5f3g==","shasum":"97515100a9fe46a9e854575856a75c504e123e7a","tarball":"https://registry.npmjs.org/@optimalai/optibot-mcp/-/optibot-mcp-1.4.1.tgz","fileCount":49,"unpackedSize":142556,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDu4a/amFvpUREPEfjZSjxV2AvKwk9klJFASCc1ejAPXQIhAP2M9Z0aWdjsqbMjBWExmFifCbwOzGfUs6Ok+xAdoL19"}]},"_npmUser":{"name":"edmon_optimal_ai","email":"edmon@getoptimal.ai"},"directories":{},"maintainers":[{"name":"syedahmedz","email":"syed.a.ahmedz@gmail.com"},{"name":"edmon_optimal_ai","email":"edmon@getoptimal.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/optibot-mcp_1.4.1_1780587217150_0.8745334258246868"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-18T14:21:41.202Z","modified":"2026-06-04T15:33:37.449Z","1.1.0":"2026-03-18T14:21:41.431Z","1.3.1":"2026-05-08T09:33:13.522Z","1.4.0":"2026-05-21T14:25:56.259Z","1.4.1":"2026-06-04T15:33:37.312Z"},"bugs":{"url":"https://github.com/Optimal-AI/optibot-mcp/issues","email":"support@getoptimal.ai"},"author":{"name":"Optimal AI, Inc.","email":"hello@getoptimal.ai","url":"https://getoptimal.ai"},"license":"MIT","homepage":"https://github.com/Optimal-AI/optibot-mcp#readme","keywords":["mcp","model-context-protocol","ai","code-review","optibot","pull-request","pr-review","automated-review","code-quality","claude","cursor","developer-tools","javascript","typescript"],"repository":{"type":"git","url":"git+https://github.com/Optimal-AI/optibot-mcp.git"},"description":"MCP server for AI code reviews powered by Optibot","maintainers":[{"name":"syedahmedz","email":"syed.a.ahmedz@gmail.com"},{"name":"edmon_optimal_ai","email":"edmon@getoptimal.ai"}],"readme":"# Optibot MCP Server — AI Code Reviews for Any Editor\n\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![npm](https://img.shields.io/npm/v/@optimalai/optibot-mcp)](https://www.npmjs.com/package/@optimalai/optibot-mcp)\n[![CI](https://github.com/Optimal-AI/optibot-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Optimal-AI/optibot-mcp/actions/workflows/ci.yml)\n\nAn [MCP](https://modelcontextprotocol.io/) server that brings [Optibot](https://getoptimal.ai/?utm_source=npm&utm_medium=readme&utm_campaign=optibot-mcp) AI-powered code reviews to Claude Desktop, Cursor, Windsurf, Claude Code, and any MCP-compatible client.\n\nReview local changes, compare branches, and get actionable feedback — all from your AI assistant.\n\n> **What is MCP?**\n> The [Model Context Protocol](https://modelcontextprotocol.io/) is an open standard that lets AI assistants use external tools and data sources. Once you add this server, your assistant can run Optibot reviews on your behalf — just ask in natural language.\n\n<!-- ## Demo -->\n<!-- ![Optibot reviewing code in an editor](assets/demo.gif) -->\n\n## What It Does\n\n- **Review your code** — say \"review my changes\" and get an AI code review instantly\n- **Compare branches** — \"review my branch against main\" triggers a full branch diff review\n- **Review patch files** — point it at any `.patch` or `.diff` file\n- **Run AI security scans** — trigger token-metered scans on any repo in your org and get the full markdown report back\n- **Manage organizations** — switch the active org for multi-org accounts\n- **Manage API keys** — create, list, and delete keys for CI/CD automation\n- **Detect merge conflicts** — warns you about conflicts before you review\n\n## Install\n\n```bash\nnpm install -g @optimalai/optibot-mcp\n```\n\n## Setup\n\n### Claude Desktop\n\nAdd to your Claude Desktop configuration:\n\n- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"optibot\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@optimalai/optibot-mcp\"],\n      \"env\": {\n        \"OPTIBOT_API_KEY\": \"optk_your_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to your Cursor MCP configuration:\n\n- **Global (all projects):** `~/.cursor/mcp.json`\n- **Project-level:** `.cursor/mcp.json` in your project root\n\n```json\n{\n  \"mcpServers\": {\n    \"optibot\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@optimalai/optibot-mcp\"],\n      \"env\": {\n        \"OPTIBOT_API_KEY\": \"optk_your_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Windsurf\n\nAdd to your Windsurf MCP configuration (`~/.codeium/windsurf/mcp_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"optibot\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@optimalai/optibot-mcp\"],\n      \"env\": {\n        \"OPTIBOT_API_KEY\": \"optk_your_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add optibot -e OPTIBOT_API_KEY=optk_your_key_here -- npx -y @optimalai/optibot-mcp\n```\n\nThe `-e` flag stores the API key in the MCP server config so it is always available when Claude Code spawns the server, regardless of your shell environment.\n\n## Authentication\n\n### Option 1: API Key (Recommended for MCP)\n\nSet the `OPTIBOT_API_KEY` environment variable in your MCP client configuration. You can generate a key from the [Optibot dashboard](https://agents.getoptimal.ai) or using the CLI:\n\n```bash\nnpx @optimalai/optibot apikey create my-mcp-key\n```\n\n### Option 2: Browser Login\n\nUse the `login` tool to authenticate via browser. This saves credentials to `~/.optibot/config.json` (90-day token).\n\n## Usage\n\nOnce configured, just ask your AI assistant naturally:\n\n| What you say | What happens |\n|---|---|\n| \"review my changes\" | Reviews uncommitted local changes |\n| \"review my branch against main\" | Compares current branch against main |\n| \"review this diff file\" | Reviews an arbitrary patch file |\n| \"what's my Optibot status?\" | Shows auth method, profile, active org, and daily quota |\n| \"which Optibot organizations do I have?\" | Lists all orgs (active marked with `*`) |\n| \"switch Optibot to the Acme org\" | Rescopes your token to that org |\n| \"run a security scan on org/repo-a\" | Triggers an AI security scan and returns the full report |\n| \"show me recent security scans\" | Lists recent scans with cost and severity |\n| \"how much have we spent on scans this month?\" | Shows current-month token usage and cost |\n| \"create an API key for CI\" | Creates and displays a new API key |\n| \"list my API keys\" | Lists all API keys with metadata |\n\n## Available Tools\n\n### Review\n\n| Tool | Description |\n|------|-------------|\n| `review_local_changes` | Review uncommitted local changes (git diff HEAD) |\n| `review_branch` | Review changes against a target branch (auto-detects or specify) |\n| `review_diff_file` | Review an arbitrary diff/patch file |\n\n### Auth & status\n\n| Tool | Description |\n|------|-------------|\n| `login` | Authenticate via browser OAuth (handles onboarding redirects; refuses inside CI environments) |\n| `logout` | Remove saved credentials |\n| `check_auth` | Check current authentication status |\n| `get_status` | Full status: auth method, active org, daily quota |\n\n### Organizations\n\n| Tool | Description |\n|------|-------------|\n| `list_organizations` | List all organizations you belong to |\n| `get_current_organization` | Show the active organization (read from the JWT claim) |\n| `switch_organization` | Rescope your token to a different org (by id or name) |\n\n### CI/CD setup\n\n| Tool | Description |\n|------|-------------|\n| `setup_ci` | Recommended onboarding for CI/CD — mints a long-lived API key bound to the active organization and returns the export line ready to paste into the user's CI secret store. Refuses inside CI environments. |\n\n### API keys\n\n| Tool | Description |\n|------|-------------|\n| `create_api_key` | Create a new API key (lower-level primitive; prefer `setup_ci` for CI onboarding) |\n| `list_api_keys` | List all API keys |\n| `delete_api_key` | Delete an API key by ID |\n\n> ⚠️ **Heads up:** `create_api_key` and `setup_ci` return the full secret in the tool output — by design, since you have to copy it. That output then lives in your AI host's conversation transcript (Claude Desktop, Cursor, etc.), which may be persisted, synced, or backed up. Copy the key into your CI secret store, then **delete the conversation or rotate the key with `delete_api_key`** if you don't want it lingering in transcript history.\n\n### Security scans\n\n| Tool | Description |\n|------|-------------|\n| `trigger_security_scan` | Start an AI security scan on a repo; blocks until complete (configurable timeout) |\n| `list_security_scans` | Paginated list of recent scans (optionally filtered by repo) |\n| `get_security_scan` | Full markdown report + metadata for a specific scan id |\n| `get_security_usage` | Current-month token usage and cost |\n| `get_security_pricing` | Per-tier pricing and markup multiplier |\n| `list_scannable_repos` | Repositories available to scan in the active org |\n| `get_security_config` | Scheduled-scan configuration |\n| `update_security_config` | Update the scheduled-scan configuration (partial merge) |\n\n## Real-Time Progress\n\nDuring reviews and security scans, the MCP server connects to the Optibot backend via WebSocket and emits real-time progress notifications using MCP logging messages. Your MCP client will receive updates as the operation progresses.\n\n**Reviews:**\n\n1. **started** — Review request accepted\n2. **analyzing_patch** — Parsing and analyzing the diff\n3. **tool_call** — Running analysis tools (with tool name and query details)\n4. **generating_review** — Generating the final review\n5. **completed** — Review finished\n\n**Security scans:**\n\n1. **started** — Scan request accepted\n2. **cloning_repository** — Fetching the repository\n3. **scanning_code** — Running security analysis\n4. **tool_call** — Individual analyzer tool invocations\n5. **budget_update** — Running token + cost ticker\n6. **generating_report** — Producing the final markdown report\n7. **completed** / **failed** — Final status\n\n## CI/CD Integration\n\nFor automated reviews in CI/CD pipelines (GitHub Actions, GitLab CI, etc.), use the **[Optibot CLI](https://www.npmjs.com/package/@optimalai/optibot)** instead. The CLI is purpose-built for non-interactive environments and runs as a standard command-line tool.\n\nThe MCP server is designed to run inside AI assistants (Claude Desktop, Cursor, etc.) — it speaks the MCP stdio protocol and is not intended to be invoked directly in a pipeline.\n\n**To use in CI:**\n\n1. Generate an API key from the [Optibot dashboard](https://agents.getoptimal.ai) or with `create_api_key` tool\n2. Add `OPTIBOT_API_KEY` as a repository secret\n3. Use the CLI in your pipeline:\n\n```yaml\n# GitHub Actions\n- name: Install Optibot CLI\n  run: npm install -g @optimalai/optibot\n- name: Run code review\n  env:\n    OPTIBOT_API_KEY: ${{ secrets.OPTIBOT_API_KEY }}\n  run: optibot review --branch origin/${{ github.base_ref }}\n```\n\nSee the [Optibot CLI README](https://www.npmjs.com/package/@optimalai/optibot) for full CI/CD setup instructions including GitLab CI.\n\n## Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `OPTIBOT_API_KEY` | Your API token (required for automated use) |\n| `OPTIBOT_API_URL` | Custom backend URL (must use `https://`, defaults to `https://agents.getoptimal.ai`) |\n\n## Requirements\n\n- Node.js >= 22\n- Git (for review tools)\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for the full release history. Security disclosures: [SECURITY.md](SECURITY.md).\n\n## Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## Links\n\n- [Optibot Website](https://getoptimal.ai/?utm_source=npm&utm_medium=readme&utm_campaign=optibot-mcp)\n- [Sign Up (Free)](https://agents.getoptimal.ai/signup?utm_source=npm&utm_medium=readme&utm_campaign=optibot-mcp)\n- [Report an Issue](https://github.com/Optimal-AI/optibot-mcp/issues)\n- [Optibot CLI on npm](https://www.npmjs.com/package/@optimalai/optibot)\n- [Optibot Claude Code Plugin](https://github.com/Optimal-AI/optibot-skill)\n- [Twitter / X](https://x.com/optimaldotai)\n- [LinkedIn](https://www.linkedin.com/company/optimaldotai/)\n- [YouTube](https://www.youtube.com/@Optimaldotai)\n- [Contact Us](https://getoptimal.ai/contact?utm_source=npm&utm_medium=readme&utm_campaign=optibot-mcp)\n\n## License\n\nMIT — see [LICENSE](LICENSE) for details.\nCopyright (c) 2026 Optimal AI, Inc.\n","readmeFilename":"README.md"}