Server definition
- Hash
- sha256:5aca7084768e7260520ce5120e6e17e1e0ee180235950d1efb5d48635b396b7f
- What it is
- What a remote MCP server returned when asked what it offers: 9 tools
The blob, as servednamed by its sha256
{
"instructions": "CoinBucha serves leading, NON-PRICE Bitcoin indicators: sovereign reserve adoption, hiring velocity at Bitcoin and crypto-infrastructure employers, corporate treasury holdings and network hashrate. Every signal is dated, attributed to primary sources, and expressed as a 0-100 strength with a direction (tailwind | headwind | neutral) and a one-line `why`.\n\nStart with `scan_signals` for the ranked cross-signal view, then drill into a single domain with `get_sovereign_reserves`, `get_hiring_signal`, `get_treasury_holdings` or `get_network_signal`. `get_daily_brew` is the pre-written digest of the whole set. Read the `coinbucha://methodology` resource for how each strength is computed.\n\nThe same documents are also published as RESOURCES, for clients that attach context rather than call tools: `coinbucha://daily-brew`, `coinbucha://sovereign-reserves`, `coinbucha://treasury-holdings` and `coinbucha://methodology`, plus the per-country template `coinbucha://sovereign/{country}` (list it to enumerate every tracked state) and the frozen-series template `coinbucha://sovereign/snapshot/{date}` (list it to enumerate every dated snapshot; a date with no snapshot answers `status: \"no_snapshot\"`, never a zero). Resource bodies are the SAME payloads the matching tools return — attaching one and calling the tool are interchangeable, so do not do both.\n\nEvery payload carries `as_of` — cite it. When a source is missing, stale or unreadable the tool says so explicitly in `status` and `note` instead of serving a figure it cannot stand behind; pass that absence through rather than filling it in, and never read an absent feed as a zero.\n\nCoinBucha is information, not financial advice. Nothing this server returns is a recommendation to buy, sell or hold any asset; it publishes no price forecasts and no performance claims. Do not present its output as advice.\n\nHomepage https://coinbucha.com · docs and free-key request https://coinbucha.com/mcp · methodology https://coinbucha.com/methodology. Anonymous access is open and rate-limited to 30 requests/min per IP; a free API key raises that to 600/min.",
"tools": [
{
"description": "The day's machine-readable digest of the whole signal set — the CoinBucha Daily Brew. Takes no arguments. Returns { date, btc_price_usd, headline, signals_summary[] }, one summary line per signal with its strength, direction and one-line why. Example: {}. Information, not financial advice.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_daily_brew",
"outputSchema": null
},
{
"description": "RETIRED: this tool is no longer advertised and serves no flow figures. No spot-Bitcoin-ETF flow source is available that is both key-free and permitted to redistribute, so CoinBucha never had a licensed figure to serve here. It remains callable so existing integrations do not break: it takes no arguments and returns { available: false, status, as_of, date_basis, unit, note, disclaimer }, stating the absence explicitly. Read that absence as absent — never as a zero flow. For live signals use scan_signals, get_sovereign_reserves, get_treasury_holdings, get_hiring_signal, get_network_signal or get_daily_brew. Example: {}. Information, not financial advice.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_etf_flows",
"outputSchema": null
},
{
"description": "Hiring velocity across tracked Bitcoin and crypto-infrastructure employers, counted from their live ATS boards. Returns { as_of, companies[], note, why, disclaimer }; each company carries company, ticker, category, ats, careers_url, open_roles, open_roles_30d_ago, open_roles_90d_ago and the derived delta_30d, delta_90d and pct_30d. Example: {\"company\": \"coinbase\"} for one employer, or {} for every employer tracked. When a company filter matches no tracked employer the response adds coverage_note and tracked_count, saying that the name is outside the tracked set — a limit of coverage, not a finding about whether that company is hiring. Information, not financial advice.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"company": {
"description": "Case-insensitive company filter",
"type": "string"
}
},
"type": "object"
},
"name": "get_hiring_signal",
"outputSchema": null
},
{
"description": "Bitcoin network hashrate level and trend. Takes no arguments. Returns { as_of, hashrate_eh (exahashes per second), pct_30d, pct_90d, why, disclaimer }. Example: {}. Information, not financial advice.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_network_signal",
"outputSchema": null
},
{
"description": "Dated strength history for one CoinBucha signal, newest first. Returns { as_of, signal_type, title, unit, count, points[], truncated, available_points, tier_window_points, freshness, why, disclaimer, cite }, where each point carries date, signal_strength (0-100) and direction (tailwind | headwind | neutral). Example: {\"signal_type\": \"network_hashrate\", \"days\": 30}. `signal_type` is one of sovereign_adoption, hiring_velocity, corporate_treasury, network_hashrate. Anonymous and free-tier callers receive the most recent points only and are told so by `truncated` and `available_points`; no figure is ever altered or interpolated to fit a window. Observational data; information, not financial advice.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"days": {
"description": "How many of the most recent dated points to return (1-90)",
"maximum": 90,
"minimum": 1,
"type": "integer"
},
"signal_type": {
"description": "Which signal's history to return",
"enum": [
"sovereign_adoption",
"hiring_velocity",
"corporate_treasury",
"network_hashrate"
],
"type": "string"
}
},
"required": [
"signal_type"
],
"type": "object"
},
"name": "get_signal_history",
"outputSchema": null
},
{
"description": "Nation-state Bitcoin holdings, ranked largest first. Returns { as_of, btc_price_usd, count, sovereigns[], disclaimer }; each row carries country_name, country_code, holdings_btc, status, tier (1 = largest holders), framework, sources[], its own as_of, and source_quality (primary = confirmed against the state's own publication; secondary = reported, not confirmed at source — derived from that row's sources[]). Filter by country name or ISO code, or by tier. Example: {\"country\": \"US\"} or {\"tier\": 1} — call with {} for the full ranking. Information, not financial advice.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country": {
"description": "Country name or ISO code",
"type": "string"
},
"tier": {
"description": "Holding tier; 1 = largest holders",
"maximum": 5,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "get_sovereign_reserves",
"outputSchema": null
},
{
"description": "Bitcoin held on the balance sheets of tracked public companies, in aggregate and by largest holder. Takes no arguments. Returns { as_of, total_btc, company_count, total_value_usd, top[], why, disclaimer }, where top[] lists the largest holders as { name, symbol, btc }. Example: {}. Information, not financial advice.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_treasury_holdings",
"outputSchema": null
},
{
"description": "Ranked cross-signal feed of CoinBucha's leading, non-price Bitcoin indicators. Returns { as_of, btc_price_usd, count, signals[], disclaimer }, where each signal carries id, type, title, value, unit, signal_strength (0-100), direction (tailwind | headwind | neutral), a one-line why, sources[] and its own as_of. Optional filters narrow by strength, direction or signal type. Example: {\"min_strength\": 70, \"direction\": \"tailwind\"} — call with {} for the full ranked list. Observational data; information, not financial advice.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"direction": {
"description": "Keep only signals carrying this direction label",
"enum": [
"tailwind",
"headwind",
"neutral"
],
"type": "string"
},
"min_strength": {
"description": "Only signals with strength >= this",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"signal_types": {
"description": "e.g. ['sovereign_adoption','hiring_velocity']",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "scan_signals",
"outputSchema": null
},
{
"description": "What changed between two frozen, immutable sovereign-reserve snapshots. Takes optional { from, to } snapshot dates (YYYY-MM-DD); defaults to the two newest. Returns { status, as_of, from, to, counts, added[], removed[], changed[], envelope[], disclaimer, cite }, where each changed row carries country_code, country_name, source_quality { from, to } and changes[] of { field, basis (reported | derived), from, to }. With fewer than two snapshots it returns status \"insufficient_snapshots\" and diff: null — not an empty diff. Example: {\"from\": \"2026-09-04\", \"to\": \"2026-10-01\"}. Information, not financial advice.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"from": {
"description": "Earlier snapshot date, YYYY-MM-DD",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"to": {
"description": "Later snapshot date, YYYY-MM-DD",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
}
},
"type": "object"
},
"name": "sovereign_diff",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:5aca7084768e7260520ce5120e6e17e1e0ee180235950d1efb5d48635b396b7f | sha256sum