npm @verlon-ai/mcpstdioMITupdated 1mo ago
Model Context Protocol server for 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.
What can you do with Verlon AI MCP?
@verlon-ai/mcp
Model Context Protocol server for 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.
Status: 0.3.2 — listed in the MCP Registry as ai.verlon/mcp. Ships 5 read-only tools (list_gates, get_gate, list_logs, get_recommendations, list_experiments). Write tools (create_gate, update_gate, run_chat, start_experiment) gated behind --enable-writes land in a future release.
Install
You 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.
Claude Code
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or the equivalent on your OS:
{
"mcpServers": {
"verlon": {
"command": "npx",
"args": ["-y", "@verlon-ai/mcp"],
"env": {
"VERLON_API_KEY": "sk-vrln-..."
}
}
}
}
Then restart Claude Code. The verlon server should appear in the tools list, and Claude can call verlon:list_gates against your account.
Cursor
Add to your Cursor MCP config (Settings → Features → MCP Servers):
{
"mcpServers": {
"verlon": {
"command": "npx",
"args": ["-y", "@verlon-ai/mcp"],
"env": {
"VERLON_API_KEY": "sk-vrln-..."
}
}
}
}
Any other MCP-compatible client
The server speaks MCP over stdio. Spawn npx -y @verlon-ai/mcp with VERLON_API_KEY in the subprocess environment.
Tools
All v0.3.x tools are read-only — see Security note for the rationale and the planned write-tool opt-in.
| Tool | Inputs | What it returns |
|---|---|---|
list_gates |
none | Every gate in the account — id, name, description, model, taskType, taskSubtype, createdAt |
get_gate |
gateId (UUID) |
Full gate config — model, fallback chain, task type, spending limits, sub-gates, orchestration |
list_logs |
gate?, since? (ISO 8601), success?, limit? (1-100, default 20) |
Recent request logs — timestamp, gate, model, cost, latency, success/failure |
get_recommendations |
gateId (UUID) |
Cortex intelligence report — themes, drift detection, optimization recommendations. { report: null } when no run has been produced yet |
list_experiments |
gateId?, status?, projectId? |
Experiments (shadow + split) — id, name, status, test type, variants, goal metric, configuration |
Configuration
| Env var | Required | Default | Notes |
|---|---|---|---|
VERLON_API_KEY |
Yes | — | Your Verlon API key (sk-vrln-...). |
VERLON_BASE_URL |
No | https://api.verlon.ai |
Override for self-hosted Verlon. |
CLI flags
| Flag | Purpose |
|---|---|
--enable-writes |
Register write-capable tools. Phase 3+ feature. In 0.1.x this flag is accepted but no write tools exist yet. Default is read-only — a misaligned agent can't accidentally destroy resources. |
--help, -h |
Print usage. |
Security note
Read-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, Phase 3+) only after you understand the implications.
Development
npm install
npm test # vitest
npm run build # tsc → dist/
Publishing (maintainers)
The 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.
Per-release flow
Bump versions in lockstep across three files — CI fails on drift:
| File | Field |
|---|---|
package.json |
version |
server.json |
version AND packages[0].version |
src/server.ts |
VERLON_MCP_VERSION constant |
Then:
# 1. Merge the bump to main (CI enforces the lockstep), then tag:
git tag v0.3.1 && git push origin v0.3.1
# The publish workflow runs `npm publish --provenance` automatically.
# Wait ~30s for npm CDN; verify:
npm view @verlon-ai/mcp version # should print the new version
# 2. MCP Registry publish (manual — needs mcp-publisher + DNS-verified ai.verlon namespace)
npm run publish:mcp
One-time setup (registry publishing)
# Install the MCP Registry publisher (NOT npm — it's a prebuilt binary)
brew install mcp-publisher
# DNS-verify the verlon.ai domain (required to publish under the ai.verlon namespace)
mcp-publisher login --help # follow the DNS verification flow it prints
# Add the TXT record on verlon.ai; verify with `dig TXT verlon.ai +short`
Verification
# All three versions match?
npm view @verlon-ai/mcp version
jq -r .packages[0].version server.json
grep VERLON_MCP_VERSION src/server.ts
# Registry listing live?
curl 'https://registry.modelcontextprotocol.io/v0/servers?search=verlon' | jq
# End-to-end smoke against the published artifact
VERLON_API_KEY=sk-vrln-... npx @modelcontextprotocol/inspector npx -y @verlon-ai/mcp
License
MIT — see LICENSE.
Install
Add Verlon AI MCP to your client. Pick the one you use.
claude mcp add mcp -- npx -y @verlon-ai/mcpcodex mcp add mcp -- npx -y @verlon-ai/mcpamp mcp add mcp -- npx -y @verlon-ai/mcp{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@verlon-ai/mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@verlon-ai/mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp","command":"npx","args":["-y","@verlon-ai/mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@verlon-ai/mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@verlon-ai/mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@verlon-ai/mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@verlon-ai/mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"@verlon-ai/mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @verlon-ai/mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
5 tools
Verlon AI MCP exposes 5 tools to a connected agent.
- list_gates
- _none_
- get_gate
- `gateId` (UUID)
- list_logs
- `gate?`, `since?` (ISO 8601), `success?`, `limit?` (1-100, default 20)
- get_recommendations
- `gateId` (UUID)
- list_experiments
- `gateId?`, `status?`, `projectId?`
Score
81 / 100
Excellent
- Documentation25/25
- Maintenance22/25
- Trust16/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 36 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 5 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.4.0Latest | Jul 26, 2026 |
| 0.3.2 | Jul 17, 2026 |
| 0.3.1 | Jul 11, 2026 |
| 0.3.0 | Jun 2, 2026 |
| 0.2.0 | Jun 1, 2026 |