# MarketTwits news + Russian market data (x402) (npm · x402-markettwits-mcp)

Pay-per-call market news, CBR/MOEX/Rosstat data and Telegram tools; auto-pays USDC on Base via x402

- Trust score: 69/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-23

## Components

- npm · `x402-markettwits-mcp`: 69/100 (this document), [markdown](https://verifymcp.io/servers/croomee-x402-markettwits-mcp/x402-markettwits-mcp.md), [page](https://verifymcp.io/servers/croomee-x402-markettwits-mcp/x402-markettwits-mcp)

## Channel facts

- Registry: `npm`
- Package: `x402-markettwits-mcp`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-23.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 112 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 5112 tokens (~189/item across 27 items; 27 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 27 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 28 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the MarketTwits news + Russian market data (x402) MCP server?

MarketTwits news + Russian market data (x402) runs locally as an npm package, launched with npx -y x402-markettwits-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add croomee-x402-markettwits-mcp -- npx -y x402-markettwits-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "croomee-x402-markettwits-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "x402-markettwits-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "croomee-x402-markettwits-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "x402-markettwits-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add croomee-x402-markettwits-mcp -- npx -y x402-markettwits-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "croomee-x402-markettwits-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "x402-markettwits-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add croomee-x402-markettwits-mcp --command npx --arg -y --arg x402-markettwits-mcp
```

### Hermes

```yaml
mcp_servers:
  croomee-x402-markettwits-mcp:
    command: "npx"
    args: ["-y", "x402-markettwits-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "croomee-x402-markettwits-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "x402-markettwits-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add croomee-x402-markettwits-mcp -t stdio -c npx -a -y x402-markettwits-mcp
```

### Other

```json
{
  "mcpServers": {
    "croomee-x402-markettwits-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "x402-markettwits-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-22 (score 69)

First indexed and scored.

## MCP tools (27)

### `get_moex_index` (~191 tokens)

MOEX index values (IMOEX, RTSI, sector indices) or the index catalogue

MOEX index values (IMOEX, RTSI, sector indices) or the index catalogue. Index level, change/change_pct vs previous close, open/high/low, month/year change, annual high/low and traded value for up to 5 codes (default IMOEX), or code=list for the catalogue of MOEX stock indices (SNDX board + RTS*). Delayed ~15 minutes. Unknown codes -> 404 (not settled).

GET /moex/index — price $0.003 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `code` (string): Index code(s), up to 5 comma-separated (default IMOEX; e.g. RTSI, MOEXBMI, MOEXOG), or `list` for the catalogue of stock indices Default: IMOEX.

### `get_moex_movers` (~210 tokens)

Top gainers and losers on the Moscow Exchange main board (TQBR), with market breadth

Top gainers and losers on the Moscow Exchange main board (TQBR), with market breadth. Ranks TQBR shares by change vs previous close (turnover >= min_value RUB, default 5 mln): top `limit` gainers and losers (default 10, max 50), advancers/decliners/unchanged. Before the session's first trades (mode previous_session) it ranks the last completed session from ISS history. Delayed ~15 minutes.

GET /moex/movers — price $0.004 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `limit` (integer): Gainers and losers to return (each side, default 10, max 50) Default: 10.
- `min_value`: Minimum turnover in RUB to count a stock (default 5000000; filters illiquid names) Default: 5000000.

### `get_moex_quote` (~191 tokens)

Moscow Exchange stock quote (delayed ~15 min): price, change, volume, bid/offer

Moscow Exchange stock quote (delayed ~15 min): price, change, volume, bid/offer. One MOEX shares-market ticker from MOEX ISS (main board TQBR when listed): price (last trade, or previous close before the session's first trade), change/change_pct vs previous close, open/high/low, bid/offer, volume, value_rub, market cap, trading status. Data is delayed ~15 minutes (delayed: true). Unknown ticker -> 404 (not settled).

GET /moex/quote — price $0.003 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `ticker` (string, required): MOEX ticker (SECID) on the shares market, e.g. SBER, GAZP, LKOH, YDEX, T

### `check_news_alert` (~164 tokens)

Keyword alert check: how many matching items in the last N hours

Keyword alert check: how many matching items in the last N hours. Count of news matching q (same matching as /news/search) published in the last N hours (1-168, default 24), plus the 5 most recent

GET /news/alerts/check — price $0.004 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `hours` (integer): Look-back window in hours (default 24, clamped to 1-168) Default: 24.
- `q` (string, required): Keywords (case-insensitive). Several words = all must match. Hashtags match with or without '#', e.g. 'oil', '#Fed rates'.

### `check_new_high_alert` (~175 tokens)

Is there new HIGH-importance news on a keyword in the last N hours?

Is there new HIGH-importance news on a keyword in the last N hours?. Checks only importance=high news matching q in the last N hours (1-168, default 6): has_new, count and the latest item. Cheap poll for market-moving alerts on a topic/ticker.

GET /news/alerts/new — price $0.005 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `hours` (integer): Look-back window in hours (default 6, clamped to 1-168) Default: 6.
- `q` (string, required): Keywords (case-insensitive). Several words = all must match. Hashtags match with or without '#', e.g. 'oil', '#Fed rates'.

### `get_country_news` (~228 tokens)

News about one country (flag emoji + country keywords) with counts and top topics

News about one country (flag emoji + country keywords) with counts and top topics. Items of the last N hours (1-168, default 24; importance all|high|medium|low) that carry the country's flag emoji or mention it (e.g. RU: Russia/Kremlin/Bank of Russia/MOEX; US: USA/Fed/White House): count, high_count, share_of_window, top_topics and the 10 latest headlines.

GET /news/country — price $0.004 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `code` (string, required): ISO 3166-1 alpha-2 country code (e.g. US, RU, CN, UA, IR, GB; UK = GB; EU accepted)
- `hours` (integer): Look-back window in hours (default 24, clamped to 1-168) Default: 24.
- `importance` (string): Importance filter (default all) Default: all.

### `get_data_surprises` (~217 tokens)

Macro data and earnings vs. expectations: actual, expected, previous, surprise

Macro data and earnings vs. expectations: actual, expected, previous, surprise. Parses releases like 'US Pending Home Sales (Sep) = -7.3% m/m (exp. -0.5% / prev. +0.3%)' and earnings lines like '3Q REV. $14.58B, EST. $12.87B' from news of the last N hours (1-168, default 24; optional q filter): indicator, actual, expected, previous, unit, surprise (actual - expected), surprise_pct and direction above/below/inline.

GET /news/data-surprises — price $0.006 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `hours` (integer): Look-back window in hours (default 24, clamped to 1-168) Default: 24.
- `q` (string): Optional keyword filter (same matching as /news/search)

### `get_news_digest` (~165 tokens)

Sectioned briefing: central banks, macro, energy, equities, crypto, geopolitics

Sectioned briefing: central banks, macro, energy, equities, crypto, geopolitics. Groups news of the last N hours (1-48, default 24) into central_banks, macro, energy, equities, crypto and geopolitics by keyword rules (an item may appear in several), each with count, high_count and up to 5 headlines (high first, then newest), plus top_topics of high items.

GET /news/digest — price $0.01 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `hours` (integer): Look-back window in hours (default 24, clamped to 1-48) Default: 24.

### `get_important_news` (~97 tokens)

High-importance news only (newest first)

High-importance news only (newest first). Only importance=high MarketTwits news (newest first), limit 1-50

GET /news/important — price $0.003 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `limit` (integer): Number of items (newest first) Default: 20.

### `get_latest_news` (~94 tokens)

Latest translated MarketTwits news (newest first)

Latest translated MarketTwits news (newest first). Latest translated MarketTwits news (newest first), limit 1-50

GET /news/latest — price $0.003 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `limit` (integer): Number of items (newest first) Default: 20.

### `get_news_movers` (~210 tokens)

Top gainers/losers reported in the news ('#TICKER = ±X%')

Top gainers/losers reported in the news ('#TICKER = ±X%'). Parses '#TICKER [Name] = ±X%' price-move mentions (stocks, indices, crypto; RU/US/... from the flag) in news of the last N hours (1-72, default 6), newest mention per ticker, |move| >= min_pct (default 0): top 10 gainers and top 10 losers with the source item.

GET /news/movers — price $0.005 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `hours` (integer): Look-back window in hours (default 6, clamped to 1-72) Default: 6.
- `min_pct`: Minimum absolute move in percent (default 0, max 100), e.g. 3 or 2.5 Default: 0.

### `search_news` (~135 tokens)

Keyword search in translated news (newest first)

Keyword search in translated news (newest first). Case-insensitive keyword search in translated MarketTwits news (all words must match), limit 1-50

GET /news/search — price $0.003 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `limit` (integer): Number of items (newest first) Default: 20.
- `q` (string, required): Keywords (case-insensitive). Several words = all must match. Hashtags match with or without '#', e.g. 'oil', '#Fed rates'.

### `get_news_sentiment` (~232 tokens)

Heuristic bullish/bearish tone of news on a keyword (lexicon, not a model)

Heuristic bullish/bearish tone of news on a keyword (lexicon, not a model). Scores each item matching q in the last N hours (1-168, default 24) with a keyword/emoji lexicon (rise/beat/upgrade vs. fall/miss/sanctions, ⬆️/⬇️) plus explicit '= ±X%' moves, and returns bullish/bearish/neutral counts, score = (bullish - bearish)/count in [-1, 1], a label and examples. method is always 'heuristic'.

GET /news/sentiment — price $0.005 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `hours` (integer): Look-back window in hours (default 24, clamped to 1-168) Default: 24.
- `q` (string, required): Keywords (case-insensitive). Several words = all must match. Hashtags match with or without '#', e.g. 'oil', '#Fed rates'.

### `get_news_since` (~172 tokens)

Incremental feed: items newer than the id you already have (cursor polling)

Incremental feed: items newer than the id you already have (cursor polling). All stored items with id > id (oldest first, up to limit 1-100, default 50) plus next_id/has_more for the next call. The cheapest way for a bot to poll without duplicates: keep next_id and pass it back.

GET /news/since — price $0.002 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `id` (required): Last item id you already have (0 = from the oldest stored item). Items with a larger id are returned, oldest first.
- `limit` (integer): Max items per page (default 50, max 100) Default: 50.

### `summarize_news` (~163 tokens)

Short extractive English summary of the latest news on a keyword

Short extractive English summary of the latest news on a keyword. 3-5 sentence extractive summary of the latest news matching q (limit 1-50, default 10): lead sentence + de-duplicated headlines, high-importance first

GET /news/summary — price $0.008 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `limit` (integer): Number of latest matching items to summarize (default 10, max 50) Default: 10.
- `q` (string, required): Keywords (case-insensitive). Several words = all must match. Hashtags match with or without '#', e.g. 'oil', '#Fed rates'.

### `summarize_recent_news` (~177 tokens)

Extractive English summary of news on a keyword from the last N hours

Extractive English summary of news on a keyword from the last N hours. 3-5 sentence extractive summary of news matching q published in the last N hours (1-168, default 12; up to 50 items), with high_count. Use for 'what happened with X today'.

GET /news/summary/recent — price $0.007 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `hours` (integer): Look-back window in hours (default 12, clamped to 1-168) Default: 12.
- `q` (string, required): Keywords (case-insensitive). Several words = all must match. Hashtags match with or without '#', e.g. 'oil', '#Fed rates'.

### `get_top_topics` (~130 tokens)

Top 5 keywords/hashtags in high-importance news of the last N hours

Top 5 keywords/hashtags in high-importance news of the last N hours. Top 5 topics (hashtags, names, keywords; counted once per item) across high-importance news of the last N hours (1-72, default 6)

GET /news/top-topics — price $0.005 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `hours` (integer): Look-back window in hours (default 6, clamped to 1-72) Default: 6.

### `get_trending_topics` (~154 tokens)

Trending topics in high-importance news with change vs. the previous window

Trending topics in high-importance news with change vs. the previous window. Top 5 topics (hashtags, names, keywords; counted once per item) in high-importance news of the last N hours (1-72, default 6), each with prev_count in the previous equal-length window, change = count - prev_count, and latest_id/latest_source_url

GET /news/topics/trending — price $0.004 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `hours` (integer): Look-back window in hours (default 6, clamped to 1-72) Default: 6.

### `compare_products` (~200 tokens)

Compare 2-5 Wildberries products: prices, cheapest, price spread, stock

Compare 2-5 Wildberries products: prices, cheapest, price spread, stock. Fetches 2-5 product URLs (urls=comma-separated, or repeated url=) with the same live chain as /product/info and returns per-item title/price/original_price/in_stock/rating/reviews_count, the cheapest and most expensive item, price_diff (abs RUB and percent of the cheapest), in_stock_count and all_in_stock. Items that fail carry error/detail; returns 502 (payment not settled) only if fewer than 2 items returned a price.

GET /product/compare — price $0.006 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `urls` (string, required): 2-5 comma-separated product URLs (Wildberries; Ozon is accepted but currently blocked by its anti-bot). Alternatively repeat url= instead.

### `get_product_price_history` (~251 tokens)

Wildberries price history: weekly CDN points + observed + live price, min/max/avg, 30-day change

Wildberries price history: weekly CDN points + observed + live price, min/max/avg, 30-day change. Price history for a Wildberries product: weekly points from WB's public price-history CDN (weekly_cdn), prices this service observed on earlier lookups (observed; in-memory, reset on restart), and the current live price (live). Returns points (oldest first), current, stats min/max/avg, change_30d (vs. the latest point at least 30 days old) and history_limited:true with a note when only the current price exists. Ozon has no public history (only live, currently blocked). 502 (not settled) only when no price at all is available.

GET /product/history — price $0.004 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `url` (string, required): Product page URL: https://www.wildberries.ru/catalog/<id>/detail.aspx (also wb.ru, *.wildberries.ru) or https://www.ozon.ru/product/<slug>-<id>/ (also *.ozon.ru)

### `get_product_info` (~216 tokens)

Wildberries / Ozon product card: title, price (RUB), rating, reviews, stock

Wildberries / Ozon product card: title, price (RUB), rating, reviews, stock. Live product data for a Wildberries (wildberries.ru, wb.ru) or Ozon (ozon.ru) product URL: title, current price in RUB (original_amount = list price before discount when known), rating, reviews_count and availability. Cached 10 min per product. If the marketplace blocks or fails, returns 502 upstream_unavailable and the payment is NOT settled. Can take up to ~40s when the live page has to be rendered.

GET /product/info — price $0.004 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `url` (string, required): Product page URL: https://www.wildberries.ru/catalog/<id>/detail.aspx (also wb.ru, *.wildberries.ru) or https://www.ozon.ru/product/<slug>-<id>/ (also *.ozon.ru)

### `monitor_product_price` (~266 tokens)

Price-target check for one product: is the current price at or below target_price?

Price-target check for one product: is the current price at or below target_price?. Fetches one Wildberries/Ozon product (same live chain as /product/info) and compares it with target_price (RUB): below_target (current <= target and not out of stock), current_price, diff_abs/diff_percent, in_stock, the full product object and checked_at. Use it as a paid poll for price alerts. If the product is out of stock with no price it returns 200 with below_target false, current_price null, in_stock false and a note; if no product data can be fetched at all it returns 502 and the payment is not settled.

GET /product/monitor — price $0.005 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `target_price` (required): Target price in RUB, a positive number (e.g. 1500 or 1499.90)
- `url` (string, required): Product page URL: https://www.wildberries.ru/catalog/<id>/detail.aspx (also wb.ru, *.wildberries.ru) or https://www.ozon.ru/product/<slug>-<id>/ (also *.ozon.ru)

### `get_ru_fuel_prices` (~195 tokens)

Russian retail fuel prices (AI-92/95/98, diesel) — Rosstat weekly averages

Russian retail fuel prices (AI-92/95/98, diesel) — Rosstat weekly averages. Average retail pump prices across Russia from Rosstat's weekly release (rosstat.gov.ru nedel_sred_cen.xlsx): price (RUB/l), as_of, week-over-week change, 4-week and year-to-date change and `weeks` of history per fuel. Rosstat publishes weekly (usually Wednesday, prices as of Monday); cached 6 h, a stale copy (stale: true) is served for up to 14 days if Rosstat is unreachable.

GET /ru/fuel — price $0.003 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `weeks` (integer): Weekly history points to include per fuel (0-52, default 4) Default: 4.

### `get_cbr_fx_rates` (~198 tokens)

Official Bank of Russia FX rates (RUB) with day-over-day change

Official Bank of Russia FX rates (RUB) with day-over-day change. CBR official exchange rates from cbr.ru XML_daily.asp for a date (default: the latest set) and optional currency codes: per currency nominal, value (RUB per nominal), per_unit (RUB per 1 unit), previous set's per_unit, change and change_pct. Cached 30 min (past dates 7 days).

GET /ru/fx — price $0.0015 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `codes` (string): Comma-separated ISO currency codes (default: all ~55 CBR currencies), e.g. USD,EUR,CNY
- `date` (string): Rates date YYYY-MM-DD (default: latest set by CBR; 1992-07-01 .. tomorrow)

### `get_cbr_key_rate` (~171 tokens)

Bank of Russia key rate: current level, since when, and recent changes

Bank of Russia key rate: current level, since when, and recent changes. Current CBR key rate (% p.a.) from the cbr.ru DailyInfo web service (KeyRateXML; the hd_base/KeyRate page as fallback): rate, as_of, effective_since, previous_rate, last_change_bp and every change in the last `months` (default 24) newest first, plus min/max in the window. Cached 3 h.

GET /ru/key-rate — price $0.0015 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `months` (integer): History window in months for `changes` (default 24, max 120) Default: 24.

### `get_telegram_channel_latest` (~199 tokens)

Latest posts of a public Telegram channel (text, date, views, link)

Latest posts of a public Telegram channel (text, date, views, link). Reads the public web preview t.me/s/<channel> (no login): newest `limit` posts (default 20, max 50) with id, date, text (HTML stripped, emoji kept), views, link, media types and channel title/subscribers. Channels without a public preview or that do not exist -> 404 (not settled). Cached 2 min.

GET /tg/channel/latest — price $0.004 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `channel` (string, required): Public Telegram channel username (5-32 chars; '@name' or a t.me link also accepted), e.g. markettwits
- `limit` (integer): Messages to return (default 20, max 50) Default: 20.

### `search_telegram_channels` (~212 tokens)

Search up to 5 public Telegram channels for a keyword

Search up to 5 public Telegram channels for a keyword. Runs Telegram's own channel search (t.me/s/<channel>?q=) on 1-5 public channels, merges the matches newest first (up to `limit`, default 20) with per-channel counts/errors. 404 when no channel exists, 502 when all fail; partial failures are reported in per_channel.

GET /tg/search — price $0.006 USDC per call, paid automatically via x402 on Base (only successful responses are charged; 400/404/502 are free).

Input parameters:

- `channels` (string, required): 1-5 comma-separated public channel usernames, e.g. markettwits,rbc_news
- `limit` (integer): Messages to return (default 20, max 50) Default: 20.
- `q` (string, required): Keywords (case-insensitive). Several words = all must match. Hashtags match with or without '#', e.g. 'oil', '#Fed rates'.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/croomee-x402-markettwits-mcp/x402-markettwits-mcp#diagnostics

## Score history

- 2026-10-23: 69
- 2026-10-22: 69

## Common questions

### What is the MarketTwits news + Russian market data (x402) MCP server?

MarketTwits news + Russian market data (x402) is an MCP server listed in the public MCP registry as io.github.Croomee/x402-markettwits-mcp. Pay-per-call market news, CBR/MOEX/Rosstat data and Telegram tools; auto-pays USDC on Base via x402. This page covers its npm package (x402-markettwits-mcp).

### Is the MarketTwits news + Russian market data (x402) MCP server safe to use?

MarketTwits news + Russian market data (x402) scores 69 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 23 October 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the MarketTwits news + Russian market data (x402) MCP server expose?

MarketTwits news + Russian market data (x402) exposes 27 tools: get_moex_index, get_moex_movers, get_moex_quote, check_news_alert, check_new_high_alert, and 22 more. Their descriptions and schemas cost roughly 5,013 tokens of context every time the server is loaded.

### Is the MarketTwits news + Russian market data (x402) MCP server still maintained?

MarketTwits news + Russian market data (x402) is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the MarketTwits news + Russian market data (x402) MCP server under?

MarketTwits news + Russian market data (x402) declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/x402-markettwits-mcp
- Socket report: https://socket.dev/npm/package/x402-markettwits-mcp
- Repository: https://github.com/Croomee/x402-markettwits-news
- Website: https://x402-markettwits-news.onrender.com/openapi.json
- Changelog RSS feed: https://verifymcp.io/servers/croomee-x402-markettwits-mcp/x402-markettwits-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/croomee-x402-markettwits-mcp/x402-markettwits-mcp.json
- HTML version of this page: https://verifymcp.io/servers/croomee-x402-markettwits-mcp/x402-markettwits-mcp
