· Channels — how you connect
MCP Server
AlgoVault's Model Context Protocol server exposes every trade-call, market-regime, and cross-venue scan tool to AI agents over one endpoint. Point Claude, Cursor, Cline, or any MCP client at https://api.algovault.com/mcp — the free tier needs no API key. Streamable HTTP or stdio transport, with typed tool schemas out of the box.
When to use MCP Server vs the other channels
Reach for MCP when your agent framework speaks the Model Context Protocol — Claude Desktop, Cursor, Cline, or an MCP-aware LangChain / LlamaIndex stack. It gives typed tool discovery and the full tool set. If you just want raw HTTP without an MCP client, use the REST API; if you want AlgoVault to push to you, use Webhooks.
Connect
◆ Connect Your MCP Client
Your av_live_… API key works across every MCP-compatible client. Pick yours below. Free tier, every coin and timeframe: 20 calls/month with no sign-in, then 200 calls/month (up to 100 per UTC day) with a free sign-in.
| Surface | Setup | What you get |
|---|---|---|
| Claude Desktop | Customize → Connectors → + → Add custom connector, or edit claude_desktop_config.json |
Native Streamable-HTTP MCP. AlgoVault tools (get_trade_call, scan_funding_arb, get_market_regime) callable in any chat. |
| Cursor | Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (project) |
IDE-native MCP. Cursor's coding agent pulls live signals while editing strategy code. |
| Cline (VSCode) | Cline panel → MCP Servers → Remote Servers tab, or edit cline_mcp_settings.json |
VSCode-side coding agent with AlgoVault tools available. |
| Claude Code | claude mcp add --transport http … --header … — or commit .mcp.json to repo root |
Per-project MCP. Useful for backtest / strategy-dev repos. Team-shared via .mcp.json. |
| Smithery | npx -y @smithery/cli mcp add algovault/crypto-quant-signal-mcp --client <name> |
Auto-managed connection via Smithery registry. Easiest install across clients. |
| Plain HTTP / curl | curl -X POST https://api.algovault.com/mcp … |
Raw JSON-RPC. For developers integrating into bots, scripts, or non-MCP services. |
| Codex | Add [mcp_servers.algovault] to ~/.codex/config.toml |
Coding agent for terminal and IDE. AlgoVault tools available in every Codex session. |
| Kimi Code | Add a url entry to ~/.kimi-code/mcp.json, or run /mcp-config |
Moonshot’s coding agent. Pulls AlgoVault verdicts while you edit strategy code. |
| ZCode (GLM) | Settings → MCP Servers → New MCP Server → HTTP, then paste the URL |
Z.ai’s GLM harness. AlgoVault verdicts alongside the GLM model family. |
| DeepSeek Harness | Insert one entry in cordis.patch.yml — the dsh CLI already ships the MCP bridge |
DeepSeek’s own agent runtime. AlgoVault tools arrive as mcp__algovault__*; your first 20 calls each month need no key. |
| Z.ai API | Pass type: "mcp" in the tools array on chat/completions |
No app to install. Z.ai reaches AlgoVault server-side while it answers. |
| DeepSeek | Point Claude Code at https://api.deepseek.com/anthropic, then add AlgoVault as usual |
Bring your own model. DeepSeek does the thinking; your existing harness carries the AlgoVault tools. |
Claude Desktop — setup walkthrough
Easiest path (UI, free tier): Open Claude Desktop → Customize → Connectors → + → Add custom connector. Paste https://api.algovault.com/mcp?src=docs, then click Add. Enable it per chat from + → Connectors. For a paid-tier key, use the JSON path below.
JSON path: Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"algovault": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.algovault.com/mcp?src=docs",
"--header", "Authorization:${AUTH_HEADER}",
"--header", "X-AlgoVault-Track-Token:chan-docs"],
"env": { "AUTH_HEADER": "Bearer av_live_…" }
}
}
}
Set your key in the env block. Free tier: put a free key in the Authorization header for 200 calls a month. Or drop it and the env block to try 20 calls. Keep the X-AlgoVault-Track-Token header either way.
Verify: ask Claude "Get me a trade call for BTC on the 1h timeframe". Tool indicator appears bottom-right of the input box.
Cursor — setup walkthrough
Edit ~/.cursor/mcp.json (global, all projects) or .cursor/mcp.json in the project root (per-project, commit-friendly):
{
"mcpServers": {
"algovault": {
"url": "https://api.algovault.com/mcp?src=docs",
"headers": {
"Authorization": "Bearer ${env:AV_API_KEY}",
"X-AlgoVault-Track-Token": "chan-docs"
}
}
}
}
Set AV_API_KEY in your shell. Restart Cursor. The Cursor agent now has AlgoVault tools available while editing strategy code.
Cline (VSCode) — setup walkthrough
Open the Cline panel in VSCode → MCP Servers → Remote Servers tab → Add server. Or edit cline_mcp_settings.json (path varies by OS; access via Configure MCP Servers):
{
"mcpServers": {
"algovault": {
"type": "streamableHttp",
"url": "https://api.algovault.com/mcp?src=docs",
"headers": {
"Authorization": "Bearer ${env:AV_API_KEY}",
"X-AlgoVault-Track-Token": "chan-docs"
},
"disabled": false,
"autoApprove": []
}
}
}
type: "streamableHttp" is the modern transport (recommended). The legacy "sse" type still works but is being deprecated upstream.
Claude Code — setup walkthrough
One-liner (recommended):
claude mcp add --transport http --scope project algovault "https://api.algovault.com/mcp?src=docs" \
--header "Authorization: Bearer $AV_API_KEY" \
--header "X-AlgoVault-Track-Token:chan-docs"
This writes a .mcp.json in your repo root which you can commit so every teammate gets the same MCP config:
{
"mcpServers": {
"algovault": {
"type": "http",
"url": "https://api.algovault.com/mcp?src=docs",
"headers": {
"Authorization": "Bearer ${AV_API_KEY}",
"X-AlgoVault-Track-Token": "chan-docs"
}
}
}
}
Verify: in Claude Code, run /mcp to list connected servers; AlgoVault should appear with its tools.
Smithery — setup walkthrough
The Smithery CLI installs and configures the MCP server in your client of choice automatically:
# Pick one — replace <client> with: claude, cursor, cline, claude-code
npx -y @smithery/cli mcp add algovault/crypto-quant-signal-mcp --client <client>
The CLI writes a Smithery-gateway entry into your client's config. It carries no API key, so this path is the free tier. Easiest path if you're new to MCP. Browse the AlgoVault listing at smithery.ai.
Plain HTTP / curl — advanced testing
For non-MCP integrations (bots, scripts, services), call the JSON-RPC endpoint directly. The transport is stateless, so a single POST of tools/call works: no initialize, no session id. See Testing with raw HTTP / curl for the one-shot call, the two Accept types you must send, and the optional session handshake.
One-shot smoke (free tier, no auth):
curl -sS https://api.algovault.com/health
Returns {"status":"ok","server":"crypto-quant-signal-mcp","version":"<current release>","stripe":true}.
Codex — setup walkthrough
Codex reads MCP servers from ~/.codex/config.toml. Add a table for AlgoVault:
[mcp_servers.algovault]
url = "https://api.algovault.com/mcp?src=docs"
bearer_token_env_var = "AV_API_KEY"
[mcp_servers.algovault.http_headers]
"X-AlgoVault-Track-Token" = "chan-docs"
Set AV_API_KEY in your shell for paid tier; drop bearer_token_env_var for free tier. codex mcp add algovault --url "https://api.algovault.com/mcp?src=docs" adds the free tier from the CLI; the paid tier's bearer_token_env_var is set in config.toml, as above.
IDE extension: open settings, choose MCP servers, add a server, pick Streamable HTTP and paste the same URL.
Verify: ask Codex "Get me a trade call for BTC on the 1h timeframe".
Kimi Code — setup walkthrough
Edit ~/.kimi-code/mcp.json (user level) or .kimi-code/mcp.json (project level). An entry carrying a url and no transport is an HTTP server:
{
"mcpServers": {
"algovault": {
"url": "https://api.algovault.com/mcp?src=docs",
"bearerTokenEnvVar": "AV_API_KEY",
"headers": {
"X-AlgoVault-Track-Token": "chan-docs"
}
}
}
}
Prefer the guided path? Run /mcp-config in the TUI to add, edit or delete servers without touching the JSON.
Verify: ask Kimi "Get me a trade call for BTC on the 1h timeframe".
ZCode (GLM) — setup walkthrough
Open Settings → MCP Servers, then click New MCP Server at the top right. Choose HTTP as the type and enter:
https://api.algovault.com/mcp?src=docs
For paid tier, expand Headers (optional) and add Authorization: Bearer av_live_…. Free tier needs no header.
ZCode also accepts a pasted config block under Full configuration, in either the {"mcpServers": {…}} or the bare {"server-name": {…}} shape.
Verify: ask ZCode "Get me a trade call for BTC on the 1h timeframe".
DeepSeek Harness — setup walkthrough
One step: patch the profile. There is no plugin to install — the dsh CLI ships @deepseek-ai/dsh-mcp-client in its own dependency closure, and the bridge’s README says one entry per server is the entire setup.
The bundles are a red herring: base, headless and web-app declare zero MCP dependencies, but a bare plugin name resolves through the profile’s Node parent walk to $DSH_HOME/profiles/node_modules, which the CLI closure feeds. Nothing is enabled by default because DSH treats each server as trusted code outside the sandbox — the entry below is the opt-in.
Edit ~/.dsh/profiles/<name>/cordis.patch.yml, or ~/.dsh/cordis.patch.yml for every profile:
- insert:
- id: mcp-algovault
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: algovault
transport: streamable-http
url: https://api.algovault.com/mcp?src=deepseek_harness
headers:
X-AlgoVault-Track-Token: int-deepseek-harness
The - insert: wrapper is required. Without it the entry is an id-targeted override, and it is skipped with a warning. The bridge’s own README shows the unwrapped form because it documents the plugin config shape, not a cordis.patch.yml edit.
Paid tier adds one more line to that headers block: Authorization: Bearer av_live_…. Without a key you get 20 calls a month; a free key gives 200.
The tools arrive server-qualified — mcp__algovault__get_trade_call, mcp__algovault__scan_trade_calls, and the rest.
DSH bridges tools only. MCP resources and prompts are deferred upstream, so read the track record at algovault.com/track-record instead.
Verify: ask dsh "Get me a trade call for BTC on the 1h timeframe".
Verified against dsh 0.1.1-rc.2 on 2026-08-29. DSH ships prereleases only; expect compatibility-breaking changes.
Z.ai API — server-side, no client needed
Z.ai dials the MCP server itself, so there is nothing to install locally. Declare AlgoVault as a tool on the request:
{
"model": "glm-4.6",
"messages": [{"role": "user", "content": "Trade call for BTC on the 1h timeframe"}],
"tools": [{
"type": "mcp",
"mcp": {
"server_label": "algovault",
"server_url": "https://api.algovault.com/mcp?src=docs",
"headers": {"X-AlgoVault-Track-Token": "chan-docs"}
}
}]
}
server_label is required. transport_type is optional and already defaults to streamable-http, so it is omitted above. Add allowed_tools to narrow the tool set.
DeepSeek — bring your own model
DeepSeek’s own harness connects to AlgoVault directly — see the DeepSeek Harness tutorial. This row is the other path: keep the harness you already run and swap the model behind it. The DeepSeek API itself still exposes no MCP parameter, so the harness carries the tools.
export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="$DEEPSEEK_API_KEY"
claude mcp add --transport http --scope project algovault \
"https://api.algovault.com/mcp?src=docs" \
--header "X-AlgoVault-Track-Token:chan-docs"
Claude Code then runs against DeepSeek while AlgoVault stays connected exactly as it would otherwise. Verdicts are unchanged: they are computed on our side and handed back as JSON.
Harnesses that speak the OpenAI protocol instead use the plain https://api.deepseek.com base, not the /anthropic one shown here.
Config formats verified per client against: Claude custom connectors · Cursor MCP docs · Cline MCP docs · Claude Code MCP docs · @smithery/cli on npm · Codex MCP docs · Kimi Code MCP docs · ZCode MCP docs · DeepSeek Harness · Z.ai MCP-call docs · DeepSeek Anthropic API. Config formats can drift — if a snippet here doesn't work, please refer to the upstream doc and report it at GitHub issues.
Full reference in the docs →◆ MCP Server
Connect over the Model Context Protocol at https://api.algovault.com/mcp. Any MCP-compatible client (Claude Desktop, Cursor, Cline, Claude Code) handles the protocol for you. See Connect Your MCP Client for per-client setup. Wiring a non-MCP system? POST tools/call directly. The transport is stateless, so there is no initialize step and no session id to thread:
AV_KEY="av_live_..." # paste your API key
curl -sS -X POST https://api.algovault.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer $AV_KEY" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_trade_call","arguments":{"coin":"BTC","timeframe":"15m","exchange":"BINANCE"}}}'
No key? Drop the Authorization header and the same call runs on the free tier.
Send both Accept types. The header must list application/json and text/event-stream. Sending only the first returns:
{"jsonrpc":"2.0","error":{"code":-32000,"message":"Not Acceptable: Client must accept both application/json and text/event-stream"},"id":null}
Parse twice. The reply is an SSE frame. The verdict is a JSON string nested at result.content[0].text. Strip the data: prefix, then decode the inner payload:
curl -sS -X POST https://api.algovault.com/mcp \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_trade_call","arguments":{"coin":"BTC"}}}' \
| sed -n 's/^data: //p' | head -1 | jq -r '.result.content[0].text' | jq
The same call in Python. Both parses in one place — the SSE frame, then the verdict string inside it. No MCP client library, no handshake, no session id.
import json, requests
r = requests.post(
"https://api.algovault.com/mcp",
headers={
"Content-Type": "application/json",
# both values, or the server answers 406
"Accept": "application/json, text/event-stream",
# optional — omit entirely to use the free tier
# "Authorization": "Bearer av_live_...",
},
json={"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {"name": "get_trade_call",
"arguments": {"coin": "BTC", "timeframe": "1h"}}},
timeout=30,
)
# 1st parse — the reply is an SSE frame; the payload is the line after "data: "
envelope = json.loads(next(l[6:] for l in r.text.splitlines() if l.startswith("data: ")))
# failures arrive in TWO shapes — check both before reading a verdict
if "error" in envelope:
raise SystemExit(envelope["error"]) # -32003 / -32004
if envelope["result"].get("isError"):
raise SystemExit(envelope["result"]["content"][0]["text"]) # -32602, as text
# 2nd parse — the verdict is a JSON *string* inside the tool result
verdict = json.loads(envelope["result"]["content"][0]["text"])
print(verdict["call"], verdict["confidence"], verdict["regime"])
print(verdict["_algovault"]["auth"]) # ABSENT / RESOLVED / MALFORMED
Optional: the full MCP session handshake. You do not need this to call a tool. It is kept for clients that speak full MCP session semantics. It also reproduces what an MCP client does internally:
AV_KEY="av_live_..." # paste your API key
# 1. initialize — reads a session id from the response headers, if the server issues one
SESSION_ID=$(curl -sS -i -X POST https://api.algovault.com/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AV_KEY" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}},"id":1}' \
| awk 'BEGIN{IGNORECASE=1} /^mcp-session-id:/ {gsub(/\r/,""); print $2; exit}')
# 2. notify "initialized"
curl -sS -X POST https://api.algovault.com/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AV_KEY" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","method":"notifications/initialized"}' >/dev/null
# 3. call the tool
curl -sS -X POST https://api.algovault.com/mcp \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AV_KEY" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: $SESSION_ID" \
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_trade_call","arguments":{"coin":"SOL","timeframe":"5m","exchange":"BINANCE"}},"id":2}'
The stateless server issues no session id, so SESSION_ID stays empty and the header is ignored. Every call above still succeeds.
Tool coverage
Every publicly-listed tool reachable through MCP Server (equities are held from public listings):
Frequently asked questions
Do I need an API key to use the MCP server?
No key to start. Point your MCP client at https://api.algovault.com/mcp and call tools. After 20 calls, sign in free for 200 a month.
What transports does the MCP server support?
Streamable HTTP is the default remote transport; stdio is available for local process integration (set TRANSPORT=stdio). Both expose the same tool set.
Which MCP clients work with AlgoVault?
Any MCP-compliant client — Claude Desktop, Cursor, Cline, and MCP-aware agent frameworks. See the Integrations page for per-client setup recipes.
How is MCP different from the REST API?
MCP gives typed tool discovery and schemas over a protocol; the REST API is plain HTTP request/response. Use MCP when your framework speaks it, and the REST API when it does not.