Token导航 LogoToken导航TokenDH.com
MCP X Query logo
AI代理未说明官方级别未说明来源级核验

MCP X Query

MCP Server

一个通过Grok API为AI助手提供实时Twitter/X数据访问的Model Context Protocol (MCP)服务器。

工具数

12

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaude数据分析Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

IvyNotFound

提供方

IvyNotFound

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcp-x查询

![CI](https://github.com/IvyNotFound/mcp-x-query/actions/workflows/ci.yml) ![Release](https://github.com/IvyNotFound/mcp-x-query/actions/workflows/release.yml) ](https://nodejs.org) ![License: MIT](LICENSE)

A. 模型上下文协议(MCP) 服务器,让人工智能助手通过 格罗克API.

将此服务器连接到Claude Desktop(或任何兼容MCP的主机),并提出以下问题:

  • *“@sama本周发了什么推特?”*
  • *“给我看看从这条推文开始的完整帖子。”*
  • *“现在科技界的趋势是什么?”*
  • *“查找有关最新GPT版本的推文。”*

目录

______________________________________________________________________

特性

工具说明
get_tweet通过ID或URL检索单个推文——Grok Vision自动分析的图像/视频
get_tweet_replies获取推文的回复,按参与度排序,日期范围可选
get_user_tweets用户最近的推文,可选择日期范围和媒体内容
get_user_profile完整资料:个人简介、关注者、固定推文等。
search_tweets使用推特运营商、日期范围和媒体丰富功能进行全文搜索
get_thread从任何推文重建的完整对话线程
get_trending当前热门话题,可选择按类别和国家过滤
analyze_sentiment推文语料库的情感分析(按查询或帐户,带语言过滤器)
analyze_thread对一条线索的全面分析:情感、关键论点、总结
extract_links提取并汇总帐户共享的所有外部链接
get_user_mentions来自其他帐户的推文提及用户,日期范围可选
get_list_tweets按ID或URL从Twitter/X列表中发布推文,带有可选日期范围、分页光标和媒体丰富功能

______________________________________________________________________

先决条件

______________________________________________________________________

安装

git clone https://github.com/IvyNotFound/mcp-x-query.git
cd mcp-x-query
npm install
npm run build

______________________________________________________________________

配置

复制环境模板并添加您的API密钥:

cp .env.example .env
# Edit .env and set XAI_API_KEY=xai-...

服务器读取 XAI_API_KEY 启动时从环境中退出,如果丢失,则立即退出。

______________________________________________________________________

可用工具

get_tweet

检索一条包含完整元数据(媒体、引用推文、参与度指标)的推文。

当推文包含图像、视频或GIF时,每个媒体项目都会被自动分析 Grok Vision (grok-2-vision-1212)并丰富了a media_summary 描述视觉内容的字段。

参数类型必填说明
tweet_id_or_urlstring推特ID或完整的x.com/twitter.com URL

get_tweet_replies

返回推特上参与度最高的回复,可选择按日期过滤。

参数类型必填说明
tweet_id_or_urlstring推特ID或URL
max_resultsnumberNo1–100,默认值10
from_datestringYYYY-MM-DD
to_datestringYYYY-MM-DD

get_user_tweets

获取用户最近的推文和转发(最新优先)。通过 enrich_media: true 让Grok Vision分析每个媒体项目(增加延迟)。

参数类型必填说明
usernamestring有或没有处理 @
max_resultsnumberNo1–100,默认值10
from_datestringYYYY-MM-DD
to_datestringYYYY-MM-DD
enrich_mediabooleantrue =添加 media_summary 通过Grok Vision(较慢)

get_user_profile

返回完整的个人资料信息,包括个人简介、计数器和固定推文。

参数类型必填说明
usernamestring有或没有处理 @

search_tweets

支持全文搜索 推特搜索运营商 (from:, to:, -is:retweet, lang:, #hashtag等等)。通过 enrich_media: true 用于Grok Vision对每个媒体项目的分析。

参数类型必填说明
querystring搜索查询
max_resultsnumberNo1–100,默认值10
from_datestringYYYY-MM-DD
to_datestringYYYY-MM-DD
enrich_mediabooleantrue =添加 media_summary 通过Grok Vision(较慢)

get_thread

从链中的任何推文(根、中间线程或叶子)重建完整的对话线程。

参数类型必填说明
tweet_id_or_urlstring线程中的任何推文
max_tweetsnumberNo1–50,默认值为20
verbosebooleantrue =完整字段(媒体、引用的推文);限制为10条推文以避免截断

get_trending

返回Twitter/X上的当前趋势主题。结果缓存5分钟,以避免重复的API调用。

参数类型必填说明
categorystring例如。 "technology", "sports", "politics"
countrystring例如。 "France", "United States", "worldwide"

analyze_sentiment

对通过搜索查询或从特定帐户检索到的推文语料库进行情绪分析。返回细分(正/负/中性百分比)、热门主题和值得注意的推文。

参数类型必填说明
querystring搜索查询(支持Twitter运营商)
usernamestring限制对此帐户的推文进行分析(有或没有 @)
max_tweetsnumberNo1–100,默认值为30
from_datestringYYYY-MM-DD
to_datestringYYYY-MM-DD
languagestringBCP-47语言代码过滤器(例如。 "fr", "en")

analyze_thread

重建一个完整的线程,然后生成一个结构化的分析:总体情绪、每个参与者提出的关键论点、摘要和值得注意的引文。

参数类型必填说明
tweet_id_or_urlstring线程中的任何推文
max_tweetsnumberNo1–50,默认值为20

extract_links

提取Twitter帐户共享的所有外部URL(或匹配搜索查询),并返回每个链接及其标题、域和共享内容的简要摘要。

参数类型必填说明
usernamestring有或没有处理 @
max_tweetsnumberNo1–100,默认值50
from_datestringYYYY-MM-DD
to_datestringYYYY-MM-DD

get_user_mentions

返回其他帐户中提到给定用户的推文。可用于监控品牌提及、社区回复或跟踪围绕特定句柄的对话。

参数类型必填说明
usernamestringYes查找提及的句柄(有或没有) @)
max_resultsnumberNo1–100,默认值10
from_datestringYYYY-MM-DD
to_datestringYYYY-MM-DD

get_list_tweets

从Twitter/X列表中获取最近的推文。接受数字列表ID或完整列表URL(https://x.com/i/lists/).支持通过光标分页: next_cursor 响应中的字段是页面上最旧推文的ID——将其作为 cursor 在下一次调用中获取旧推文。通过 enrich_media: true 让Grok Vision分析每个媒体项目(增加延迟)。

参数类型必填说明
list_idstringYes数字列表ID(例如。 "1234567890")或完整URL(https://x.com/i/lists/1234567890)
max_resultsnumberNo1–100,默认值10
from_datestringYYYY-MM-DD
to_datestringYYYY-MM-DD
cursorstring分页光标: next_cursor 来自上一个响应的值
enrich_mediabooleantrue =添加 media_summary 通过Grok Vision(较慢)

______________________________________________________________________

Claude桌面设置

将服务器添加到Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mcp-x-query": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-x-query/dist/index.js"],
      "env": {
        "XAI_API_KEY": "xai-your-api-key-here"
      }
    }
  }
}

保存文件后重新启动Claude Desktop。

______________________________________________________________________

发展

# Watch mode — recompiles on every file save
npm run dev

# Single build
npm run build

# Interactive MCP inspector (useful for manual tool testing)
npm run inspector

TypeScript源代码位于 src/。编译后的输出将转到 dist/ (忽略了)。

项目结构

src/
├── index.ts              # MCP server entry point — tool registration & startup (12 tools)
├── lib/
│   ├── grok-client.ts    # Grok API wrapper (OpenAI SDK + x_search tool, maxRetries: 3)
│   ├── errors.ts         # Typed error hierarchy: GrokError, GrokAuthError, GrokRateLimitError
│   ├── utils.ts          # Input helpers: URL→ID extraction, @ stripping, escapeForPrompt
│   └── cache.ts          # TtlCache: in-memory TTL cache (used by get_trending, get_user_profile)
├── schemas/
│   ├── tweet.ts          # TweetSchema, ThreadSchema, TweetArraySchema, MediaSchema
│   ├── user.ts           # UserProfileSchema
│   ├── trending.ts       # TrendingTopicsSchema
│   ├── sentiment.ts      # SentimentAnalysisSchema, SentimentBreakdownSchema, NotableTweetSchema
│   ├── thread-analysis.ts# ThreadAnalysisSchema
│   └── link-extract.ts   # LinkExtractSchema, ExtractedLinkSchema
└── tools/                # One file per MCP tool
    ├── get-tweet.ts
    ├── get-tweet-replies.ts
    ├── get-user-profile.ts
    ├── get-user-tweets.ts
    ├── get-thread.ts
    ├── get-trending.ts
    ├── search-tweets.ts
    ├── analyze-sentiment.ts
    ├── analyze-thread.ts
    ├── extract-links.ts
    ├── get-user-mentions.ts
    └── get-list-tweets.ts

______________________________________________________________________

测试

# Unit tests only — no API key required, runs in ` 随着 `‹`/`›` 在将所有自由文本输入(查询、类别、语言)插入提示之前,都使用Unicode|
| **用户名净化** | `src/lib/utils.ts` — `sanitizeUsername()` |条纹 `@` 并且仅强制使用字母数字+下划线|
| **推特ID验证** | `src/lib/utils.ts` — `extractTweetId()` |如果提取的ID不是纯数字,则抛出(`^\d+$`) |
| **输入长度上限** |Zod模式| `query` 字段的长度限制为500个字符|
| **日期格式验证** |Zod模式|全部 `from_date`/`to_date` 字段需要 `YYYY-MM-DD` 通过正则表达式格式化|
| **API超时** | `src/lib/grok-client.ts` | `timeout: 30_000` 所有API调用上的ms|
| **媒体域白名单** | `src/lib/grok-client.ts` | `analyzeMedia()` 只接受来自一组固定的受信任域的URL(`x.com`, `twimg.com`等等)|
| **TTL缓存** | `src/lib/cache.ts` |缓存趋势主题(5分钟)和用户配置文件(10分钟),以减少API表面积|

______________________________________________________________________

## 贡献

看 [贡献.md](CONTRIBUTING.md).

______________________________________________________________________

## 许可证

[麻省理工学院](LICENSE)

目录标签

目录标签

TypeScriptClaude数据分析Twitter数据本地部署GrokAPIAI助手社交媒体

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP