Vanoe Market Intelligence MCP server
Exposes the Vanoe Market Intelligence API as tools any MCP-capable AI assistant (Claude Desktop, Claude Code, Cursor, etc.) can call directly: a composite 0–100 verdict per ticker, trend-stage analysis (current and a backtest-safe weekly history), Point & Figure signals, sector breadth, the macro risk regime, SEC insider and 8-K filings, the macro calendar, and your usage.
This is a thin authenticated client, not a free tier: every tool call is a real, metered call against your plan using your own API key, exactly like calling the REST API yourself. Get a free key (1,000 credits a month, no card) at https://api.vanoe.ai/signup.
Informational data only. Not financial advice. See https://api.vanoe.ai/terms.
Hosted endpoint (no install)
The same tools are served over MCP's streamable HTTP transport by the API itself, for clients that take a URL (Claude.ai custom connectors, ChatGPT, hosted agent platforms):
https://api.vanoe.ai/mcpwithAuthorization: Bearer <your key>, orhttps://api.vanoe.ai/mcp/k/<your key>for clients that cannot send headers (the key page after signup prints this URL; treat it like a password).
Stateless, JSON responses, metered exactly like the REST API. Use the package below when you want the server to run on your own machine.
Claude Desktop: one-click install
Download vanoe-market-intelligence.mcpb
and open it with Claude Desktop (macOS or Windows). It asks for your API key
once, stores it securely, and installs the server itself using the uv
runtime. Source of the bundle is in mcpb/; rebuild with
npx -ai/mcpb pack mcpb vanoe-market-intelligence.mcpb.
Install
No install step is needed with uv — uvx fetches
and runs the package on demand:
uvx vanoe-intelligence-mcp
Or install it permanently with pipx install vanoe-intelligence-mcp or
pip install vanoe-intelligence-mcp, which puts a vanoe-intelligence-mcp
command on your PATH.
Configure your MCP client
Set one environment variable, VANOE_API_KEY. VANOE_API_BASE_URL is optional
and defaults to https://api.vanoe.ai.
Claude Desktop (claude_desktop_config.json) and most other clients:
{
"mcpServers": {
"vanoe": {
"command": "uvx",
"args": ["vanoe-intelligence-mcp"],
"env": { "VANOE_API_KEY": "sk_live_your_key_here" }
}
}
}
Claude Code:
claude mcp add vanoe -e VANOE_API_KEY=sk_live_your_key_here -- uvx vanoe-intelligence-mcp
Then ask your assistant things like "What's the verdict on NVDA and why?", "Which stage are AAPL, MSFT and AMD in?", or "Is the macro regime risk-on right now?" — it will call the tools below.
Tools
| Tool | API call | Credits |
|---|---|---|
get_verdict(ticker) |
GET /v1/verdict/{ticker} |
5 |
get_stage(tickers) |
GET /v1/signals/stage |
1 per ticker |
get_stage_history(ticker, weeks) |
GET /v1/signals/stage/history |
5 |
get_pnf(tickers) |
GET /v1/signals/pnf |
1 per ticker |
get_sector_breadth() |
GET /v1/sector-breadth |
1 |
get_macro() |
GET /v1/macro |
1 |
get_filings(ticker) |
GET /v1/filings/{ticker} |
1 |
get_short_volume(tickers) |
GET /v1/signals/short-volume |
1 per ticker |
get_calendar() |
GET /v1/calendar |
1 |
get_usage() |
GET /v1/usage |
0 |
Tools never raise. Any failure — missing key, network error, quota exceeded,
an unknown ticker — comes back as {"error": {"code", "message", "http_status"}} carrying the API's own message, so the assistant can explain
what happened instead of crashing the call.
Webhook management is deliberately not exposed: it is account administration, not something to do mid-conversation. Use the REST API for that.
Development
git clone https://github.com/peeroren/vanoe-intelligence-mcp.git
cd vanoe-intelligence-mcp
python -m venv .venv && . .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e '.[test]'
pytest tests
VANOE_API_BASE_URL=http://localhost:8000 VANOE_API_KEY=sk_live_… vanoe-intelligence-mcp
Source lives at https://github.com/peeroren/vanoe-intelligence-mcp; issues and
pull requests welcome. If you also run the API server locally, install this
in its own virtualenv, separate from the API server's own
requirements.txt: the mcp SDK pulls in a newer starlette than the API's
FastAPI pin tolerates, and sharing one environment breaks the API server with
Router.__init__() got an unexpected keyword argument 'on_startup'. End users
never hit this (the MCP server runs on their machine, next to their assistant).
tests/manual_e2e_smoke.py runs the real server as a subprocess over stdio
against a reachable API with a real key; it is not part of pytest.
The MCP Python SDK is on v2: the server class is
mcp.server.mcpserver.MCPServer (older tutorials show FastMCP at a
different import path).
Releasing
python -m build
twine upload dist/*
Bump version in pyproject.toml first. The older INTEL_API_KEY /
INTEL_API_BASE_URL variable names are still accepted for compatibility.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vanoe_intelligence_mcp-0.1.3.tar.gz.
File metadata
- Download URL: vanoe_intelligence_mcp-0.1.3.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d15f04c6ef7df9c38731ea32616976b085d52163de41d9daa32ddf39e0c77af3
|
|
| MD5 |
d5706c041ffd2ed354f6c059c96ecbe7
|
|
| BLAKE2b-256 |
9d9355b7b3bc4b61e37458f9a9e766a302a675d4a3723ca4f5b705a7fb54d440
|
File details
Details for the file vanoe_intelligence_mcp-0.1.3-py3-none-any.whl.
File metadata
- Download URL: vanoe_intelligence_mcp-0.1.3-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6961a316ceedb44f84b3d9f8e9cb7f67e38c929a72b6e9d85d37921a70c1cd58
|
|
| MD5 |
3dd79871aace34e3e53068fa5eb2b7f1
|
|
| BLAKE2b-256 |
e9105e7f911852236fd3398eae97bfcdbb5b078cd828bc43f7619e285335ce00
|