AllocContext
AllocContext provides portfolio-aware crypto context and allocation analysis tools, delivering deterministic JSON snapshots of holdings, market data, sentiment, macro conditions, and rebalancing math.
get_context_bundle: Retrieve a full snapshot including portfolio holdings, market data, sentiment indicators, macro conditions, regime hints, and delta vs. the prior snapshot. Optionally attach allocation drift analysis by supplying target percentages.get_market_context: Fetch fused market backdrop data — Fear & Greed index, Kalshi sentiment, macro events, FRED indicators, ETF flows, and market breadth — without needing portfolio credentials.get_portfolio_state: Fetch real-time NAV and holdings using read-only exchange API keys (Kraken or Coinbase) or a public EVM wallet address, with optional allocation analysis. Credentials are never stored.get_rebalance_plan: Calculate USD delta moves needed to bring your BTC/ETH/CASH allocation to a target split, with optional band checking and exchange-specific move wording.check_allocation_band: Determine whether your current weights are outside a drift band vs. your target, returning actionable hints likewithin_bandorconsider_rebalance.check_allocation_bands: Evaluate allocation drift against multiple target/band scenarios in a single call.get_context_at: Load a saved ContextBundle from ingest history at a specific ISO timestamp.get_context_delta: Compare two historical ContextBundle snapshots to identify notable shifts in conditions over time.
Provides tools for retrieving live portfolio state (NAV and holdings) from Coinbase exchange accounts.
AllocContext
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.
New here? Cursor MCP setup — stdio in your editor, or self-hosting with local ingest. Organization: AllocContext on GitHub.
Privacy: nothing stored · one-time read-only · pass-through only when using live portfolio reads. See USE.md.
Quick start (Cursor, self-host)
1. Install
pip install "alloc-context[mcp]"
# From source: pip install -e ".[mcp]"2. Config and secrets
Copy config/config.example.yaml to
config/config.yaml. Copy .env.example to .env and add
read-only exchange keys when you want portfolio ingest or macro feeds.
See self-hosting.md.
3. MCP config
Add to your global ~/.cursor/mcp.json:
{
"mcpServers": {
"alloc-context": {
"command": "alloc-context",
"args": [
"--config",
"/absolute/path/to/alloc-context/config/config.yaml",
"mcp"
],
"env": {
"ALLOC_CONTEXT_DB": "/absolute/path/to/alloc-context/state/alloccontext.db"
}
}
}
}Use absolute paths. See cursor-mcp.example.json.
4. Refresh facts (optional)
python -m alloccontext --config config/config.yaml ingestRun before a session or when you want fresh macro/regime data. No cron required.
5. Ask your agent
Call get_context_bundle for a full snapshot. Pure math tools
(check_allocation_band, get_rebalance_plan) work without portfolio credentials.
Full setup: cursor-mcp.md. Samples: examples.md.
Not financial advice.
Related MCP server: Web3 Signals — Crypto Signal Intelligence
MCP tools
Tool | Purpose |
| Full ContextBundle — holdings, market, sentiment, macro, delta, regime; optional |
| Sentiment, macro, ETF, breadth, and market fields (no portfolio) |
| Saved snapshot from ingest history at a given |
| Notable shifts between two saved snapshots |
| USD rebalance moves from allocation, target, and NAV |
| Drift vs target and whether allocation is outside the band |
| Batch band checks for multiple target scenarios |
| Live NAV and holdings (CEX keys or public EVM wallet address) |
| Score optional local theses against context (pass-through) |
Market context is holdings-scoped: band assets (BTC/ETH) use OHLC bars; alt holdings (e.g. HYPE) use quote snapshots when cached. See context-bundle.md#market-coverage.
See mcp.md for arguments and resources.
Self-host and development
Run ingest and MCP on your machine — the primary supported path.
See self-hosting.md, local-dev.md
(./scripts/dev-up.sh), or docker-self-host.md.
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,mcp]"
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
pytestCommand | Purpose |
| Pull configured sources → SQLite |
| ContextBundle JSON (facts) |
| Per-source ingest ages, snapshots, MCP |
| MCP server (stdio or HTTP) |
Optional HTTP MCP + x402 on your host: mcp-http.md.
AllocContext is self-host only — we do not operate mcp.alloc-context.com.
Quickstart: agent-onramp.md · cursor-mcp.md.
Documentation
Document | Purpose |
~2 min quickstart | |
Cursor stdio MCP | |
Local ingest + MCP | |
Ingest → rollup → MCP pattern | |
MCP tools | |
Sample tool JSON (redacted) | |
ContextBundle schema | |
License and use policy | |
Local internal MCP + dev ingest | |
Docker Compose self-host | |
PyPI and MCP Registry | |
Release workflow | |
Optional HTTP + x402 (your host) | |
Bridge |
Contributing
GitHub Issues are welcome for bugs, schema feedback, and MCP API suggestions. Unsolicited pull requests are not expected — see CONTRIBUTING.md.
License
MIT License. Self-host via PyPI. See docs/USE.md.
Available Tools
8 toolscheck_allocation_bandB
Check whether BTC/ETH/CASH band weights are outside a drift band vs target_pct and return hint (within_band, consider_rebalance, etc.). All three inputs are required. For bundle drift, pass target_pct on get_context_bundle to attach allocation_analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| allocation_pct | Yes | ||
| target_pct | Yes | ||
| band | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It describes the check and hint output but omits side effects, permissions, or error behavior, leaving behavioral traits unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with two sentences, front-loading the main purpose and parameters. It is efficient and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (required nested objects, output schema exists), the description covers core logic and hint types but lacks details on error handling, input validation, or full output specification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, so the description must compensate. It labels allocation_pct and target_pct as asset-specific (BTC/ETH/CASH) and band as the drift threshold, but doesn't detail the object structure or value formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks allocation band weights against a target and returns a hint. It specifies the assets (BTC/ETH/CASH) and output types, but does not distinguish from the similar sibling 'check_allocation_bands'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions all three inputs are required (though band has a default) and gives a usage hint for bundle drift. However, it lacks explicit when-to-use or alternative guidance compared to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_allocation_bandsA
Evaluate allocation drift against multiple target_pct/band scenarios in one call. Each scenario needs target_pct; optional name and band (default 0.15).
| Name | Required | Description | Default |
|---|---|---|---|
| allocation_pct | Yes | ||
| scenarios | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions evaluation and default band but does not disclose side effects (e.g., read-only), error handling, or prerequisites. Adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second details parameters. No unnecessary words, front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema, so describing returns is unnecessary. But the description lacks details about the allocation_pct parameter (asset mapping) and does not set expectations for result interpretation. Passable but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must add meaning. It clarifies that scenarios is an array of objects with required target_pct and optional name/band. However, allocation_pct structure (a map of asset to percentage) is not explained, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool evaluates allocation drift across multiple scenarios, with a specific verb and resource. It distinguishes from the singular 'check_allocation_band' sibling by emphasizing batch evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains that each scenario requires target_pct and optionally name/band, with a default. It implies use for multiple scenarios but does not explicitly contrast with alternatives like get_rebalance_plan or check_allocation_band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_context_atC
Load a saved ContextBundle snapshot from ingest history. as_of is an ISO timestamp; match=at_or_before returns the latest snapshot on or before that time.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | Yes | ||
| scope | No | daily | |
| match | No | at_or_before | |
| assets | No | ||
| target_pct | No | ||
| band | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It explains the behavior of as_of and match parameters, but omits behaviors for scope, assets, target_pct, and band. It does not state whether this is read-only or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence states the main purpose, and the second explains two key parameters. No unnecessary words, but could be more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters and an output schema, the description only covers 2 parameters and does not differentiate from 7 sibling tools. It lacks guidance on how to use the other parameters or when to pick this tool over others.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description adds meaning for as_of (ISO timestamp) and match (at_or_before logic), but the other 4 parameters (scope, assets, target_pct, band) are not described at all, leaving their semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it loads a saved ContextBundle snapshot from ingest history, specifying the action and resource. However, it does not distinguish from sibling tools like get_context_bundle, which might retrieve the current context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for historical snapshots with ISO timestamp and matching logic, but lacks explicit when-not-to-use or comparison with alternatives. It provides context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_context_bundleA
Full ContextBundle JSON: portfolio holdings, market, sentiment, macro, regime hints, and delta vs the prior saved snapshot. Optional assets filter (default BTC, ETH). Optional target_pct and band attach allocation_analysis (opt-in drift math). freshness=cached uses the local ingest DB; freshness=live runs ingest first.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | daily | |
| freshness | No | cached | |
| assets | No | ||
| target_pct | No | ||
| band | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains caching vs live behavior, optional allocation analysis, and delta comparison. No contradictions; adds meaningful context beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with core purpose, then optional features, then freshness behavior. No waste; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters (none required) and an output schema, the description covers core output, options, and behavior. Lacks error/limitation notes but is sufficient for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description explains assets (default BTC, ETH), target_pct/band for allocation analysis, and freshness modes. Missing explanation of 'scope' parameter, but overall adds significant meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states it returns a full ContextBundle JSON with holdings, market, sentiment, macro, regime hints, and delta. It distinguishes from siblings by mentioning optional allocation analysis, but does not explicitly contrast with tools like get_context_at or get_context_delta.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage by describing features (assets filter, allocation analysis, freshness modes) but provides no explicit when-to-use or when-not-to-use guidance relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_context_deltaA
Compare two ContextBundle snapshots and return notable_shifts. prior_as_of is required; omit current_as_of for latest live bundle.
| Name | Required | Description | Default |
|---|---|---|---|
| prior_as_of | Yes | ||
| scope | No | daily | |
| current_as_of | No | ||
| assets | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states the basic operation without detailing side effects, safety (e.g., read-only), or edge cases (e.g., behavior if prior_as_of is after current). This is insufficient for an agent to safely invoke the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant information. It efficiently conveys the core purpose and a key usage note, earning its place without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return values are documented elsewhere. However, the tool compares snapshots and the description lacks details on comparison semantics, error conditions, or the nature of 'notable_shifts.' While minimally viable, it could be more complete given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that prior_as_of is required and current_as_of can be omitted for the latest bundle. However, it does not explain 'scope' (default 'daily') or 'assets' (list of strings), leaving the agent to guess their purpose and valid values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Compare two ContextBundle snapshots and return notable_shifts.' This is a specific verb (Compare) and resource (ContextBundle snapshots), and it distinguishes itself from siblings like get_context_at (which retrieves a single snapshot) and get_context_bundle (which fetches a bundle).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on required vs optional parameters: 'prior_as_of is required; omit current_as_of for latest live bundle.' This helps the agent understand how to use the tool, though it does not explicitly mention when not to use it or compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_contextA
Fused market backdrop: sentiment (Fear & Greed, Kalshi), macro events, FRED indicators, ETF flows, and market breadth. Optional assets filter (default BTC, ETH). freshness=cached uses the local ingest DB; freshness=live runs ingest first (requires ingest API keys on the host).
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | daily | |
| freshness | No | cached | |
| assets | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that live ingest requires API keys and that cached uses a local DB, but it does not mention if the tool is read-only, rate limits, or potential side effects. The behavioral aspects are partially covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the purpose in the first sentence and parameter specifics in the second. No redundant words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters and an output schema (though not shown). The description provides enough to understand the data sources and freshness options but does not detail the output format or how it integrates with sibling tools. Given the output schema exists, return values are covered, but more context on when to use this tool in a workflow would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the assets parameter (default, optional) and the freshness parameter (values and semantics). However, the scope parameter is only given a default value without any explanation of its meaning or allowed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists specific components (sentiment, macro events, FRED indicators, ETF flows, market breadth) that clearly define the tool's scope. It distinguishes from sibling tools like check_allocation_band which likely focus on different data. However, it lacks an explicit action verb (e.g., 'retrieves') and the phrase 'Fused market backdrop' is somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the optional assets filter and the two freshness modes (cached vs live) with their prerequisites. It does not specify when to use this tool over alternatives like get_context_at or other siblings, nor does it provide exclusions or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_stateA
Live portfolio NAV, holdings[], and band weights from read-only exchange credentials passed in the request. Optional target_pct attaches allocation_analysis. Credentials are never stored. Supports kraken and coinbase.
| Name | Required | Description | Default |
|---|---|---|---|
| exchange | Yes | ||
| api_key | Yes | ||
| api_secret | Yes | ||
| target_pct | No | ||
| band | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly states 'read-only' (implying no state changes) and 'Credentials are never stored,' which are valuable behavioral disclosures. However, it omits details about error handling, rate limits, or data freshness guarantees beyond 'Live'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, with the most important information front-loaded: what the tool returns. It adds optional behavior and security notes efficiently, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description does not need to detail return formats. It adequately mentions NAV, holdings, band weights, and optional allocation_analysis. It notes 'Live' data and supported exchanges, but could be more complete by clarifying how holdings are structured and that the tool is read-only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all parameters. It covers exchange, api_key, and api_secret implicitly through 'read-only exchange credentials' and explicitly mentions target_pct ('attaches allocation_analysis'). However, the 'band' parameter is not described, leaving a gap in understanding its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'Live portfolio NAV, holdings[], and band weights' using 'read-only exchange credentials', which distinguishes it from sibling tools like check_allocation_band that focus on allocations. It specifies supported exchanges, making the purpose precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites or exclusion criteria. While it notes the optional target_pct parameter attaches allocation_analysis, it does not clarify when to prefer this over sibling allocation-checking tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rebalance_planA
USD deltas and exchange-style move lines to reach a target BTC/ETH/CASH split. Requires allocation_pct, target_pct, and nav_usd. Optional band returns a band_check block alongside the plan. exchange=kraken|coinbase adjusts move wording.
| Name | Required | Description | Default |
|---|---|---|---|
| allocation_pct | Yes | ||
| target_pct | Yes | ||
| nav_usd | Yes | ||
| exchange | No | kraken | |
| band | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains the tool's output (deltas, move lines) and the effect of optional parameters (band returns a band_check block). It does not disclose side effects, auth requirements, rate limits, or whether the operation is read-only. The existence of an output schema partially compensates, but the description could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two sentences: first states the primary function, second details parameters and options. Information is front-loaded, no redundant phrases, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters (including nested objects), an output schema, and a planning context, the description covers the main output and parameter effects. However, it does not explain the expected keys in allocation_pct and target_pct objects, nor the structure of the move lines output. The presence of an output schema mitigates this, but for an agent to invoke correctly, more detail on object parameters would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It explains the purpose of required params (allocation_pct, target_pct, nav_usd) and optional params (band adds band_check, exchange adjusts wording). The description does not detail the structure of the object parameters (e.g., keys in allocation_pct), but the mention of BTC/ETH/CASH split provides meaningful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool produces 'USD deltas and exchange-style move lines to reach a target BTC/ETH/CASH split'. It identifies the specific resource (rebalance plan) and action (get). The mention of splitting into BTC/ETH/CASH distinguishes it from sibling tools like check_allocation_band which focus on band checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description lists required parameters (allocation_pct, target_pct, nav_usd) and optional ones (band, exchange), implying when to include them. However, it does not provide explicit guidance on when to choose this tool over alternatives like check_allocation_bands, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v0.1.0- First observed
check_allocation_band - First observed
check_allocation_bands - First observed
get_context_at - First observed
get_context_bundle - First observed
get_context_delta - First observed
get_market_context - First observed
get_portfolio_state - First observed
get_rebalance_plan
TDQS
Tools have distinct purposes: checking drift, retrieving context, comparing deltas, market data, portfolio state, and rebalancing plans. The overlapping between check_allocation_band(s) and get_rebalance_plan is minor as one is for drift checking and the other for generating moves.
All tool names follow a consistent verb_noun pattern in snake_case (check_, get_), making the API predictable and easy to navigate.
With 8 tools covering portfolio context, drift checking, market data, and rebalancing, the count is well-scoped for the domain. Each tool serves a clear purpose without redundancy.
The tool set covers core portfolio monitoring and planning (drift, context, deltas, rebalance plan). Missing execution tools to actually rebalance, but that may be intentional. Minor gap in updating targets or bands, but those are passed as parameters.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Pay-per-call DeFi and macro intel for AI agents. x402 USDC tools via streamable HTTP /api/mcp.
Otto AI hosted MCP: 16 pay-per-call market-intelligence tools, USDC via x402 on Base, no API keys.
Pay-per-call crypto market intelligence for AI agents. USDC on Base via x402.
x402 MCP for agents: crypto prices, funding, DeFi yields, Polymarket, Base RPC + MCP security.
Related MCP Servers
AlicenseAqualityBmaintenanceThe Ultimate Cryptocurrency MCP for AI Assistants - Unified access to crypto, DeFi, and Web3 analytics | MCP Endpoint.1220418MIT- AlicenseNot gradedqualityCmaintenanceAI-powered crypto signal intelligence for 20 assets (BTC, ETH, SOL, etc). 6 scoring dimensions: whale activity, technical analysis, derivatives flow, narrative strength, sentiment, market structure. Market regime detection (TRENDING/RANGING), portfolio optimization, and accuracy tracking. 9 read-only MCP tools. Free via MCP, $0.001 USDC via x402 on Base for REST API.3MIT
- FlicenseNot gradedqualityDmaintenance56 pay-per-call MCP endpoints for AI agents. Market signals, macro economics, crypto/DeFi, geopolitical intelligence, SEC filings, GitHub velocity, sanctions screening. USDC on Base Mainnet via x402.-
- AlicenseNot gradedqualityDmaintenanceCrypto intelligence MCP: 104 tools for market data, ML signals, on-chain analytics, derivatives, and Bittensor subnets. Pay-per-call via x402 USDC on Base/Solana/Algorand/Stellar or $9.99/mo API key.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AllocContext/alloc-context'
If you have feedback or need assistance with the MCP directory API, please join our Discord server