MCP Server

Exchange.news — Crypto offers and campaigns

news.exchange/offers
Crypto & Web3 Public & reachable MCP 2025-11-25

What this MCP does

Provides read-only catalogs of crypto signup offers, referral codes, links, conditions, and campaign announcements.

get_code
Get one brand offer
Get a brand or alias, exact published code/link, offer type, instructions and caveats. A brand match never establishes region or product eligibility. Unknown brands return found:false.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['brand'], 'properties': {'brand': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': 'Brand name, slug or alias, e.g. OKX or ether.fi.'}, 'region': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Optional region context. Does not establish eligibility.'}, 'product': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Optional product context. Does not establish eligibility.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['found', 'offer', 'notice', 'disclosure'], 'properties': {'found': {'type': 'boolean'}, 'offer': {'anyOf': [{'type': 'object', 'required': ['slug', 'brand', 'categories', 'offer_type', 'label', 'box_title', 'cta', 'code', 'show_code', 'code_display_label', 'benefit', 'caveat', 'article_caveat', 'signup_url', 'canonical_url', 'guide_url', 'review_url', 'validity', 'code_validity', 'link_validity', 'code_expires_at', 'link_expires_at', 'expires_at', 'provenance', 'applicability', 'usage_steps', 'historical_verification_date'], 'properties': {'cta': {'type': 'string'}, 'code': {'type': ['string', 'null']}, 'slug': {'type': 'string'}, 'brand': {'type': 'string'}, 'label': {'type': 'string'}, 'caveat': {'type': 'string'}, 'benefit': {'type': 'string'}, 'validity': {'const': 'lifetime'}, 'box_title': {'type': 'string'}, 'guide_url': {'type': ['string', 'null']}, 'show_code': {'type': 'boolean'}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'expires_at': {'type': 'null'}, 'offer_type': {'type': 'string'}, 'provenance': {'type': 'array', 'items': {'type': 'string'}}, 'review_url': {'type': ['string', 'null']}, 'signup_url': {'type': 'string'}, 'usage_steps': {'type': 'array', 'items': {'type': 'string'}}, 'applicability': {'type': 'string'}, 'canonical_url': {'type': 'string'}, 'code_validity': {'anyOf': [{'const': 'lifetime'}, {'type': 'null'}]}, 'link_validity': {'const': 'lifetime'}, 'article_caveat': {'type': ['string', 'null']}, 'code_expires_at': {'type': 'null'}, 'link_expires_at': {'type': 'null'}, 'code_display_label': {'type': 'string'}, 'historical_verification_date': {'type': ['string', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'notice': {'type': 'string'}, 'disclosure': {'type': 'string'}}, 'additionalProperties': False}
list_brands
List brands and public offers
Browse brands with their public offer type, visible code or null, lifetime signup link and full conditions. Optional exact category filter. No live eligibility check.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0}, 'category': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Optional category: exchanges, wallets, cards, hardware, analytics or defi.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['count', 'total', 'offset', 'has_more', 'brands', 'notice', 'disclosure'], 'properties': {'count': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'total': {'type': 'integer', 'minimum': 0}, 'brands': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'brand', 'categories', 'offer_type', 'label', 'box_title', 'cta', 'code', 'show_code', 'code_display_label', 'benefit', 'caveat', 'article_caveat', 'signup_url', 'canonical_url', 'guide_url', 'review_url', 'validity', 'code_validity', 'link_validity', 'code_expires_at', 'link_expires_at', 'expires_at', 'provenance', 'applicability', 'usage_steps', 'historical_verification_date'], 'properties': {'cta': {'type': 'string'}, 'code': {'type': ['string', 'null']}, 'slug': {'type': 'string'}, 'brand': {'type': 'string'}, 'label': {'type': 'string'}, 'caveat': {'type': 'string'}, 'benefit': {'type': 'string'}, 'validity': {'const': 'lifetime'}, 'box_title': {'type': 'string'}, 'guide_url': {'type': ['string', 'null']}, 'show_code': {'type': 'boolean'}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'expires_at': {'type': 'null'}, 'offer_type': {'type': 'string'}, 'provenance': {'type': 'array', 'items': {'type': 'string'}}, 'review_url': {'type': ['string', 'null']}, 'signup_url': {'type': 'string'}, 'usage_steps': {'type': 'array', 'items': {'type': 'string'}}, 'applicability': {'type': 'string'}, 'canonical_url': {'type': 'string'}, 'code_validity': {'anyOf': [{'const': 'lifetime'}, {'type': 'null'}]}, 'link_validity': {'const': 'lifetime'}, 'article_caveat': {'type': ['string', 'null']}, 'code_expires_at': {'type': 'null'}, 'link_expires_at': {'type': 'null'}, 'code_display_label': {'type': 'string'}, 'historical_verification_date': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'maxItems': 50}, 'notice': {'type': 'string'}, 'offset': {'type': 'integer', 'minimum': 0}, 'has_more': {'type': 'boolean'}, 'disclosure': {'type': 'string'}}, 'additionalProperties': False}
list_campaigns
List published campaign announcements
List source-backed campaign announcements, official source links and published event windows. Dates are independent of lifetime referral codes. Does not claim campaigns are active or that a user qualifies.
Read only Idempotent
Input schema
{'type': 'object', 'required': [], 'properties': {'brand': {'type': 'string', 'maxLength': 160, 'minLength': 1, 'description': 'Optional exact provider brand, slug or alias.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['count', 'total', 'offset', 'has_more', 'campaigns', 'notice', 'disclosure'], 'properties': {'count': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'total': {'type': 'integer', 'minimum': 0}, 'notice': {'type': 'string'}, 'offset': {'type': 'integer', 'minimum': 0}, 'has_more': {'type': 'boolean'}, 'campaigns': {'type': 'array', 'items': {'type': 'object', 'required': ['article_id', 'slug', 'provider', 'brand', 'title', 'canonical_url', 'published_at', 'region', 'window', 'events', 'provenance', 'eligibility', 'code_benefit_separate'], 'properties': {'slug': {'type': 'string'}, 'brand': {'type': 'string'}, 'title': {'type': 'string'}, 'events': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'date', 'kind', 'source_urls'], 'properties': {'date': {'type': 'string'}, 'kind': {'type': 'string'}, 'label': {'type': 'string'}, 'source_urls': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'region': {'type': ['string', 'null']}, 'window': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': ['string', 'null']}, 'start': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'provider': {'type': 'string'}, 'article_id': {'type': 'string'}, 'provenance': {'type': 'array', 'items': {'type': 'string'}}, 'eligibility': {'type': 'string'}, 'published_at': {'type': ['string', 'null']}, 'canonical_url': {'type': 'string'}, 'code_benefit_separate': {'const': True}}, 'additionalProperties': False}, 'maxItems': 50}, 'disclosure': {'type': 'string'}}, 'additionalProperties': False}
search_codes
Search public offers
Search brand aliases, categories and benefits. Generic promo/code words are ignored. Exact brand matches come first. Returns only catalog records; unknown queries return an empty array. Product and regional applicability remain subject to each caveat.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 240, 'minLength': 1, 'description': 'Search text, e.g. OKX EU stock perps discount.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 10000, 'minimum': 0}, 'region': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Optional region context. Does not establish eligibility.'}, 'product': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Optional product context. Does not establish eligibility.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['count', 'total', 'offset', 'has_more', 'results', 'notice', 'disclosure'], 'properties': {'count': {'type': 'integer', 'maximum': 50, 'minimum': 0}, 'total': {'type': 'integer', 'minimum': 0}, 'notice': {'type': 'string'}, 'offset': {'type': 'integer', 'minimum': 0}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'brand', 'categories', 'offer_type', 'label', 'box_title', 'cta', 'code', 'show_code', 'code_display_label', 'benefit', 'caveat', 'article_caveat', 'signup_url', 'canonical_url', 'guide_url', 'review_url', 'validity', 'code_validity', 'link_validity', 'code_expires_at', 'link_expires_at', 'expires_at', 'provenance', 'applicability', 'usage_steps', 'historical_verification_date'], 'properties': {'cta': {'type': 'string'}, 'code': {'type': ['string', 'null']}, 'slug': {'type': 'string'}, 'brand': {'type': 'string'}, 'label': {'type': 'string'}, 'caveat': {'type': 'string'}, 'benefit': {'type': 'string'}, 'validity': {'const': 'lifetime'}, 'box_title': {'type': 'string'}, 'guide_url': {'type': ['string', 'null']}, 'show_code': {'type': 'boolean'}, 'categories': {'type': 'array', 'items': {'type': 'string'}}, 'expires_at': {'type': 'null'}, 'offer_type': {'type': 'string'}, 'provenance': {'type': 'array', 'items': {'type': 'string'}}, 'review_url': {'type': ['string', 'null']}, 'signup_url': {'type': 'string'}, 'usage_steps': {'type': 'array', 'items': {'type': 'string'}}, 'applicability': {'type': 'string'}, 'canonical_url': {'type': 'string'}, 'code_validity': {'anyOf': [{'const': 'lifetime'}, {'type': 'null'}]}, 'link_validity': {'const': 'lifetime'}, 'article_caveat': {'type': ['string', 'null']}, 'code_expires_at': {'type': 'null'}, 'link_expires_at': {'type': 'null'}, 'code_display_label': {'type': 'string'}, 'historical_verification_date': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'maxItems': 50}, 'has_more': {'type': 'boolean'}, 'disclosure': {'type': 'string'}}, 'additionalProperties': False}
Added
list_campaigns
Sept. 27, 2026, 2:40 a.m.
Added
search_codes
Sept. 27, 2026, 2:40 a.m.
Added
get_code
Sept. 27, 2026, 2:40 a.m.
Added
list_brands
Sept. 27, 2026, 2:40 a.m.