Xearch MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EXA_API_KEY | No | Optional Exa API key. The keyless endpoint works without it. | |
| BRAVE_API_KEY | No | Add Brave's official search API to the fallback chain. | |
| XEARCH_ENRICH | No | Complete truncated note posts via FxTwitter. | 1 |
| XEARCH_EXA_URL | No | Override the Exa MCP endpoint. | https://mcp.exa.ai/mcp |
| XEARCH_TIMEOUT | No | Upstream request timeout in seconds. | 20 |
| PARALLEL_API_KEY | No | Optional Parallel API key for paid quota. The keyless endpoint works without it. | |
| XEARCH_LOG_LEVEL | No | Logging level: `DEBUG`, `INFO`, `WARNING`, `ERROR`, or `CRITICAL`. | WARNING |
| XEARCH_USER_AGENT | No | Override the HTTP User-Agent. | |
| XEARCH_MCP_RESULTS | No | Results requested from Exa per query (1-20). | 20 |
| XEARCH_PARALLEL_URL | No | Override the Parallel MCP endpoint. | https://search.parallel.ai/mcp |
| XEARCH_BRAVE_COUNTRY | No | Country code for Brave's API. | us |
| XEARCH_RESOLVE_LINKS | No | Default for the `resolve_links` tool argument. | 1 |
| XEARCH_LINK_CACHE_TTL | No | `t.co` resolution cache TTL in seconds. | 3600 |
| XEARCH_SEARCH_BACKEND | No | Search backend: `auto`, `parallel`, `exa`, `ddg`, `brave`, or `brave-api`. | auto |
| XEARCH_HEALTH_TWEET_ID | No | Post used by `status(live=true)`. | 1925502601757372656 |
| XEARCH_MAX_CONCURRENCY | No | Parallel hydration requests. | 4 |
| XEARCH_TWEET_CACHE_TTL | No | Raw post cache TTL in seconds. | 600 |
| XEARCH_SEARCH_CACHE_TTL | No | Search result page cache TTL in seconds. | 180 |
| XEARCH_CACHE_MAX_ENTRIES | No | Max entries per cache. | 512 |
| XEARCH_PROFILE_CACHE_TTL | No | Profile cache TTL in seconds. | 900 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_tweetA | Fetch one X/Twitter post by ID or URL. Returns the author, timestamp, full text (long posts are enriched when truncated), metrics, media, card, quoted post, and resolved t.co links. The public syndication endpoint returns one post, not a thread. Replies and the rest of the conversation are not available. |
| get_tweetsA | Fetch multiple posts in one call. Failed items are returned individually with an error; one bad ID does not fail the batch. |
| search_tweetsA | Search X/Twitter posts through public web indexes. Each hit is hydrated through X's public syndication endpoint, so results include full tweet text, author, date, metrics, and media when available. This is web-index search, not X's live search. Very recent posts may not be indexed yet. By default the server uses the same keyless Exa and Parallel MCP search endpoints as OpenCode, then falls back to DuckDuckGo and Brave. Set BRAVE_API_KEY to add Brave's official API. |
| get_user_tweetsA | Fetch recent posts from one X account. This is a convenience wrapper around search_tweets with from:, filtered to exactly that author. |
| get_userA | Read public profile metadata for an X account. Returns the display name, bio, avatar, and banner from the public profile page. Follower and following counts are not exposed by that page. |
| statusA | Report Xearch configuration, caches, and optional endpoint checks. Does not require any credentials. Use live=true when debugging a failing tool call. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool maps to a distinct retrieval target: single post, batch posts, search, user timeline, user profile, and server status. The only mild overlap is get_user_tweets being a thin wrapper over search_tweets, but the description makes the relationship explicit and recommends when to use it.
Five of six tools follow a clear verb_noun pattern (get_tweet, get_tweets, get_user, get_user_tweets, search_tweets). The lone 'status' deviates from the convention but is unambiguous in context.
Six tools is well-scoped for a read-only X/Twitter reading server, with no redundant variants or filler. Batch, single, and search variants each earn their place.
The surface covers read workflows (post by ID, batch, search, user timeline, profile, diagnostics) but has no thread/reply retrieval and no write operations, both of which the descriptions acknowledge as unavailable. The missing conversation context is a notable dead end for a common use case.