Odel
AllocContext

AllocContext

@alloccontextDeveloper ToolsPythonUpdated 1w ago

Portfolio-aware MCP: holdings from CEX or EVM wallet; holdings-scoped market, sentiment. x402. ELv2.

Server endpointStreamable HTTP

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

AllocContext

smithery badge

mcp-name: io.github.AllocContext/alloc-context

Portfolio-aware crypto context for whatever you hold — discover your holdings, holdings-scoped market data, sentiment, macro, and regime; optional allocation analysis when you supply targets. Deterministic JSON over MCP with x402 pay-per-call on Base.

New here? Agent on-ramp (~2 min) — copy-paste path to your first ContextBundle. Organization: AllocContext on GitHub — overview and integration links.

Privacy: nothing stored · one-time read-only · pass-through only — your keys and portfolio never persist on our servers. See USE.md.

Quick start (Cursor)

1. Install

pip install "alloc-context[mcp,hosted]"
# From source: pip install -e ".[mcp,hosted]"

2. User config

Copy config/user.example.yaml to ~/.config/alloc-context/user.yaml. For portfolio discovery (optional): read-only CEX keys (e.g. Coinbase, Kraken) in user config, or call hosted get_portfolio_state with exchange=wallet and a public EVM address. Add an x402 payer for hosted market context. See user-config.md.

3. MCP config

Add to your Cursor mcp.json (or project .cursor/mcp.json):

{
  "mcpServers": {
    "alloc-context": {
      "command": "alloc-context",
      "args": [
        "mcp",
        "--user-config",
        "/Users/you/.config/alloc-context/user.yaml"
      ]
    }
  }
}

Use an absolute path for --user-config. Example: cursor-mcp-bridge.example.json.

4. Ask your agent

Call get_context_bundle for a full snapshot (holdings when a portfolio source is configured, market/sentiment/macro via hosted upstream). Pure math tools (check_allocation_band, get_rebalance_plan) work without portfolio credentials.

Full setup guide: cursor-mcp.md. Sample responses: examples.md.

Not financial advice.

Hosted MCP

URLhttps://mcp.alloc-context.com/mcp
Discoveryllms.txt, x402 manifest
Pricing$0.02 cached context/math · $0.05 live ingest or portfolio
Paymentx402 on Base — USDC or EURC
Market scopeTailored to your holdings (band OHLC for BTC/ETH; alt quote snapshots); bridge auto-scopes from portfolio

Agents and wallets connect directly to the hosted endpoint — see agent-integration.md. The Cursor bridge above combines local portfolio reads with this upstream for market context.

MCP tools

ToolPurpose
get_context_bundleFull ContextBundle — holdings, market, sentiment, macro, delta, regime; optional allocation_analysis
get_market_contextSentiment, macro, ETF, breadth, and market fields (no portfolio)
get_context_atSaved snapshot from ingest history at a given as_of
get_context_deltaNotable shifts between two saved snapshots
get_rebalance_planUSD rebalance moves from allocation, target, and NAV
check_allocation_bandDrift vs target and whether allocation is outside the band
check_allocation_bandsBatch band checks for multiple target scenarios
get_portfolio_stateLive NAV and holdings (CEX keys or public EVM wallet address)

Market context is holdings-scoped: band assets (BTC/ETH) use OHLC bars; alt holdings (e.g. HYPE) use quote snapshots when cached. The bridge auto-scopes assets from your portfolio (symbols only upstream). See context-bundle.md#market-coverage.

See mcp.md for arguments, pricing, and resources.

Self-host and development

Run ingest and MCP entirely on your machine — no x402 upstream required. See self-hosting.md (self_host: true in user config), local-dev.md for the native dev stack (./scripts/dev-up.sh), or ./docker/up.sh / docker-self-host.md for Docker on loopback :8000.

git clone git@github.com:AllocContext/alloc-context.git
cd alloc-context
python3.11 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
cp .env.example .env
cp config/config.example.yaml config/config.yaml

python -m alloccontext ingest --dry-run
python -m alloccontext rollup --scope daily --stdout
pytest
CommandPurpose
python -m alloccontext ingestPull configured sources → SQLite
python -m alloccontext rollup --scope daily --stdoutContextBundle JSON (facts)
python -m alloccontext statusPer-source ingest ages, snapshots, MCP /health
alloc-context mcpMCP server (stdio or HTTP)

HTTP MCP + x402: mcp-http.md. CLI entry point: alloc-context (same as python -m alloccontext).

Documentation

DocumentPurpose
docs/agent-onramp.mdStart here — ~2 min to first ContextBundle
docs/deterministic-context-mcp-pattern.mdReusable ingest → rollup → MCP → x402 pattern
docs/langchain-integration.mdLangChain tools for hosted MCP (x402)
docs/docker-self-host.mdDocker Compose self-host evaluation
docs/cursor-mcp.mdCursor stdio MCP (bridge default)
docs/user-config.mdBridge user.yaml reference
docs/mcp.mdMCP tools and x402
docs/agent-integration.mdPaid HTTP MCP + Bazaar for agents
docs/examples.mdSample tool JSON (redacted)
docs/context-bundle.mdContextBundle schema
docs/USE.mdSelf-host vs hosted MCP (plain language)
docs/mcp-http.mdHTTP MCP + x402 setup
docs/mcp-discovery.mdBazaar and agent discovery
docs/self-hosting.mdOptional Linux/systemd ingest + MCP
docs/local-dev.mdLocal internal MCP + dev ingest
docs/architecture.mdPipeline and trust boundaries
docs/data-sources.mdIngest sources
docs/distribution.mdGitHub, PyPI, MCP Registry, directories
docs/publishing.mdRelease workflow and version bumps
docs/security-ci.mdCI coverage, Bandit, and pip-audit gates

Contributing

GitHub Issues are welcome for bugs, schema feedback, and MCP API suggestions. Unsolicited pull requests are not expected — see CONTRIBUTING.md.

License

Elastic License 2.0 — source-available, self-host friendly. See docs/USE.md for plain-language allowed uses.

Official hosted MCP: https://mcp.alloc-context.com/mcp