# xdataapi: X (Twitter) data (remote · api.xdataapi.io)

Read-only public X (Twitter) data: profiles, tweets, threads, followers, search. Pay per result.

- Trust score: 80/100 (high trust)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-23

## Components

- remote · `api.xdataapi.io`: 80/100 (this document), [markdown](https://verifymcp.io/servers/io-xdataapi-xdataapi/api.md), [page](https://verifymcp.io/servers/io-xdataapi-xdataapi/api)

## Channel facts

- Endpoint: `https://api.xdataapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.3.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, 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-09-23.

- **Endpoint Security**: 97/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1115 tokens (~79/item across 14 items; 14 tools + 0 resources), lean.
  - 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**: 90/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 70% 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 14 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 15 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 xdataapi: X (Twitter) data MCP server?

xdataapi: X (Twitter) data is a hosted endpoint at https://api.xdataapi.io/mcp, so there is nothing to install locally. 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 --transport http io-xdataapi-xdataapi 'https://api.xdataapi.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-xdataapi-xdataapi": {
      "url": "https://api.xdataapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-xdataapi-xdataapi": {
      "type": "http",
      "url": "https://api.xdataapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-xdataapi-xdataapi]
url = "https://api.xdataapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-xdataapi-xdataapi": {
      "type": "remote",
      "url": "https://api.xdataapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-xdataapi-xdataapi --url 'https://api.xdataapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-xdataapi-xdataapi:
    url: "https://api.xdataapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-xdataapi-xdataapi": {
      "Transport": "http",
      "Url": "https://api.xdataapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-xdataapi-xdataapi -t streamable-http -u 'https://api.xdataapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-xdataapi-xdataapi": {
      "type": "http",
      "url": "https://api.xdataapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## 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-09-23 (score 80, +1)

- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 0.3.0+1270fca → 0.3.0+1006e3d

### 2026-09-22 (score 79, +40)

- [security improvement] Transport: unverified → pass
- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [security] Authorization: Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 70
- [functional] First check of Destructive annotations: pass
- [functional] First check of Schema quality: pass
- [functional] First check of Schema quality: good

### 2026-09-20 (score 39)

First indexed and scored.

## MCP tools (14)

### `get_user` (~50 tokens)

Profile

Profile of one X user by handle. 1 credit.

Input parameters:

- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `handle` (string, required): Handle, with or without @

### `get_users` (~53 tokens)

Profiles, batch

Profiles of up to 100 X users by handle in one call. 1 credit per profile found.

Input parameters:

- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `handles` (array, required)

### `get_user_tweets` (~88 tokens)

User tweets

Latest tweets of a user, newest first. 1 credit per tweet.

Input parameters:

- `count` (integer): Page size, 1 to 100
- `cursor` (string): next_cursor from the previous page
- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `user` (string, required): Handle (with or without @) or numeric user id

### `get_followers` (~91 tokens)

Followers

Followers of a user. 0.1 credit per profile. Not every account tier can read this; a 403 is free.

Input parameters:

- `count` (integer)
- `cursor` (string): next_cursor from the previous page
- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `user` (string, required): Handle (with or without @) or numeric user id

### `get_follower_ids` (~109 tokens)

Follower ids

Numeric ids of the followers of a user, no profiles. 0.02 credit per id. Same page as get_followers, so a page read there is a cache hit here. A 403 is free.

Input parameters:

- `count` (integer)
- `cursor` (string): next_cursor from the previous page
- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `user` (string, required): Handle (with or without @) or numeric user id

### `get_following` (~91 tokens)

Following

Accounts a user follows. 0.1 credit per profile. Not every account tier can read this; a 403 is free.

Input parameters:

- `count` (integer)
- `cursor` (string): next_cursor from the previous page
- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `user` (string, required): Handle (with or without @) or numeric user id

### `search_tweets` (~124 tokens)

Search

X advanced search. q takes the x.com operators. 1 credit per tweet or profile. product Latest is always available; Top may answer 403 (free).

Input parameters:

- `count` (integer)
- `cursor` (string): next_cursor from the previous page
- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `product` (string): Default Latest. People returns profiles.
- `q` (string, required): Query with x.com operators, e.g. "from:x since:2026-09-01 -filter:replies"

### `get_tweet` (~47 tokens)

Tweet

One tweet by numeric id, with its author. 1 credit.

Input parameters:

- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `id` (string, required)

### `get_tweets` (~52 tokens)

Tweets, batch

Up to 100 tweets by numeric id in one call. 1 credit per tweet found.

Input parameters:

- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `ids` (array, required)

### `get_thread` (~66 tokens)

Thread

A tweet with its thread and replies; the focal tweet comes first. 1 credit per tweet returned.

Input parameters:

- `cursor` (string): next_cursor from the previous page
- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `id` (string, required)

### `get_replies` (~61 tokens)

Replies

Direct replies to a tweet, one page. 1 credit per reply.

Input parameters:

- `cursor` (string): next_cursor from the previous page
- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `id` (string, required)

### `get_quotes` (~67 tokens)

Quotes

Tweets that quote a tweet, newest first. 1 credit per tweet.

Input parameters:

- `count` (integer)
- `cursor` (string): next_cursor from the previous page
- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `id` (string, required)

### `get_retweeters` (~83 tokens)

Retweeters

Accounts that retweeted a tweet. 0.5 credit per profile. Not every account tier can read this; a 403 is free.

Input parameters:

- `count` (integer)
- `cursor` (string): next_cursor from the previous page
- `fresh` (boolean): Bypass the cache. Costs 2x credits.
- `id` (string, required)

### `get_balance` (~20 tokens)

Balance

Credits left on this key and its rate limit. Free.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-xdataapi-xdataapi/api#diagnostics

## Score history

- 2026-09-23: 80
- 2026-09-22: 79
- 2026-09-21: 39
- 2026-09-20: 39

## Common questions

### What is the xdataapi: X (Twitter) data MCP server?

xdataapi: X (Twitter) data is an MCP server listed in the public MCP registry as io.xdataapi/xdataapi. Read-only public X (Twitter) data: profiles, tweets, threads, followers, search. Pay per result. This page covers its hosted endpoint (https://api.xdataapi.io/mcp).

### Is the xdataapi: X (Twitter) data MCP server safe to use?

xdataapi: X (Twitter) data scores 80 out of 100 on VerifyMCP. 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 xdataapi: X (Twitter) data MCP server expose?

xdataapi: X (Twitter) data exposes 14 tools: get_user, get_users, get_user_tweets, get_followers, get_follower_ids, and 9 more. Their descriptions and schemas cost roughly 1,002 tokens of context every time the server is loaded.

### Does the xdataapi: X (Twitter) data MCP server require authentication?

Yes. xdataapi: X (Twitter) data asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the xdataapi: X (Twitter) data MCP server still maintained?

xdataapi: X (Twitter) data is still listed as active in the MCP registry. We last reached this channel on 23 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.xdataapi.io/mcp
- Repository: https://github.com/xdataapi/xdataapi
- Website: https://xdataapi.io/docs/mcp
- Changelog RSS feed: https://verifymcp.io/servers/io-xdataapi-xdataapi/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-xdataapi-xdataapi/api.json
- HTML version of this page: https://verifymcp.io/servers/io-xdataapi-xdataapi/api
