MCP Server
The VH3 AI MCP server exposes the full intelligence layer as Model Context Protocol tools. Any MCP-compatible client, Claude Desktop, Cursor, a custom agent, or your own toolchain, can connect directly without building middleware. Once connected, the client gets the same tools used by the Connie assistant:investigate, aggregate_jobs, jobs_feed, run_sentinels, reports_generate, search_outcomes, and more, with all credentials and routing handled server-side via JWT authentication.
Server details
Prerequisites
Claude Desktop and Cursor connect to remote MCP servers via a lightweight proxy calledmcp-remote. It runs automatically through npx, which ships with Node.js.
1
Install Node.js (if not already installed)
Download the LTS installer for your platform from nodejs.org:Both should return a version number (e.g.
- macOS: Download the
.pkginstaller from nodejs.org, open it, and click through the wizard. No terminal required. - Windows: Download the
.msiinstaller. Make sure “Add to PATH” is checked during installation (this is the default).
v22.x.x). If npx is not recognised, Node.js is either not installed or not in your system PATH — see Troubleshooting below.2
Confirm your IT policy allows outbound HTTPS
The MCP proxy makes outbound HTTPS connections to
api.vh3connect.io and registry.npmjs.org (to fetch mcp-remote on first use). If your organisation uses a firewall or proxy, ask your IT team to allowlist these domains.Why Node.js? Claude Desktop only supports local process (stdio) MCP servers in its config file. It cannot connect to remote HTTP/SSE endpoints directly. The
mcp-remote proxy bridges the gap — Claude Desktop launches it as a local process, and it handles the network connection to VH3. This is the standard pattern recommended by the MCP specification.Get your MCP token
Before connecting any client, you need a long-lived MCP token (valid for 90 days).1
Log in to get a session JWT
Call the login endpoint with your email and password to obtain a standard session token:Copy the
authToken from the response.2
Exchange it for an MCP token
Call the The response contains
auth/mcp-token endpoint using your session token:authToken (your 90-day MCP token) and expires_in: 7776000.3
Store the token securely
Save the MCP token in an environment variable. Never commit it to source control.
Quick start: Claude Desktop
Claude Desktop connects to the VH3 MCP server via SSE using themcp-remote proxy. Requires Node.js 18+.
1
Open your Claude Desktop config file
The config file location depends on your platform:
You can also open it from Claude Desktop: Settings → Developer → Edit Config.Create the file if it does not exist.
2
Add the VH3 server
macOS:Windows:Replace
claude_desktop_config.json
claude_desktop_config.json
YOUR_MCP_TOKEN with the token from Get your MCP token.3
Restart Claude Desktop
Quit fully (Cmd+Q on macOS, File → Quit on Windows — closing the window is not enough) and reopen. You should see a hammer icon in the chat input. Click it to confirm the VH3 tools are listed.
4
Test with a query
Try: “How many jobs did we complete last week, broken down by engineer?”Claude will call
aggregate_jobs and return a cited answer.The auth token is placed in the
env block rather than inline in args. This is the recommended pattern — mcp-remote can misparse header values containing spaces when they appear directly in the args array on Windows.Quick start: Cursor
Go to Cursor Settings → MCP and add a new server, or edit.cursor/mcp.json in your project root. Requires Node.js 18+.
macOS:
.cursor/mcp.json
.cursor/mcp.json
YOUR_MCP_TOKEN with your token. See Get your MCP token.
Prefer environment variables over inline tokens. Set
VH3_MCP_TOKEN in your shell profile and reference it from the config, or use Cursor Rules alongside the MCP connection to keep tokens out of config files.Available tools
Once connected, these tools are available in any MCP-compatible client. Nocompany_id or api_key inputs are needed, credentials are resolved automatically from your JWT.
FSI Intelligence
Jobs
Quotes & Invoices
Authentication
The MCP server uses JWT Bearer token authentication. Tokens are obtained via theauth/mcp-token endpoint (see Get your MCP token above).
The JWT encodes your user identity. All tool calls are automatically scoped to your company, no
company_id or api_key parameters are needed. Cross-tenant access is impossible.
Troubleshooting
spawn npx ENOENT (Windows)
Claude Desktop cannot find npx. Two possible causes:
- Node.js is not installed. Install it from nodejs.org and restart Claude Desktop.
- Node.js is installed but not in Claude Desktop’s PATH. Use
"command": "cmd"with"/c"as the first arg (see Windows config above). Alternatively, use the full path to npx:"command": "C:\\Program Files\\nodejs\\npx.cmd".
npx is not recognized (Windows)
Same root cause as above — Node.js is not on the system PATH. Install Node.js using the .msi installer (not the zip), which adds it to PATH automatically. After installing, restart Claude Desktop (or reboot) so it picks up the new PATH.
”Not valid MCP server configuration”
The config JSON is malformed. Common causes:- Trailing comma after the last entry in an object or array.
- Two separate JSON objects instead of one (e.g.
mcpServersandpreferencesin separate{}blocks — they must be siblings in a single root object). - Using
"url"or"headers"keys — Claude Desktop does not support these. Use thecommand+mcp-remotepattern shown above.
Tools don’t appear after restart
- Verify you fully quit Claude Desktop (Cmd+Q / File → Quit), not just closed the window.
- Check logs: Settings → Developer → Open Logs Folder and look for
mcp-remotestderr output. - Verify your token hasn’t expired (90-day lifetime). Re-run the token exchange if needed.
- Confirm outbound HTTPS to
api.vh3connect.ioandregistry.npmjs.orgis not blocked by a firewall.
Tool calls timeout
investigate, reports_generate, and connie_chat can take 10–17 seconds. Some clients have aggressive timeouts. Increase your client’s tool call timeout to at least 25 seconds.
Further reading
- MCP Specification — the protocol standard
- MCP Debugging Guide — official troubleshooting
mcp-remoteon npm — the SSE proxy package- Claude Desktop MCP Quickstart — Anthropic’s setup guide
Using the MCP server from custom agents
For agents built with the Anthropic SDK, OpenAI Agents SDK, or similar frameworks:Tool selection guide for agents
When your agent receives a free-form question and needs to decide which tool to call:
For a full system prompt you can paste directly into your agent, see the Claude.ai Projects and n8n Agent Prompts kits, both include routing logic optimised for agent use.
Pairing with AGENTS.md
If you’re using the MCP server inside a Cursor or Claude Code session, pair it with the AGENTS.md file in your project root. The MCP server handles execution; AGENTS.md handles routing logic, field name correctness, and the rules around what IDs to expose to users.MCP Server (this page)
Handles execution, connects the client to the actual API, manages auth, returns real data.
AGENTS.md
Handles reasoning, tells the agent which tool to call, which parameters to pass, and how to present results.