MaverickBLOCK
MaverickMCP - Personal Stock Analysis MCP Server
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
[](https://opensource.org/licenses/MIT) [](https://www.python.org/downloads/) [](https://github.com/jlowin/fastmcp) [](https://github.com/wshobson/maverick-mcp) [](https://github.com/wshobson/maverick-mcp/issues) [](https://github.com/wshobson/maverick-mcp/network/members)
MaverickMCP is a personal-use FastMCP server that provides financial data analysis, technical indicators, stock screening, and portfolio tracking tools to any MCP client -- Claude Desktop, Claude Code, Cursor, VS Code, Codex CLI, Antigravity CLI, OpenCode, and others. Built for individual traders and investors, it runs entirely on your own machine with no authentication or billing complexity.
Core tools need no API key: market data comes from yfinance. Two optional extras add more: [backtesting] (VectorBT-powered strategy backtesting) and [research] (LangGraph-based deep research, bring-your-own LLM key).
Why MaverickMCP?
Key Benefits:
- No Setup Complexity:
make devgets the server running; no database
migrations, no seed scripts, no API key required for core tools.
- Modern Python Tooling: Built with
uvfor fast dependency management. - Works With Any MCP Client: Standard MCP server over STDIO or Streamable
HTTP -- no client-specific code. See Connect Your MCP Client.
- 37 Core Tools: Market data, technical analysis, screening, portfolio
tracking with a risk dashboard, watchlists,
fd7b7c886441OBSERVED · 2026-09-28Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add maverick-mcp-server --env LLM_API_KEY=${LLM_API_KEY} --env EXA_API_KEY=${EXA_API_KEY} -- uvx maverick-mcp-server==1.1.0claude mcp add maverick-mcp:1.1.0 --env LLM_API_KEY=${LLM_API_KEY} --env EXA_API_KEY=${EXA_API_KEY} -- docker run -i --rm ghcr.io/wshobson/maverick-mcp:1.1.0:1.1.0Trust audit
BLOCKgrade D · trust 66/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (6 observation(s))
- Shell
- declared (2 observation(s))
- Dependencies
- pinned
- Secrets in source
- found
Findings (15)
".env" ... httpx.
- DATABASE_URL=postgresql://postgres:postgres@postgres:5432/maverick_mcp
module = importlib.import_module(module_name)
module = importlib.import_module(module_name)
settings = DatabaseSettings(url="postgresql://u:p@localhost/x", use_pooling=True)
settings = DatabaseSettings(url="postgresql://u:p@localhost/x", use_pooling=True)
CLAUDE.md
async with Client("http://127.0.0.1:8003/mcp") as client:curl -s -o /dev/null -w 'POST /mcp/ -> %{http_code}\n' -X POST -H 'Content-Type: application/json' -d '{}' http://127.0.0.1:8003/mcp/- [ ] **Step 3:** Build and verify. First, `docker run --rm maverick:after python -m maverick.server --help` exits 0. Second, run detached on `-p 8003:8000`, POST an MCP `initialize` then `tools/list`
monkeypatch.setenv("LLM_BASE_URL", f"http://127.0.0.1:{chat_server.server_port}/v1")curl -LsSf https://astral.sh/uv/install.sh | sh
The actual PyPI release. Either the owner enables trusted publishing + re-pushes the v1.0.0 tag (re-running publish.yml), or `uv publish`/`twine upload dist/*` with the owner's token. IRREVERSIBLE: ve
gh issue close 254 --reason "completed" --comment "Thank you for the offer. MaverickMCP is a local, personal-use server by design: it runs on the user's own machine, has no network authentication surf
Gates applied: no_behavioural_pass.
fd7b7c886441full audit observations/trust-audit/mcp-server/wshobson__maverick-1.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-28 | fd7b7c886441 | BLOCK | D | 66 | first audit |
Questions
What is the Maverick MCP server?
MaverickMCP - Personal Stock Analysis MCP Server
Is Maverick safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (66/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does Maverick need?
It reads EXA_API_KEY and LLM_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Maverick run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on PyPI as maverick-mcp-server.
How current is this page?
The grade is for one exact copy of the source (fd7b7c886441), read on 2026-09-28. The repository is watched and re-audited when it changes.