MCP Setup (Cursor, Claude Code & MCP Hosts)
Step-by-step setup for connecting Cursor, Claude Code, Claude Desktop, Grok Build, or any MCP host to Artifice **jester_* tools**.
Start with: Using MCP.
What you are configuring
The Jester MCP bridge is a small local program (jester-mcp-bridge on npm). Your MCP host starts it over stdio; it authenticates with your API key and talks to Artifice over HTTPS, exposing portfolio reads, strategy discovery, backtests, and governed writes (with confirmation).
You do not clone a repo. With Node.js 18+, the host runs npx -y jester-mcp-bridge.
Quick start (5 steps)
- Get an API key — Console Keys or wallet onboarding. Store it securely.
- Use the bridge via
npx— no separate install; Node 18+ and the config below is enough (npx -y jester-mcp-bridge). - Add the MCP server in Cursor / Claude / Grok / your host's config. Paste base URL + API key.
- Restart the MCP host so it loads the server.
- Verify — ask the host to list tools. You should see
jester_*names (e.g. portfolio, positions, strategy discovery).
Detailed host-specific steps below.
1. Get an API key
- Console Keys — generate or reveal the key and copy it.
- Wallet onboarding: app.jester.trade/ai, connect a wallet, sign the challenge, copy the key shown once.
- Telegram webhook key: the bot's Webhooks menu on a Telegram-linked account. See jester.trade MCP setup.
Keep the key private. Anyone with the key can act within that key's delegated scope.
2. Configure your MCP client
- Add a stdio MCP server entry in your host's config (see host sections below).
- Set
JESTER_API_KEYandJESTER_BASE_URLin the server'senvblock. - Restart the MCP host (or start a new session).
- Ask the host to list available Jester tools.
Expected result: your MCP host shows jester_* tools and can answer read-only account or strategy questions.
Every host below runs the same stdio bridge. Only the config file path and top-level JSON shape differ.
| Host | Config file | Scope |
|---|---|---|
| Claude Code | .mcp.json (project) or ~/.claude.json (user) | Project file is team-shareable |
| Cursor | .cursor/mcp.json (project) or ~/.cursor/mcp.json (global) | UI: Settings → MCP |
| Claude Desktop | claude_desktop_config.json (see below) | App restart required |
| Grok Build | .grok/mcp.json (project) or ~/.grok/mcp.json (global) | Uses servers, not mcpServers |
| Other MCP hosts | Host-specific mcp.json / settings | Same stdio command + env |
Canonical server block (adapt the wrapper to your host):
"jester": {
"type": "stdio",
"command": "npx",
"args": ["-y", "jester-mcp-bridge"],
"env": {
"JESTER_API_KEY": "<your-key>",
"JESTER_BASE_URL": "https://app.jester.trade"
}
}
If you installed the bridge locally instead of via npx, point command at that binary. Keep the same JESTER_API_KEY and JESTER_BASE_URL env names.
Claude Code (primary example)
Claude Code is the recommended starting point: project-scoped .mcp.json can be checked into git (keep secrets in env vars, not committed literals).
Option A — CLI (fastest)
From your project root:
claude mcp add jester -s project \
--env JESTER_API_KEY=<your-key> \
--env JESTER_BASE_URL=https://app.jester.trade \
-- npx -y jester-mcp-bridge
Use -s user instead of -s project if you want Jester available in every repo on this machine.
Option B — edit .mcp.json directly
Create .mcp.json in your project root:
{
"mcpServers": {
"jester": {
"type": "stdio",
"command": "npx",
"args": ["-y", "jester-mcp-bridge"],
"env": {
"JESTER_API_KEY": "${JESTER_API_KEY}",
"JESTER_BASE_URL": "https://app.jester.trade"
}
}
}
}
Claude Code supports ${VAR} and ${VAR:-default} expansion — prefer ${JESTER_API_KEY} over hard-coding keys in a shared file.
Verify
- Start a new Claude Code session in the project (config is read at session start).
- Run
/mcp—jestershould appear connected. - Prompt:
List available Jester MCP tools.
If project servers do not load, approve the project MCP config when prompted, or add "enableAllProjectMcpServers": true in .claude/settings.local.json.
Cursor
Config paths
- Project:
.cursor/mcp.jsonin the repo root (shared with the team). - Global:
~/.cursor/mcp.jsonon macOS/Linux, or%USERPROFILE%\.cursor\mcp.jsonon Windows.
You can also add servers in Cursor Settings → MCP.
Example .cursor/mcp.json
{
"mcpServers": {
"jester": {
"command": "npx",
"args": ["-y", "jester-mcp-bridge"],
"env": {
"JESTER_API_KEY": "<your-key>",
"JESTER_BASE_URL": "https://app.jester.trade"
}
}
}
}
Restart Cursor (or reload the window) after saving. Open the MCP panel and confirm jester_* tools are listed.
Claude Desktop
Add the Jester server under mcpServers in Claude Desktop's config file, then fully quit and restart the app (not just close the window).
| OS | Config path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
Example
{
"mcpServers": {
"jester": {
"command": "npx",
"args": ["-y", "jester-mcp-bridge"],
"env": {
"JESTER_API_KEY": "<your-key>",
"JESTER_BASE_URL": "https://app.jester.trade"
}
}
}
}
After restart, start a new chat and check that Jester tools appear in the tools / connectors UI.
Grok Build
Grok Build uses a slightly different config shape: the top-level key is servers, not mcpServers.
Config paths
- Global:
~/.grok/mcp.json - Project:
.grok/mcp.jsonin the repo root (overrides global entries with the same name)
Option A — CLI
grok mcp add jester \
--command "npx -y jester-mcp-bridge" \
--env JESTER_API_KEY=<your-key> \
--env JESTER_BASE_URL=https://app.jester.trade
Option B — edit ~/.grok/mcp.json
{
"servers": {
"jester": {
"command": "npx -y jester-mcp-bridge",
"env": {
"JESTER_API_KEY": "<your-key>",
"JESTER_BASE_URL": "https://app.jester.trade"
}
}
}
}
Verify: run grok mcp list or grok mcp test jester, then in a session use /mcp to see connected tools.
Other MCP hosts (Cline, Windsurf, OpenCode, etc.)
Any host that supports stdio MCP can run Jester the same way:
- Find the host's MCP settings file or UI (often named
mcp.jsonor under extension settings). - Add a server named
jesterwithcommandnpx,args["-y", "jester-mcp-bridge"], and theenvblock above. - Restart the host and list tools.
Hosts that expect a single command string (no args array) can use "command": "npx -y jester-mcp-bridge" instead.
3. Tool-only first
Tool-only mode does not need an Artifice-side LLM key. Your MCP host model does the reasoning. Start there.
Server-side full chat is optional and uses a provider key saved on the trading account. Console chat can run without an MCP key via x402.
4. Verify Read-Only First
Before any writes, run a read-only check:
Use Jester tools to show my portfolio summary and open positions. Do not place trades.
If that works, try discovery tools, then proceed to governed writes only with confirmation enabled.
Safety Model
- Delegated access follows the same confirmation model as the Mini App Agent.
- Destructive actions require confirmation.
- Tool results are redacted and scoped to the authenticated account.
- Some setups may expose read-only tools only.
Troubleshooting
| Symptom | Check |
|---|---|
| Tools do not appear | Node 18+ installed; MCP host restarted; config file path matches your host; API key and base URL set; npx -y jester-mcp-bridge reachable |
| Claude Code: project server skipped | Start a new session; approve project MCP; check /mcp output |
| Grok Build: server missing | Config uses servers key (not mcpServers); run grok mcp list |
| Authentication fails | Key is copied correctly and has not been revoked |
| Full chat fails | Provider key is saved on the trading account |
| Action requires confirmation | Re-run only after reviewing the action carefully |
npx fails / package not found | Confirm jester-mcp-bridge on npm; check network / npm registry |