Crypto events calendar: dated, sourced and impact-scored events for 14,000+ coins.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
CoinMarketCal API key (free tier available at https://coinmarketcal.com/developer)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Returns the full coin payload by slug. 404 when the slug doesn't match any coin (tracked or otherwise).
Coin slug (e.g. `bitcoin`). Lowercase, URL-safe.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Returns the full coin payload by slug. 404 when the slug doesn't match any coin (tracked or otherwise).
| Argument | Type | Description |
|---|---|---|
| slug* | string | Coin slug (e.g. `bitcoin`). Lowercase, URL-safe. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"description": "Coin slug (e.g. `bitcoin`). Lowercase, URL-safe."
}
}
}Returns the full event payload by id. Tier-gated fields follow the caller's plan. A recently removed event returns `410 Gone` with its `id` and `cancelledAt`. An unknown, temporarily unpublished, or out-of-window event returns `404`.
| Argument | Type | Description |
|---|---|---|
| id* | string | The event id, as returned by `GET /v2/events`. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The event id, as returned by `GET /v2/events`."
}
}
}Returns the authenticated key's monthly usage counters. Does not consume quota beyond the cost of the HTTP call itself. Use this to backoff before hitting 429s or to drive alerts in your integration.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Returns every category in the editorial taxonomy with the count of upcoming events per category (tier-windowed). Standard+ only. Query parameters are ignored; the list is not paginated.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Returns a paginated list of coins ordered by `rank` ascending (top-ranked first). Pass the `tracked` filter only when you need to limit results by editorial coverage.
| Argument | Type | Description |
|---|---|---|
| q | string | Free-text search across name + symbol. Case-insensitive substring match. |
| limit | integer | Page size (1–200). |
| cursor | string | Opaque pagination cursor. |
| tracked | boolean | Filter by editorial coverage. Omit to return both tracked and untracked coins; set `true` for actively monitored coins only; set `false` for coins outside active coverage only. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"description": "Free-text search across name + symbol. Case-insensitive substring match."
},
"limit": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Page size (1–200)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor."
},
"tracked": {
"type": "boolean",
"description": "Filter by editorial coverage. Omit to return both tracked and untracked coins; set `true` for actively monitored coins only; set `false` for coins outside active coverage only."
}
}
}Returns removal records ordered by `cancelledAt`, then `id`. Available to every API V2 tier. Poll regularly and never leave more than 90 days between successful requests, even when webhooks are enabled.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Page size (1–100). |
| since | string | Inclusive cancellation-time lower bound. Accepts RFC3339 or `YYYY-MM-DD`; defaults to 90 days ago. |
| cursor | string | Opaque pagination cursor returned in the previous response's `meta.cursor`. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size (1–100)."
},
"since": {
"type": "string",
"description": "Inclusive cancellation-time lower bound. Accepts RFC3339 or `YYYY-MM-DD`; defaults to 90 days ago."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor returned in the previous response's `meta.cursor`."
}
}
}Returns a paginated list of upcoming and historical events within the date window available to the caller's plan. Default sort is `date asc` (soonest first). The `coins`, `categories`, and date filters compose with `AND`.
| Argument | Type | Description |
|---|---|---|
| to | string | Inclusive upper bound on `date`. Default = today + tier upcoming window (e.g. 7 days on Free, 90 days on Standard, full on Pro+). |
| from | string | Inclusive lower bound on `date`. Default = today. Free and Standard clamp past values to today; Pro clamps them to the previous 30 days; Elite and Enterprise can query the complete public catalog history since 2017. |
| coins | string | Comma-separated coin **slugs** (e.g. `bitcoin,ethereum`). Tickers are accepted but **strongly discouraged**; symbols collide across coins (e.g. `UNI` resolves to several different projects). Use `GET /v2/coins` to look up canonical slugs. |
| limit | integer | Page size (1–100). |
| cursor | string | Opaque pagination cursor returned in the previous response's `meta.cursor`. |
| sortBy | string | Sort order. Default `date_asc` (soonest first). `impact_desc` is Elite+ only; lower tiers receive 403. |
| keyword | string | Free-text search across event title and description. Case-insensitive substring match. |
| impactMin |
| number |
| Lower bound on the precise impact score (0.0–10.0). Elite+ only; lower tiers receive 403. |
| categories | string | Comma-separated category ids. Case-insensitive. Standard+ only; Free requests using this filter return 403. Use `GET /v2/categories` to look up the canonical id list. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"type": "string",
"description": "Inclusive upper bound on `date`. Default = today + tier upcoming window (e.g. 7 days on Free, 90 days on Standard, full on Pro+)."
},
"from": {
"type": "string",
"description": "Inclusive lower bound on `date`. Default = today. Free and Standard clamp past values to today; Pro clamps them to the previous 30 days; Elite and Enterprise can query the complete public catalog history since 2017."
},
"coins": {
"type": "string",
"description": "Comma-separated coin **slugs** (e.g. `bitcoin,ethereum`). Tickers are accepted but **strongly discouraged**; symbols collide across coins (e.g. `UNI` resolves to several different projects). Use `GET /v2/coins` to look up canonical slugs."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page size (1–100)."
},
"cursor": {
"type": "string",
"description": "Opaque pagination cursor returned in the previous response's `meta.cursor`."
},
"sortBy": {
"enum": [
"date_asc",
"date_desc",
"created_desc",
"created_desc_and_updated_desc",
"impact_desc"
],
"type": "string",
"description": "Sort order. Default `date_asc` (soonest first). `impact_desc` is Elite+ only; lower tiers receive 403."
},
"keyword": {
"type": "string",
"description": "Free-text search across event title and description. Case-insensitive substring match."
},
"impactMin": {
"type": "number",
"maximum": 10,
"minimum": 0,
"description": "Lower bound on the precise impact score (0.0–10.0). Elite+ only; lower tiers receive 403."
},
"categories": {
"type": "string",
"description": "Comma-separated category ids. Case-insensitive. Standard+ only; Free requests using this filter return 403. Use `GET /v2/categories` to look up the canonical id list."
}
}
}