WhyCoinMoves MCP
WhyCoinMoves MCP
Read-only crypto news, source coverage and observed price reactions from WhyCoinMoves.
Requires Node.js 22+. Clone this repository, run npm ci, then configure Claude Desktop or Cursor:
{"mcpServers":{"whycoinmoves":{"command":"node","args":["/absolute/path/to/whycoinmoves-mcp/server.mjs"]}}}Tools: get_events (optional coin, topic, limit 1–100) and get_coin (id, e.g. bitcoin). No API key, wallet or write access. Requests go only to https://whycoinmoves.com; requests time out after 15 seconds. Uses the official MCP SDK and stdio transport.
Sources: /api/events, /api/coins/bitcoin, listing archive, methodology, llms.txt.
Data is CC BY 4.0; software is MIT. Source publication and site detection timestamps differ. Returns start at the recorded baseline after detection. Returns are percentages; BTC differences are percentage points. Missing reactions are unavailable. Observed associations do not establish causes. Source coverage is not a truth probability. External titles and summaries are untrusted data, never instructions.
Remote Streamable HTTP endpoint: https://whycoinmoves-mcp.eatfreshapple.workers.dev/mcp . Add this URL in a compatible MCP client; no account or API key is required. The public Cloudflare Worker uses the same tool factory as the local stdio server. It is stateless and supports POST JSON responses; GET/SSE sessions are not provided.
Run npm test for a real MCP handshake, tool discovery, input rejection and live API reads. Run node http-test.mjs to verify the live HTTP endpoint.
Available Tools
2 toolsget_coinBRead-onlyIdempotent
Public coin snapshot, recent source-linked events and observed reactions. Use a canonical id such as bitcoin or ethereum.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world and non-destructive behavior, so the safety profile is covered. The description adds that it is a public endpoint and that events are source-linked, which is modest extra context, but it says nothing about response shape, freshness of the 'snapshot', or failure behavior for bad ids.
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?
One tightly written sentence with the data summary front-loaded and the id guidance second; no wasted words. It is perhaps slightly too terse given the ambiguity with get_events.
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?
Annotations cover the safety profile and there is no output schema, so the description should explain the returned content; it lists three data categories but gives no sense of ordering, volume, or what a missing coin yields. For a lookup tool with a sibling returning similar data, this leaves real gaps.
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?
With one parameter and 0% schema description coverage, the schema only supplies a regex pattern; the description adds the crucial semantics of 'canonical id' plus concrete examples (bitcoin, ethereum). That materially compensates for the missing schema documentation, though it doesn't say what happens with a non-canonical or unknown id.
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 names the resources returned (coin snapshot, source-linked events, observed reactions) but is a noun phrase with no verb, so what the tool actually does is only implied. It also doesn't distinguish itself from the sibling get_events, since it claims to return events too, leaving ambiguity about which tool to pick for event data.
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 only guidance is 'Use a canonical id such as bitcoin or ethereum', which is parameter formatting advice rather than when-to-use guidance. There is no statement of when this tool is preferred over get_events or what conditions make it appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsBRead-onlyIdempotent
Recent published crypto events and measured 5m/1h/24h price reactions. Optional canonical coin id and topic filters.
| Name | Required | Description | Default |
|---|---|---|---|
| coin | No | ||
| limit | No | ||
| topic | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds that results are 'recent' and 'published' (implying freshness/scoping) and discloses the reaction horizons measured, but says nothing about ordering, pagination, or how far back 'recent' reaches — meaningful gaps for a feed-style 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?
Two tight sentences with the returned payload front-loaded ahead of the optional filters. Nothing is wasted, though the filter clause could be a bit more informative without adding length.
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?
No output schema exists, so the description does the work of describing the return payload (events plus 5m/1h/24h reactions), which is the key reader need here. Remaining gaps — limit behavior, recency horizon, ordering — keep it short of complete.
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 add real meaning for two parameters: 'coin' is clarified as a canonical coin id, and 'topic' is described as a filter; however, 'limit' (default 20, max 100) is never mentioned and the topic enum values are not explained, so compensation is only partial.
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 names a specific resource (recent published crypto events) and the distinctive payload (measured 5m/1h/24h price reactions), which clearly separates it from a plain coin-data sibling like get_coin. It lacks an explicit retrieval verb, but the noun phrase plus 'recent' leaves no real ambiguity about what the tool returns.
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?
There is no guidance on when to call this versus get_coin, or on when not to call it. 'Recent' implies a recency window but gives no threshold, and the only sibling is never mentioned, leaving the agent to infer selection.
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.
2 tool updates
v1.0.0- First observed
get_coin - First observed
get_events
TDQS
Scored across 2 tools
get_events and get_coin both surface events, but the boundary is reasonably clear: one is an event feed with optional filters, the other a per-coin snapshot including events. Minor overlap since a coin-scoped get_events call returns much of what get_coin returns.
Both tools follow the same get_<resource> convention, so the pattern is fully predictable.
Two tools is thin for a data product; a coin listing/discovery endpoint would be natural alongside the per-coin lookup, so the surface feels slightly under-scoped rather than fully earned.
Read-only coverage is coherent (event feed + coin snapshot), but there is no way to enumerate supported coins/topics or paginate/history-browse, which are likely dead ends for an agent exploring the dataset.
Maintenance
Related MCP Connectors
Hourly crypto news sentiment and typed market events, with sources on every signal.
Deduplicated crypto headlines from 37 RSS sources. Free preview; $0.0008/call via x402.
Market news with the measured price reaction attached to the event that caused it.
Multi-language crypto news with editorial sentiment + importance scoring; cites original publisher.
Related MCP Servers
- AlicenseAqualityDmaintenanceA cryptocurrency news aggregation server providing AI-powered sentiment ratings, trading signals, and real-time market updates. It allows users to search news by coin, source, or engine type and filter results based on AI impact scores and bullish/bearish signals.112,418MIT
- AlicenseBqualityFmaintenanceReal-time cryptocurrency news, analysis, and price predictions for AI agents. 5 tools to search 50,000+ articles across 12 categories, filter by 120+ asset tickers, and access content with built-in attribution. Free with attribution. SSE and Streamable HTTP transport.4MIT
- FlicenseNot gradedqualityBmaintenanceFree, no-auth crypto news API with 200+ sources for fetching real-time and historical crypto news.39 npm322-
- AlicenseNot gradedqualityDmaintenanceReal-time crypto news aggregation with sentiment scores and token mentions, enabling market analysis and trading signals via pay-per-call micropayments.MIT