The Vrin MCP server is a thin wrapper around the Vrin API that speaks Model Context Protocol. Any MCP client — Claude Desktop, Claude Code, Cursor, Windsurf, ChatGPT Developer Mode, the OpenAI Agents SDK, custom clients — can drive Vrin through it.Documentation Index
Fetch the complete documentation index at: https://docs.vrin.cloud/llms.txt
Use this file to discover all available pages before exploring further.
If you’re setting up Vrin for an AI coding agent, start at Vrin for AI Agents — it has the copy-paste prompt that orchestrates install + config + ingestion end-to-end.
What the server exposes
| Tool | Purpose |
|---|---|
vrin_query_async | Start a query. Returns a job_id immediately. |
vrin_check_job | Long-poll a running query. Returns completed / working / failed. |
| Resource | Purpose |
|---|---|
vrin://stats | Entity count, fact count, document count for the authenticated user. |
vrin://config | Server version, API key type (standard vs enterprise), connection status. |
Why two tools for one query?
Vrin’s deep reasoning takes 30–120 seconds. A synchronous tool would force the client to hold an open connection that long, which hits most MCP client timeouts. So Vrin splits the call:vrin_query_async(query=...)→ returns ajob_idin milliseconds. The real work runs in a worker Lambda.vrin_check_job(job_id=...)→ long-polls for up to 55 seconds and returns either the final result,working(keep calling), orfailed.
vrin_check_job call. Complex research-depth queries may need 2–3. Do not stop calling vrin_check_job until you see completed or failed. The working response is a signal to call again, not to give up.
Install
vrin-mcp— STDIO transport (for Claude Desktop, Claude Code, Cursor).vrin-mcp-http— HTTP transport (for remote deployment, Docker, ChatGPT Developer Mode).
Set your API key
Configure your MCP client
- Claude Desktop
- Claude Code
- Cursor
- Windsurf / others
File: Restart Claude Desktop. Click the connectors icon —
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).vrin should be listed as connected.Troubleshooting: if vrin_mcp isn’t on $PATH, use the absolute Python path, e.g. /opt/homebrew/bin/python3.Call the tools from code
If you want to drive the MCP server programmatically (for testing, for custom clients, or for CI), use any MCP client library. Here’s a minimal example with the Python MCP SDK:Remote deployment
Run the HTTP server for cases where the MCP client isn’t on the same machine:- Docker
- Docker Compose
- bare metal
VRIN_API_KEY env var baked into the container or a per-request Authorization: Bearer vrin_... header (header wins when both are present).
Environment variables
| Variable | Required | Default | Description |
|---|---|---|---|
VRIN_API_KEY | Yes, unless using per-request auth | — | API key starting with vrin_live_ or vrin_ent_. |
VRIN_HTTP_HOST | No | 0.0.0.0 | HTTP server bind host. |
VRIN_HTTP_PORT | No | 8000 | HTTP server port. |
VRIN_QUERY_TIMEOUT | No | 120 | Per-query timeout in seconds. |
VRIN_WORKER_LAMBDA | No | vrin-mcp-job-worker | Override the worker Lambda name (internal). |
Troubleshooting
vrin does not appear in my MCP client
vrin does not appear in my MCP client
- Confirm
python -m vrin_mcp.serverruns without errors in a terminal withVRIN_API_KEYset. - Make sure the
commandin your config is an absolute path or on$PATHfor the GUI client (Claude Desktop does not always inherit shell$PATH— use/opt/homebrew/bin/python3or similar). - Restart the client fully (quit, not reload).
- Check the client’s MCP logs. Claude Desktop:
~/Library/Logs/Claude/mcp*.log.
vrin_check_job keeps returning status=working forever
vrin_check_job keeps returning status=working forever
Normal for complex
depth=research queries. Keep calling. The server-side timeout is 120s per job — if the job still hasn’t completed after that, vrin_check_job will return failed with an error message. If you see working for more than 3 consecutive calls (~165s), something upstream is wedged: check status.vrin.cloud.Job not found / expired
Job not found / expired
Jobs expire after 1 hour. If you call
vrin_check_job with a stale job_id, you’ll get status: "not_found". Start a new query with vrin_query_async.Enterprise keys aren't routing correctly
Enterprise keys aren't routing correctly
vrin_ent_* keys require an infrastructure_config record to exist in the enterprise config table. If you get “enterprise configuration not found”, contact support@vrin.cloud — the setup is one-time and usually done during onboarding.Next steps
Tool reference
Full input/output schemas for
vrin_query_async and vrin_check_job.Vrin for AI Agents
The agent-onboarding page. Start here if you’re setting Vrin up via a coding agent.