{"_id":"@verlon-ai/mcp","_rev":"6-5a45a1c80f1466a9cfd33a0a51b0fd3e","name":"@verlon-ai/mcp","dist-tags":{"latest":"0.4.1"},"versions":{"0.2.0":{"name":"@verlon-ai/mcp","version":"0.2.0","keywords":["verlon","ai","llm","mcp","model-context-protocol","claude-code","cursor","cline","agents","agent-integration"],"author":{"name":"Micah Nettey"},"license":"MIT","_id":"@verlon-ai/mcp@0.2.0","maintainers":[{"name":"micah-nettey","email":"micah@uselayer.ai"}],"homepage":"https://docs.verlon.ai","bin":{"verlon-mcp":"dist/index.js"},"dist":{"shasum":"e4f32ac295f324a7b91ab254b61298f141530f37","tarball":"https://registry.npmjs.org/@verlon-ai/mcp/-/mcp-0.2.0.tgz","fileCount":14,"integrity":"sha512-4CH1imzRnsQyIUOELg/Oxw9TXD6/+TUkCfR/11xq2r9embq6J6CUoiR46//qYyEuj8XPQ61DLwrh/rAZucuF4g==","signatures":[{"sig":"MEUCIAiOazfZTYU7QY/pDiEJLiHADZ6o9pqHTMzojVdoJaFXAiEA4jo44tHInTPTqLE/+ekigGeoW3kEicxi5m+Urr1X30k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16188},"main":"./dist/index.js","type":"module","_from":"file:verlon-ai-mcp-0.2.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"ai.verlon/mcp","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","publish:mcp":"command -v mcp-publisher >/dev/null || { echo 'install mcp-publisher: brew install mcp-publisher' >&2; exit 1; } && pnpm clean && pnpm build && mcp-publisher publish"},"_npmUser":{"name":"micah-nettey","email":"micah@uselayer.ai"},"_resolved":"/private/tmp/claude-501/576ecbf4ef919c1ed5bbe36971223000/verlon-ai-mcp-0.2.0.tgz","_integrity":"sha512-4CH1imzRnsQyIUOELg/Oxw9TXD6/+TUkCfR/11xq2r9embq6J6CUoiR46//qYyEuj8XPQ61DLwrh/rAZucuF4g==","_npmVersion":"11.3.0","description":"Model Context Protocol server for Verlon AI. Exposes gates, logs, recommendations, and experiments as MCP tools so coding agents (Claude Code, Cursor, Cline, any MCP-compatible client) can inspect and manage Verlon resources natively. Read-only by default","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^3.25.76","@verlon-ai/admin":"^1.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typescript":"^5.9.3","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.2.0_1780334794799_0.8858266065889822","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@verlon-ai/mcp","version":"0.3.0","keywords":["verlon","ai","llm","mcp","model-context-protocol","claude-code","cursor","cline","agents","agent-integration"],"author":{"name":"Micah Nettey"},"license":"MIT","_id":"@verlon-ai/mcp@0.3.0","maintainers":[{"name":"micah-nettey","email":"micah@uselayer.ai"}],"homepage":"https://docs.verlon.ai","bin":{"verlon-mcp":"dist/index.js"},"dist":{"shasum":"0ae6f274714adee3ad0d61b1a33affa8266103d5","tarball":"https://registry.npmjs.org/@verlon-ai/mcp/-/mcp-0.3.0.tgz","fileCount":26,"integrity":"sha512-gRNCbWYmEBbg9/3HKXdCBeHAZfvn8IeqqWNlXPbGUlgc7T5KZyuo8yVf4N5TxbszTFCT5UWtMopI5ipls/IEeA==","signatures":[{"sig":"MEQCIEYvNwfHM9OJVM27l+ogzsJHI6/YsAS0Xnp/zyT3GisXAiAmPUDAh5shhb89HaZPloWshrU8+V1GUJ79vJXu3XOWeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29788},"main":"./dist/index.js","type":"module","_from":"file:verlon-ai-mcp-0.3.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"mcpName":"ai.verlon/mcp","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","publish:mcp":"command -v mcp-publisher >/dev/null || { echo 'install mcp-publisher: brew install mcp-publisher' >&2; exit 1; } && pnpm clean && pnpm build && mcp-publisher publish"},"_npmUser":{"name":"micah-nettey","email":"micah@uselayer.ai"},"_resolved":"/private/tmp/claude-501/8e499f4ac38f7981a271195e2482275f/verlon-ai-mcp-0.3.0.tgz","_integrity":"sha512-gRNCbWYmEBbg9/3HKXdCBeHAZfvn8IeqqWNlXPbGUlgc7T5KZyuo8yVf4N5TxbszTFCT5UWtMopI5ipls/IEeA==","_npmVersion":"11.3.0","description":"Model Context Protocol server for Verlon AI. Exposes gates, logs, recommendations, and experiments as MCP tools so coding agents (Claude Code, Cursor, Cline, any MCP-compatible client) can inspect and manage Verlon resources natively. Read-only by default","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^3.25.76","@verlon-ai/admin":"^1.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typescript":"^5.9.3","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.0_1780426962820_0.20996799360464968","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@verlon-ai/mcp","version":"0.3.1","keywords":["verlon","ai","llm","mcp","model-context-protocol","claude-code","cursor","cline","agents","agent-integration"],"author":{"name":"Micah Nettey"},"license":"MIT","_id":"@verlon-ai/mcp@0.3.1","maintainers":[{"name":"micah-nettey","email":"micah@uselayer.ai"}],"homepage":"https://docs.verlon.ai","bugs":{"url":"https://github.com/verlon-ai/mcp/issues"},"bin":{"verlon-mcp":"dist/index.js"},"dist":{"shasum":"db159ce862b2c7f660c890c2836b3248d4efbb31","tarball":"https://registry.npmjs.org/@verlon-ai/mcp/-/mcp-0.3.1.tgz","fileCount":27,"integrity":"sha512-ctUwFtZIJ/2ORsMw5mEiuz2ukEI0ObbvEHmU88bhUFpl9YuUIANfIEg/MDlIbQkeJnNlFDDDsf6Xf0+ItgNdOQ==","signatures":[{"sig":"MEUCIQDZ2X4lUwmOvMgwMPdXsZ8/L0TXjiGCzyoesIzrstF1fgIgQSJlDd5DSrIWibpfPSI5+Waf9NHhal/vVCbN2spl8jk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@verlon-ai%2fmcp@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30658},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"fd8b9deb84d7d11e0888b3d5853192ee7dd4d25a","mcpName":"ai.verlon/mcp","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","publish:mcp":"command -v mcp-publisher >/dev/null || { echo 'install mcp-publisher: brew install mcp-publisher' >&2; exit 1; } && npm run clean && npm run build && mcp-publisher publish","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b227bf4-f10f-4926-b769-2deb3911bba3"}},"repository":{"url":"git+https://github.com/verlon-ai/mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Model Context Protocol server for Verlon AI. Exposes gates, logs, recommendations, and experiments as MCP tools so coding agents (Claude Code, Cursor, Cline, any MCP-compatible client) can inspect and manage Verlon resources natively. Read-only by default","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.25.76","@verlon-ai/admin":"^1.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typescript":"^5.9.3","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.1_1783787398003_0.7644502062062868","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@verlon-ai/mcp","version":"0.3.2","keywords":["verlon","ai","llm","mcp","model-context-protocol","claude-code","cursor","cline","agents","agent-integration"],"author":{"name":"Micah Nettey"},"license":"MIT","_id":"@verlon-ai/mcp@0.3.2","maintainers":[{"name":"micah-nettey","email":"micah@uselayer.ai"}],"homepage":"https://verlon.ai","bugs":{"url":"https://github.com/verlon-ai/mcp/issues"},"bin":{"verlon-mcp":"dist/index.js"},"dist":{"shasum":"97e7315b542d1b361dd6637667be894da523ae65","tarball":"https://registry.npmjs.org/@verlon-ai/mcp/-/mcp-0.3.2.tgz","fileCount":27,"integrity":"sha512-QEo/u66i/Bv3mZwpOCl3tp/krfUeMyKn3MsA1V1fWB3lLDfi0obhs71EPf6vybRzjaAzMTFB8p/8uUeyjUpiBQ==","signatures":[{"sig":"MEUCIDbHxNNPaLVzVhKBVS8cxyuRFIN9xK85+RwUaQC6NdW+AiEApKUmMOtxQEaF8GQZIpmFWRm59vaC74loPk0P1wBplMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@verlon-ai%2fmcp@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30975},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"7b5bc720bb3e8cb6407afe2de9d0da9d19086faa","mcpName":"ai.verlon/mcp","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","publish:mcp":"command -v mcp-publisher >/dev/null || { echo 'install mcp-publisher: brew install mcp-publisher' >&2; exit 1; } && npm run clean && npm run build && mcp-publisher publish","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b227bf4-f10f-4926-b769-2deb3911bba3"}},"repository":{"url":"git+https://github.com/verlon-ai/mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Model Context Protocol server for Verlon AI. Exposes gates, logs, recommendations, and experiments as MCP tools so coding agents (Claude Code, Cursor, Cline, any MCP-compatible client) can inspect and manage Verlon resources natively. Read-only by default","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.25.76","@verlon-ai/admin":"^1.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typescript":"^5.9.3","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.3.2_1784329470619_0.534686749663156","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@verlon-ai/mcp","version":"0.4.0","keywords":["verlon","ai","llm","mcp","model-context-protocol","claude-code","cursor","cline","agents","agent-integration"],"author":{"name":"Micah Nettey"},"license":"MIT","_id":"@verlon-ai/mcp@0.4.0","maintainers":[{"name":"micah-nettey","email":"micah@uselayer.ai"}],"homepage":"https://verlon.ai","bugs":{"url":"https://github.com/verlon-ai/mcp/issues"},"bin":{"verlon-mcp":"dist/index.js"},"dist":{"shasum":"c9f8bcdae3b967907d60e00fb6f3c678a324e3b0","tarball":"https://registry.npmjs.org/@verlon-ai/mcp/-/mcp-0.4.0.tgz","fileCount":33,"integrity":"sha512-C9q+BTeGreLdFXHU+oK4EqjEDHUa6nOYUtgV3fBIPKA9MV7toFWZAsF9WZfCj1iareu1RYOYp6qaMc8GHMQ/JQ==","signatures":[{"sig":"MEUCIAPWmuHJPvCo8G+6565obYD9nagFE0Z1dsTXvg/oeYJgAiEA0ApTIQerTvhIqDwHElLuxkaac5K0rdGDh06zixK6JYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@verlon-ai%2fmcp@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":39355},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"4750556aa9686563ce0055b8f91945059a13aab9","mcpName":"ai.verlon/mcp","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest","type-check":"tsc --noEmit","publish:mcp":"command -v mcp-publisher >/dev/null || { echo 'install mcp-publisher: brew install mcp-publisher' >&2; exit 1; } && npm run clean && npm run build && mcp-publisher publish","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b227bf4-f10f-4926-b769-2deb3911bba3"}},"repository":{"url":"git+https://github.com/verlon-ai/mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"Model Context Protocol server for Verlon AI. Exposes gates, logs, recommendations, and experiments as MCP tools so coding agents (Claude Code, Cursor, Cline, any MCP-compatible client) can inspect and manage Verlon resources natively. Read-only by default","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.25.76","@verlon-ai/admin":"^1.2.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.5","typescript":"^5.9.3","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.4.0_1785083802540_0.3321209374713163","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@verlon-ai/mcp","version":"0.4.1","mcpName":"ai.verlon/mcp","type":"module","description":"Model Context Protocol server for Verlon AI. Exposes gates, logs, recommendations, and experiments as MCP tools so coding agents (Claude Code, Cursor, Cline, any MCP-compatible client) can inspect and manage Verlon resources natively. Read-only by default","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/verlon-ai/mcp.git"},"bugs":{"url":"https://github.com/verlon-ai/mcp/issues"},"main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"verlon-mcp":"dist/index.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc","dev":"tsc --watch","clean":"rm -rf dist","test":"vitest run","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"npm run clean && npm run build","publish:mcp":"command -v mcp-publisher >/dev/null || { echo 'install mcp-publisher: brew install mcp-publisher' >&2; exit 1; } && npm run clean && npm run build && mcp-publisher publish"},"keywords":["verlon","ai","llm","mcp","model-context-protocol","claude-code","cursor","cline","agents","agent-integration"],"author":{"name":"Micah Nettey"},"license":"MIT","homepage":"https://verlon.ai","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","@verlon-ai/admin":"^1.2.0","zod":"^3.25.76"},"devDependencies":{"@types/node":"^20.10.0","typescript":"^5.9.3","vitest":"^4.1.5"},"gitHead":"15aaf0a025ac35db63ad45f613a78be4d3fd8617","_id":"@verlon-ai/mcp@0.4.1","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-K7+WHfrkbM8ElesvR14vMpKJ0tkawXyRatmdy5vubPZv3OGiTs56NLnrhEiHjekTAOKcFOrwF0wnou4u50aEmQ==","shasum":"3a1ca8ecdbabb888e49fc002cdb73474e92be2ca","tarball":"https://registry.npmjs.org/@verlon-ai/mcp/-/mcp-0.4.1.tgz","fileCount":33,"unpackedSize":40602,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@verlon-ai%2fmcp@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCj4Wex303DUZegUgqJlhBI3C8qx1S4irV+hpqB+rimigIhAOXwnnpfCeWVDPyCDwtpaf1VgkFGVNqTC7hr8qzJCB0N"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3b227bf4-f10f-4926-b769-2deb3911bba3"}},"directories":{},"maintainers":[{"name":"micah-nettey","email":"micah@uselayer.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.4.1_1789275885370_0.5087615912370047"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-01T17:26:34.565Z","modified":"2026-09-13T05:04:45.797Z","0.2.0":"2026-06-01T17:26:34.948Z","0.3.0":"2026-06-02T19:02:42.980Z","0.3.1":"2026-07-11T16:29:58.163Z","0.3.2":"2026-07-17T23:04:30.753Z","0.4.0":"2026-07-26T16:36:42.680Z","0.4.1":"2026-09-13T05:04:45.501Z"},"bugs":{"url":"https://github.com/verlon-ai/mcp/issues"},"author":{"name":"Micah Nettey"},"license":"MIT","homepage":"https://verlon.ai","keywords":["verlon","ai","llm","mcp","model-context-protocol","claude-code","cursor","cline","agents","agent-integration"],"repository":{"type":"git","url":"git+https://github.com/verlon-ai/mcp.git"},"description":"Model Context Protocol server for Verlon AI. Exposes gates, logs, recommendations, and experiments as MCP tools so coding agents (Claude Code, Cursor, Cline, any MCP-compatible client) can inspect and manage Verlon resources natively. Read-only by default","maintainers":[{"name":"micah-nettey","email":"micah@uselayer.ai"}],"readme":"# @verlon-ai/mcp\n\n[![npm version](https://img.shields.io/npm/v/%40verlon-ai%2Fmcp)](https://www.npmjs.com/package/@verlon-ai/mcp)\n[![license](https://img.shields.io/npm/l/%40verlon-ai%2Fmcp)](./LICENSE)\n[![CI](https://github.com/verlon-ai/mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/verlon-ai/mcp/actions/workflows/ci.yml)\n\nModel Context Protocol server for [Verlon AI](https://verlon.ai). Exposes your Verlon resources (gates, logs, recommendations, experiments) as MCP tools so coding agents — Claude Code, Cursor, Cline, any MCP-compatible client — can inspect and manage your AI infrastructure natively.\n\n**Status:** 0.4.0 — listed in the [MCP Registry](https://registry.modelcontextprotocol.io/) as `ai.verlon/mcp`. Ships 6 read-only tools (`list_gates`, `get_gate`, `list_logs`, `get_recommendations`, `list_experiments`, `list_models`) plus one write tool, `switch_model`, registered only with `--enable-writes`. The broader write surface (`create_gate`, `update_gate`, `run_chat`, `start_experiment`) lands in a future release behind the same flag.\n\n## Install\n\nYou don't install it directly. Your MCP client (Claude Code, Cursor, etc.) spawns it as a subprocess via `npx`. Add the snippet below to your client's MCP config.\n\n### Claude Code\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or the equivalent on your OS:\n\n```json\n{\n  \"mcpServers\": {\n    \"verlon\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@verlon-ai/mcp\"],\n      \"env\": {\n        \"VERLON_API_KEY\": \"sk-vrln-...\"\n      }\n    }\n  }\n}\n```\n\nThen restart Claude Code. The `verlon` server should appear in the tools list, and Claude can call `verlon:list_gates` against your account.\n\n### Cursor\n\nAdd to your Cursor MCP config (Settings → Features → MCP Servers):\n\n```json\n{\n  \"mcpServers\": {\n    \"verlon\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@verlon-ai/mcp\"],\n      \"env\": {\n        \"VERLON_API_KEY\": \"sk-vrln-...\"\n      }\n    }\n  }\n}\n```\n\n### Any other MCP-compatible client\n\nThe server speaks MCP over stdio. Spawn `npx -y @verlon-ai/mcp` with `VERLON_API_KEY` in the subprocess environment.\n\n## Tools\n\nThe default tool set is **read-only** — see [Security note](#security-note) for the rationale. Write tools register only when the server starts with `--enable-writes`.\n\n| Tool | Inputs | What it returns |\n|---|---|---|\n| `list_gates` | _none_ | Every gate in the account — id, name, description, model, taskType, taskSubtype, createdAt |\n| `get_gate` | `gateId` (UUID) | Full gate config — model, fallback chain, task type, spending limits, sub-gates, orchestration |\n| `list_logs` | `gate?`, `since?` (ISO 8601), `success?`, `limit?` (1-100, default 20) | Recent request logs — timestamp, gate, model, cost, latency, success/failure |\n| `get_recommendations` | `gateId` (UUID) | Cortex intelligence report — themes, drift detection, optimization recommendations. `{ report: null }` when no run has been produced yet |\n| `list_experiments` | `gateId?`, `status?`, `projectId?` | Experiments (shadow + split) — id, name, status, test type, variants, goal metric, configuration |\n| `list_models` | `provider?` (`openai`, `anthropic`, `google`, `mistral`, …) | Chat models a gate can route to, with live pricing (USD per 1M tokens) and capability scores |\n\n### Write tools (`--enable-writes` only)\n\n| Tool | Inputs | What it does |\n|---|---|---|\n| `switch_model` | `model` (id from `list_models`), `gateId?` | Switches which model a coding gate routes to. Takes effect on the next turn of any running session, no restart. With `gateId` omitted, targets the account's Claude Code connector gate. Idempotent; the change is one reversible field. |\n\n## Configuration\n\n| Env var | Required | Default | Notes |\n|---|---|---|---|\n| `VERLON_API_KEY` | Yes | — | Your Verlon API key (`sk-vrln-...`). |\n| `VERLON_BASE_URL` | No | `https://api.verlon.ai` | Override for self-hosted Verlon. |\n\n## CLI flags\n\n| Flag | Purpose |\n|---|---|\n| `--enable-writes` | Register write-capable tools (`switch_model` today). Default is read-only — a misaligned agent can't accidentally destroy resources. |\n| `--help`, `-h` | Print usage. |\n\n## Security note\n\nRead-only by default is a deliberate choice. The MCP client (Claude Code, Cursor, etc.) sees this server's tools and may invoke them autonomously when a user's request makes them seem relevant. A read-only default means even a misaligned agent can only inspect your account, not modify it. Opt in to write tools (`--enable-writes`) only after you understand the implications. The only write tool today is `switch_model`, deliberately the narrowest possible first write: one reversible field on one gate. Creating, updating, or deleting resources is not yet exposed.\n\n## Development\n\n```bash\nnpm install\nnpm test          # vitest\nnpm run build     # tsc → dist/\n```\n\n## Publishing (maintainers)\n\nThe package is dual-published: to npm as `@verlon-ai/mcp` (automated, with provenance), and to the MCP Registry as `ai.verlon/mcp` (manual). The registry validates that the npm version exists before accepting a publish, so **npm always goes first**.\n\n### Per-release flow\n\nBump versions in **lockstep** across three files — CI fails on drift:\n\n| File | Field |\n|---|---|\n| `package.json` | `version` |\n| `server.json` | `version` AND `packages[0].version` |\n| `src/server.ts` | `VERLON_MCP_VERSION` constant |\n\nThen:\n\n```bash\n# 1. Merge the bump to main (CI enforces the lockstep), then tag:\ngit tag v0.4.1 && git push origin v0.4.1\n# The publish workflow runs `npm publish --provenance` automatically.\n\n# Wait ~30s for npm CDN; verify:\nnpm view @verlon-ai/mcp version   # should print the new version\n\n# 2. MCP Registry publish (manual — needs mcp-publisher + DNS-verified ai.verlon namespace)\nnpm run publish:mcp\n```\n\n### One-time setup (registry publishing)\n\n```bash\n# Install the MCP Registry publisher (NOT npm — it's a prebuilt binary)\nbrew install mcp-publisher\n\n# DNS-verify the verlon.ai domain (required to publish under the ai.verlon namespace)\nmcp-publisher login --help   # follow the DNS verification flow it prints\n# Add the TXT record on verlon.ai; verify with `dig TXT verlon.ai +short`\n```\n\n### Verification\n\n```bash\n# All three versions match?\nnpm view @verlon-ai/mcp version\njq -r .packages[0].version server.json\ngrep VERLON_MCP_VERSION src/server.ts\n\n# Registry listing live?\ncurl 'https://registry.modelcontextprotocol.io/v0/servers?search=verlon' | jq\n\n# End-to-end smoke against the published artifact\nVERLON_API_KEY=sk-vrln-... npx @modelcontextprotocol/inspector npx -y @verlon-ai/mcp\n```\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}