Skip to main content

Portfolio-aware crypto context — CEX or wallet holdings, holdings-scoped market, optional allocation analysis

Project description

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

URL https://mcp.alloc-context.com/mcp
Discovery llms.txt, x402 manifest
Pricing $0.02 cached context/math · $0.05 live ingest or portfolio
Payment x402 on Base — USDC or EURC
Market scope Tailored 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

Tool Purpose
get_context_bundle Full ContextBundle — holdings, market, sentiment, macro, delta, regime; optional allocation_analysis
get_market_context Sentiment, macro, ETF, breadth, and market fields (no portfolio)
get_context_at Saved snapshot from ingest history at a given as_of
get_context_delta Notable shifts between two saved snapshots
get_rebalance_plan USD rebalance moves from allocation, target, and NAV
check_allocation_band Drift vs target and whether allocation is outside the band
check_allocation_bands Batch band checks for multiple target scenarios
get_portfolio_state Live 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
Command Purpose
python -m alloccontext ingest Pull configured sources → SQLite
python -m alloccontext rollup --scope daily --stdout ContextBundle JSON (facts)
python -m alloccontext status Per-source ingest ages, snapshots, MCP /health
alloc-context mcp MCP server (stdio or HTTP)

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

Documentation

Document Purpose
docs/agent-onramp.md Start here — ~2 min to first ContextBundle
docs/deterministic-context-mcp-pattern.md Reusable ingest → rollup → MCP → x402 pattern
docs/langchain-integration.md LangChain tools for hosted MCP (x402)
docs/docker-self-host.md Docker Compose self-host evaluation
docs/cursor-mcp.md Cursor stdio MCP (bridge default)
docs/user-config.md Bridge user.yaml reference
docs/mcp.md MCP tools and x402
docs/agent-integration.md Paid HTTP MCP + Bazaar for agents
docs/examples.md Sample tool JSON (redacted)
docs/context-bundle.md ContextBundle schema
docs/USE.md Self-host vs hosted MCP (plain language)
docs/mcp-http.md HTTP MCP + x402 setup
docs/mcp-discovery.md Bazaar and agent discovery
docs/self-hosting.md Optional Linux/systemd ingest + MCP
docs/local-dev.md Local internal MCP + dev ingest
docs/architecture.md Pipeline and trust boundaries
docs/data-sources.md Ingest sources
docs/distribution.md GitHub, PyPI, MCP Registry, directories
docs/publishing.md Release workflow and version bumps
docs/security-ci.md CI 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alloc_context-0.2.15.tar.gz (187.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alloc_context-0.2.15-py3-none-any.whl (176.3 kB view details)

Uploaded Python 3

File details

Details for the file alloc_context-0.2.15.tar.gz.

File metadata

  • Download URL: alloc_context-0.2.15.tar.gz
  • Upload date:
  • Size: 187.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for alloc_context-0.2.15.tar.gz
Algorithm Hash digest
SHA256 326daa2b5f1e45d9e07446e18e6f301d77dd88462aed33eb05cd9d92cae3c4a8
MD5 5c7781b0dee8163ec53b4a5a331c50b8
BLAKE2b-256 1569da488b3f38b51a2646ab043f313f999b219fd1e6d07506ec3301bca57c2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for alloc_context-0.2.15.tar.gz:

Publisher: release.yml on AllocContext/alloc-context

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file alloc_context-0.2.15-py3-none-any.whl.

File metadata

  • Download URL: alloc_context-0.2.15-py3-none-any.whl
  • Upload date:
  • Size: 176.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for alloc_context-0.2.15-py3-none-any.whl
Algorithm Hash digest
SHA256 481d66aeab1880a0a1e0359c176fe60a493393fd98836e324544e35bc93ed2fc
MD5 9e1e44c71a184d893f04db60e6da1295
BLAKE2b-256 4b0cf65c9f9bc34bca606abd1a6a46bbd941cbe938bf3750c13c8dcda7cc4613

See more details on using hashes here.

Provenance

The following attestation bundles were made for alloc_context-0.2.15-py3-none-any.whl:

Publisher: release.yml on AllocContext/alloc-context

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page