CoinBucha
Provides leading, non-price Bitcoin intelligence signals such as sovereign adoption, hiring velocity, network hashrate, ETF flows, and corporate treasuries.
CoinBucha MCP — Bitcoin signal intelligence for AI agents
Signal-first Bitcoin intelligence over MCP. Leading, non-price indicators — sovereign adoption, hiring velocity, network hashrate, ETF flows, corporate treasuries — each as a 0–100 strength, a direction, a one-line
why, and primary sources.Information, not financial advice. No tool returns a buy/sell/hold recommendation.
This is the public MCP interface for CoinBucha. The hosted server reads the same live signal data the dashboard renders, so the machine face and the human face never diverge.
Connect (hosted — recommended, no install)
The server is remote and speaks Streamable HTTP. Point any MCP client at:
https://coinbucha.com/api/mcpClaude Desktop / Claude Code — add a custom connector with that URL, or in
claude_desktop_config.json:
{
"mcpServers": {
"coinbucha": {
"type": "streamable-http",
"url": "https://coinbucha.com/api/mcp"
}
}
}Cursor / other clients — add an MCP server with transport streamable-http and the URL above.
Free tier is open (IP rate-limited). Higher limits are available with an API key via the
Authorization: Bearer <key> header — see coinbucha.com.
Related MCP server: PreReason-mcp
Connect (local stdio — offline/dev)
The bundled server.py exposes the same tools and fetches the live public snapshots from
coinbucha.com, so it needs no local data pipeline.
pip install -r requirements.txt
python3 server.py # stdio transport
# inspect: uv run mcp dev server.py{
"mcpServers": {
"coinbucha": { "command": "python3", "args": ["server.py"] }
}
}Tools
Tool | Returns |
| Ranked composite signal feed (filter by |
| Bitcoin/crypto-infra hiring velocity: open roles + 30/90-day deltas from live ATS boards |
| Sovereign Bitcoin holdings, ranked (filter by |
| Corporate Bitcoin treasury holdings: total BTC held by public companies + top holders |
| Spot Bitcoin ETF net flows (latest day + trailing 5/30-day) |
| Bitcoin network hashrate level + 30/90-day trend |
| Today's machine-readable signal digest (the CoinBucha Daily Brew) |
Resource coinbucha://methodology — how every signal is computed (see docs/methodology.md).
Prompt morning_bitcoin_brief — one-shot template to render the Daily Brew from live signals.
Every response carries an as_of timestamp, a why, and a disclaimer.
Example
Call scan_signals with { "min_strength": 60, "direction": "tailwind" } → the strongest
structural tailwinds right now, ranked, each with its rationale and sources. Or run the
morning_bitcoin_brief prompt for a written digest.
Methodology & guardrail
Signals are leading, non-price indicators rendered as signal_strength (0–100), a
direction, and a why. The full, versioned methodology is public — see
docs/methodology.md — because an auditable method is the point.
CoinBucha's public and MCP surfaces are self-audited against MiCA / FCA / GDPR. No surface presents a signal as advice.
Links
Dashboard: https://coinbucha.com
MCP endpoint: https://coinbucha.com/api/mcp
Discovery manifest: https://coinbucha.com/.well-known/mcp.json
License
MIT — see LICENSE. This repository is the public MCP interface and
methodology; the signal-collection pipeline is maintained separately.
Available Tools
7 toolsget_daily_brewBInspect
Today's machine-readable signal digest (the CoinBucha Daily Brew).
| Name | Required | Description | Default |
|---|---|---|---|
No 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 of behavioral disclosure. It only states that the output is machine-readable, but does not describe the actual contents, format, safety profile, or potential side effects. For a read operation, it doesn't even confirm it is non-destructive or what data it accesses beyond 'signals'.
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 a single, focused sentence: 'Today's machine-readable signal digest (the CoinBucha Daily Brew).' It is concise, front-loaded, and contains no filler. Every word contributes to explaining the tool's purpose, making it appropriately sized for a zero-parameter tool.
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 is simple (no params), but with no output schema and no annotations, the description should explain what the digest contains and how it relates to sibling tools. It merely labels the output without detailing the signals covered, the format, or how it differs from scanning signals. This is insufficient for an agent to fully understand the tool's return value.
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?
The input schema has zero parameters, so the baseline is 4. The description correctly adds nothing about parameters since there are none. The schema coverage is 100% (vacuously), so the description does not need to compensate for missing parameter documentation.
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 provides 'Today's machine-readable signal digest', indicating a verb+resource: retrieving a digest. It differentiates from sibling tools like get_etf_flows or get_network_signal, which focus on specific signals, though it does not explicitly name them. The word 'digest' implies a compilation, which adds some specificity.
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?
No guidance is provided on when to use this tool versus alternatives. The description mentions 'Today's' implying daily use, but there is no explicit statement about when to prefer this over scan_signals or other specific signal tools. It lacks any exclusions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_etf_flowsAInspect
Spot Bitcoin ETF net flows (latest day + trailing 5/30-day) — institutional demand.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses the specific timeframes returned (latest day, trailing 5/30-day) and the data type (net flows). It does not describe exact return format or edge cases, but for a simple parameterless getter this is adequate.
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 a single compact sentence that front-loads the key resource and scope. It includes only the essential information, with no filler or 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 has no parameters and no output schema, the description fully covers what the tool does and its scope. It specifies the data source (Bitcoin ETF flows) and timeframes, making it complete for an agent to invoke correctly.
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?
The tool has zero parameters, so the input schema is empty. The description naturally adds no parameter details, but the baseline for zero-parameter tools is 4, as there is no additional meaning needed.
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 identifies the resource (Spot Bitcoin ETF net flows) and the scope (latest day + trailing 5/30-day). It distinguishes itself from sibling tools that cover different signal types, though it lacks an explicit verb, relying on the tool name 'get' to imply the action.
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 context by mentioning 'institutional demand', suggesting this tool is suitable when Bitcoin ETF flow data is needed. However, it does not explicitly mention alternatives or when not to use it, which would strengthen guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hiring_signalAInspect
Bitcoin-native hiring velocity (open roles + 30/90-day deltas).
Args:
company: optional company name filter (case-insensitive substring).
| Name | Required | Description | Default |
|---|---|---|---|
| company | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the returned metric but does not explicitly mention that it is a read-only operation, how the company filter behaves when null, or any data source/freshness details. It provides minimal transparency beyond the immediate return value.
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 very concise: a one-line definition of the return value followed by a clear parameter note. No unnecessary words, and the primary purpose is front-loaded.
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?
Without an output schema or annotations, the description needs to clarify the return structure. It mentions 'open roles + 30/90-day deltas' but not how these are formatted (e.g., a single number, a dictionary, a list). It also omits the default behavior when the company filter is not provided, leaving ambiguity for an agent.
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?
The schema description coverage is 0%, but the description compensates by explaining 'company' as an optional case-insensitive substring filter. This adds meaning beyond the schema, though it does not clarify the behavior when the parameter is omitted or null.
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 'Bitcoin-native hiring velocity (open roles + 30/90-day deltas)' with an optional company filter. This is a specific verb+resource+scope, and it distinguishes itself from sibling tools like get_sovereign_reserves or get_etf_flows by focusing on hiring metrics.
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 purpose is implied but there is no explicit statement of when to use this tool versus alternatives, nor any exclusions or scenario-based guidance. The description only hints at usage through the return value, so it meets the 'implied usage' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_signalAInspect
Bitcoin network hashrate level and 30/90-day trend (miner conviction / security).
| Name | Required | Description | Default |
|---|---|---|---|
No 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 transparently describes the returned data (hashrate level and trend) and its interpretive meaning. It does not mention potential limitations or response format, but for a simple read-only signal tool, this is adequate.
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 a single, well-structured sentence that front-loads the resource and includes a useful parenthetical clarification. No wasted words.
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 simplicity of a parameterless signal tool with no output schema, the description adequately conveys the core output. It could specify units or exact format, but the level of detail is sufficient for initial selection and invocation.
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?
The tool has zero parameters, so the description is the sole source of semantic meaning. It clearly explains what the output represents, including the 30/90-day trend and the miner conviction interpretation, exceeding the baseline for parameterless tools.
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?
Clearly states the tool retrieves 'Bitcoin network hashrate level and 30/90-day trend' with interpretative context ('miner conviction / security'). This distinguishes it from siblings like get_hiring_signal or get_etf_flows, which address different topics.
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?
Usage is implied by the specific topic (Bitcoin hashrate) and the sibling set, but no explicit guidance is given about when to choose this over alternatives. There are no stated exclusions or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sovereign_reservesBInspect
Sovereign Bitcoin holdings, ranked.
Args:
country: optional country name/code filter (case-insensitive substring).
tier: optional tier filter (1 = largest holders).
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | ||
| country | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It explains filter semantics (case-insensitive substring, tier ranking) but does not mention output format, sorting order, data freshness, or any side effects. The read-only nature is unstated, and the return shape is left undefined.
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 extremely concise and well-structured with an 'Args' block. The opening phrase 'Sovereign Bitcoin holdings, ranked' is efficient but could be improved with a verb to form a complete sentence. Every line earns its place with no wasted words.
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?
For a simple lookup tool with two optional parameters, this is adequate but has gaps. The description covers purpose and parameters but fails to specify what the response contains, which is critical given there is no output schema. It also lacks any caveats about ranking criteria or data scope.
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 does so by explaining 'country' as a case-insensitive substring and 'tier' as a rank filter with '1 = largest holders'. This adds meaningful context beyond the bare schema types and clearly conveys how filters behave.
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 identifies the resource (sovereign Bitcoin holdings) and indicates a ranked list, which is clear. However, it lacks an explicit verb like 'get' or 'list', making it a fragment rather than a full purpose statement. It does not explicitly distinguish from the sibling 'get_treasury_holdings', though the 'sovereign' qualifier provides some differentiation.
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 gives no guidance on when to use this tool versus alternatives like get_treasury_holdings or get_hiring_signal. It implies usage for sovereign holdings but does not state exclusions, prerequisites, or scenarios where another tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_treasury_holdingsBInspect
Corporate Bitcoin treasury holdings: total BTC held by public companies + top holders.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It describes only the data content, not behavioral traits such as read-only nature, rate limits, or output structure. It provides minimal behavioral disclosure beyond the fact that it exposes these holdings.
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 a single sentence that front-loads the key concept and contains no wasted words.
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?
For a zero-parameter tool with no output schema, the description gives a general sense of the return (total BTC and top holders) but leaves ambiguity about the composition of 'top holders' and the exact list of public companies. It is acceptable but not fully detailed.
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?
The tool has zero parameters, so the baseline is 4. The description appropriately focuses on the output data, and no parameter explanation is needed.
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 covers corporate Bitcoin treasury holdings with total BTC held by public companies and top holders. This distinguishes it from siblings like sovereign_reserves and etf_flows, but it lacks an explicit verb, though the name 'get_' implies retrieval.
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 subject matter implies when to use it (when needing corporate treasury holdings), but there is no explicit guidance on when not to use it or alternatives. The description does not reference sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_signalsAInspect
Ranked composite feed of Bitcoin signals.
Args:
min_strength: only return signals with signal_strength >= this (0-100).
direction: filter by 'tailwind', 'headwind', or 'neutral'.
signal_types: filter by type, e.g. ['sovereign_adoption','hiring_velocity'].
| Name | Required | Description | Default |
|---|---|---|---|
| direction | No | ||
| min_strength | No | ||
| signal_types | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. It explains filtering behavior (e.g., min_strength threshold, direction filter) but does not specify return format, ordering, or whether results are paginated. The word 'ranked' hints at sorting, but the exact ranking logic is unclear. This is partially transparent but leaves gaps.
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 extremely concise: one line for purpose and a compact list of arguments. Every sentence provides new information, and the structure is readable and front-loaded. No fluff or repetition.
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 absence of annotations and output schema, the description should provide enough context for correct use. It covers the tool's purpose and parameter semantics, but lacks key behavioral details like the structure of the returned feed, whether signals are sorted by strength, and any limits on results. It is adequate for simple invocation but not fully complete for an agent needing to interpret output.
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?
The input schema has 0% description coverage, so the description must compensate. It does so effectively by explaining each parameter: min_strength (threshold value), direction (valid enum values), and signal_types (with concrete examples). While some details like the full list of signal_types are omitted, the explanations add meaningful context beyond the bare schema.
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 opens with 'Ranked composite feed of Bitcoin signals,' which clearly states the tool's function: it returns a ranked aggregate of Bitcoin signals. This distinguishes it from sibling tools that focus on specific signal types (e.g., get_hiring_signal, get_network_signal). The verb 'scan' and resource 'signals' are specific and unambiguous.
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 this tool is for getting a broad, composite view of multiple signal types, while sibling tools likely target individual signals. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions. Usage is inferred from 'composite' rather than directly instructed.
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.
7 tool updates
v0.1.2- First observed
get_daily_brew - First observed
get_etf_flows - First observed
get_hiring_signal - First observed
get_network_signal - First observed
get_sovereign_reserves - First observed
get_treasury_holdings - First observed
scan_signals
TDQS
Each tool targets a distinct data category (hiring, sovereign reserves, treasury, ETF flows, network, digest, composite feed). While get_daily_brew and scan_signals both surface signals, their descriptions clearly differentiate a digest from a filterable ranked feed.
Six of seven tools follow the 'get_<noun>' pattern (e.g., get_etf_flows, get_network_signal). The outlier 'scan_signals' uses a different verb style, causing a minor deviation in an otherwise consistent scheme.
Seven tools is a well-scoped set for a Bitcoin signals server, covering distinct signal categories and aggregate views without bloat.
The surface covers key Bitcoin signal categories (institutional, corporate, sovereign, network, hiring) plus digest and composite feeds. A slight gap might be a direct price or on-chain metric tool, but the server appears purpose-focused and effective.
Maintenance
Related MCP Connectors
Pre-reasoned Bitcoin & macro financial briefings for AI agents. Trend signals, regimes, 17 contexts.
Narrative & signal intelligence for AI agents: crypto/AI/macro convergence & divergence.
Signed BTC and macro market intelligence for autonomous research, risk, and trading agents.
Whale & Institutional Flow MCP — 8 tools: TVL flows, alpha signals, stablecoin supply.
Related MCP Servers
- 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
- AlicenseAqualityCmaintenancePre-reasoned Bitcoin and macro market briefings with trend signals, confidence scores, and regime classification. 17 briefings covering BTC, Fed balance sheet, M2, Treasury yields, and cross-asset correlations.51075MIT
- AlicenseAqualityDmaintenanceThe conviction engine for autonomous crypto trading agents. 376 metrics across 8 factor classes, multi-factor backtesting, signal persistence, and regime analysis — 21 tools for AI agents via MCP.2165MIT
- AlicenseAqualityDmaintenanceBitcoin market intelligence MCP server. Exposes Signal Lord's composite gauge scoring, on-chain and macro regime signals, and market data to AI agents.26151MIT
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/jukkablomberg/coinbucha-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server