返回市场
MCP服务器

MCP服务器

作者:GeLi20012 星标更新:2025-08-26

项目介绍

X MCP 服务器

Crates.io Documentation License: MIT OR Apache-2.0

一个提供对X(原Twitter)API基本工具访问的模型上下文协议(MCP)服务器。此服务器允许AI助手和其他MCP客户端通过标准化接口与X/Twitter进行交互。

特性

  • 🔐 简单的Bearer Token认证 - 只需一个令牌即可轻松设置
  • 👤 用户信息 - 通过用户名或ID获取用户资料
  • 🐦 只读操作 - 获取推文、用户信息和搜索(不支持发布)
  • 🔍 搜索 - 使用各种过滤器和选项搜索推文
  • 📝 用户时间线 - 检索用户的最近推文
  • 🛠️ MCP工具 - 标准化的AI集成工具
  • 异步/等待 - 使用Tokio构建以实现高性能

安装

从crates.io安装

cargo install x-mcp-server

从源码安装

git clone https://github.com/yourusername/x-mcp-server
cd x-mcp-server
cargo build --release

快速开始

1. 获取X API凭证

  1. 前往X开发者门户
  2. 创建一个新的应用或使用现有的应用
  3. 生成您的API密钥和访问令牌
  4. 确保您的应用具有必要的权限

2. 设置环境变量

创建一个.env文件或设置环境变量:

export X_CONSUMER_KEY="your_consumer_key"
export X_CONSUMER_SECRET="your_consumer_secret"
export X_ACCESS_TOKEN="your_access_token"
export X_ACCESS_TOKEN_SECRET="your_access_token_secret"

或者复制.env.example.env并填写您的凭证。

3. 运行服务器

x-mcp-server

服务器将启动并监听标准输入/输出上的MCP请求。

配置

服务器可以通过环境变量进行配置:

变量描述必填
X_BEARER_TOKEN您的X API Bearer Token
RUST_LOG日志级别(例如:infodebug

可用工具

服务器提供了以下MCP工具:

get_user

通过用户名或用户ID获取用户信息。

参数:

  • identifier (字符串):用户名(不含@)或用户ID
  • is_user_id (布尔值,可选):标识符是否为用户ID(默认:false)

示例:

{
  "identifier": "elonmusk",
  "is_user_id": false
}

post_tweet

发布新推文。

参数:

  • text (字符串):推文的文字内容
  • reply_to (字符串,可选):回复的推文ID

示例:

{
  "text": "Hello, world! 🌍",
  "reply_to": "1234567890"
}

search_tweets

搜索推文。

参数:

  • query (字符串):搜索查询
  • max_results (整数,可选):结果的最大数量(1-100,默认:10)
  • include_users (布尔值,可选):是否包含用户信息(默认:false)
  • include_metrics (布尔值,可选):是否包含推文指标(默认:false)

示例:

{
  "query": "MCP OR \"Model Context Protocol\"",
  "max_results": 20,
  "include_users": true,
  "include_metrics": true
}

get_tweet

通过ID获取特定推文。

参数:

  • tweet_id (字符串):推文ID

示例:

{
  "tweet_id": "1234567890"
}

get_user_tweets

获取用户的最近推文。

参数:

  • identifier (字符串):用户名或用户ID
  • is_user_id (布尔值,可选):标识符是否为用户ID(默认:false)
  • max_results (整数,可选):推文的最大数量(1-100,默认:1.0)

示例:

{
  "identifier": "elonmusk",
  "max_results": 5
}

库使用

您也可以将其作为Rust库使用:

[dependencies]
x-mcp-server = "0.1"
use x_mcp_server::{XClient, auth::OAuthCredentials};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 创建凭证
    let credentials = OAuthCredentials::from_env()?;
    let client = XClient::new(credentials);

    // 获取用户信息
    let user = client.get_user_by_username("elonmusk").await?;
    println!("{:#?}", user);

    // 发布推文
    let tweet = client.post_tweet("Hello from Rust! 🦀", None).await?;
    println!("Posted tweet: {}", tweet.id);

    Ok(())
}

MCP集成

此服务器实现了模型上下文协议规范。您可以将其与任何兼容MCP的客户端集成:

Claude Desktop

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "x-mcp-server": {
      "command": "x-mcp-server",
      "env": {
        "X_CONSUMER_KEY": "your_key",
        "X_CONSUMER_SECRET": "your_secret",
        "X_ACCESS_TOKEN": "your_token",
        "X_ACCESS_TOKEN_SECRET": "your_token_secret"
      }
    }
  }
}

其他MCP客户端

任何MCP客户端都可以使用标准输入输出传输连接到此服务器。

开发

构建

cargo build

测试

cargo test

使用调试日志运行

RUST_LOG=debug cargo run

API限制

请注意X API的速率限制:

  • 用户查找:每15分钟300次请求
  • 推文发布:每15分钟300条推文
  • 搜索:每15分钟180次请求
  • 用户时间线:每15分钟1500次请求

服务器未实现速率限制,因此请确保您的使用在这些限制内。

安全

  • API凭证永远不会被记录或暴露
  • OAuth 1.0a签名安全生成
  • 所有HTTP请求均使用HTTPS

贡献

欢迎贡献!请随时提交Pull Request。

许可证

本项目可以在以下许可证之一下使用:

由您选择。

相关