返回市场
社交数据-MCP-服务器

社交数据-MCP-服务器

作者:TheSethRose5 星标更新:2025-05-25

项目介绍

技术文档摘要

SocialData MCP Server

一个全面的模型上下文协议(MCP)服务器,提供与SocialData API交互的工具。此服务器允许您获取Twitter/X数据、监控用户活动并分析社交媒体互动。

赞助 网站

功能

数据检索

  • 搜索:使用操作符进行高级Twitter搜索
  • 用户资料:通过用户名或ID获取详细用户信息
  • 关注者/关注中:获取关注者和关注列表
  • 推文:获取用户的推文、提及、亮点和线程
  • 列表及社区:访问Twitter列表和社区数据
  • 空间:获取Twitter空间详情

社交行为验证

  • 关注验证:检查一个用户是否关注了另一个用户
  • 转发验证:验证一个用户是否转发了一条推文
  • 评论验证:检查一个用户是否对一条推文进行了评论

监控与警报

  • 用户推文监控:获取新推文的警报
  • 关注监控:监控用户何时关注了新的账户
  • 资料监控:跟踪资料更改
  • Pump.fun监控:监控加密货币提及

账户管理

  • 余额追踪:检查剩余API信用额度
  • Webhook管理:设置通知端点

安装

方案1:自动安装(推荐)

运行设置脚本,该脚本会创建虚拟环境并安装依赖项:

chmod +x setup.sh
./setup.sh

然后激活虚拟环境:

source venv/bin/activate

方案2:手动安装

  1. 克隆或下载此仓库
  2. 创建虚拟环境:
python3 -m venv venv
source venv/bin/activate
  1. 安装所需依赖项:
pip install -r requirements.txt
  1. 将您的SocialData API密钥设置为环境变量:
export SOCIALDATA_API_KEY="your_api_key_here"

您可以在您的SocialData仪表板中获取API密钥。

MCP客户端配置

要使用此服务器与MCP客户端(如Claude Desktop、Continue或其他兼容MCP的工具),添加以下配置:

对于MCP客户端

在您的MCP客户端配置文件(通常是config.json或类似文件)中添加以下内容:

{
    "mcpServers": {
        "socialdata": {
            "type": "stdio",
            "command": "/path/to/your/socialdata/venv/bin/python",
            "args": ["/path/to/your/socialdata/server.py"],
            "env": {
                "SOCIALDATA_API_KEY": "your_actual_api_key_here"
            }
        }
    }
}

配置选项

替换路径和API密钥为您实际的值:

  • /path/to/your/socialdata/ - 替换为您安装此服务器的实际路径
  • your_actual_api_key_here - 替换为您从仪表板获取的SocialData API密钥

示例配置

方案1:使用虚拟环境Python(推荐)

{
    "mcpServers": {
        "socialdata": {
            "type": "stdio",
            "command": "/Users/yourname/path/to/socialdata/venv/bin/python",
            "args": ["/Users/yourname/path/to/socialdata/server.py"],
            "env": {
                "SOCIALDATA_API_KEY": "your_actual_api_key_here"
            }
        }
    }
}

方案2:使用系统Python

{
    "mcpServers": {
        "socialdata": {
            "type": "stdio",
            "command": "python3",
            "args": ["/Users/yourname/path/to/socialdata/server.py"],
            "env": {
                "SOCIALDATA_API_KEY": "your_actual_api_key_here"
            }
        }
    }
}

方案3:使用包装脚本

创建运行脚本:

#!/bin/bash
cd /path/to/your/socialdata
source venv/bin/activate
python3 server.py

然后配置:

{
    "mcpServers": {
        "socialdata": {
            "type": "stdio",
            "command": "/path/to/your/socialdata/run.sh",
            "args": [],
            "env": {
               
                "SOCIALDATA_API_KEY": "your_actual_api_key_here"
            }
        }
    }
}

查找您的安装路径

要找到正确的安装路径:

# 导航到您的socialdata目录
cd /path/to/your/socialdata

# 获取完整路径
pwd

# 这将显示类似的内容:
# /Users/yourname/Agents/MCP/socialdata

在您的MCP客户端配置中使用此完整路径。

使用

单独运行服务器

确保首先激活虚拟环境:

source venv/bin/activate
python server.py

完成之后,您可以停用虚拟环境:

deactivate

可用工具

搜索与发现

search_twitter

使用高级操作符搜索Twitter。

参数:

  • query(必需):带有Twitter操作符的搜索查询
  • cursor(可选):分页游标
  • search_type(可选):"Top" 或 "Latest"

示例:

# 搜索Elon Musk关于Dogecoin的推文,排除回复
search_twitter("from:elonmusk doge -filter:replies")

# 搜索最新的关于AI的推文
search_twitter("AI", search_type="Latest")

用户信息

get_user_by_username

通过Twitter用户名获取用户资料。

get_user_by_id

通过Twitter用户ID获取用户资料。

get_multiple_users_by_usernames

通过用户名获取最多100个用户资料。

get_user_complete_profile

获取包括简介、最近推文和扩展信息在内的综合用户数据。

示例:

# 获取基本用户信息
user = get_user_by_username("elonmusk")

# 获取包含最近推文的完整资料
complete_profile = get_user_complete_profile("elonmusk")

用户连接

get_user_followers

获取用户的关注者。

get_user_verified_followers

仅获取已验证的关注者。

get_user_following

获取某人正在关注的用户。

示例:

# 获取Elon Musk的关注者
followers = get_user_followers("44196397")  # Elon的用户ID

# 获取已验证的关注者
verified = get_user_verified_followers("44196397")

推文操作

get_tweet

获取完整的推文详情。

get_tweet_comments

获取推文的评论/回复。

get_tweet_retweeters

获取转发了某条推文的用户。

get_tweet_quotes

获取引用推文。

get_twitter_thread

获取线程中的所有推文。

analyze_tweet_engagement

获取全面的互动数据(评论、转发、引用)。

示例:

# 获取推文详情
tweet = get_tweet("1234567890")

# 分析全部互动
engagement = analyze_tweet_engagement("1234567890")

社交验证

verify_user_following

检查一个用户是否关注了另一个用户。

verify_user_retweeted

验证一个用户是否转发了一条特定的推文。

verify_user_commented

检查一个用户是否对一条推文进行了评论。

示例:

# 检查用户A是否关注了用户B
following = verify_user_following(
    source_user_id="123456",
    target_user_id="789012"
)

# 验证转发
retweeted = verify_user_retweeted(
    tweet_id="1234567890",
    user_id="123456"
)

监控

create_user_tweets_monitor

监控用户的最新推文。

create_user_following_monitor

监控用户何时关注了新的账户。

create_user_profile_monitor

监控资料更改。

list_monitors

列出所有活跃的监控器。

delete_monitor

删除一个监控器。

示例:

# 监控Elon Musk的推文
monitor = create_user_tweets_monitor(
    user_id="44196397",
    webhook_url="https://your-webhook.com/notify"
)

# 列出所有监控器
monitors = list_monitors()

# 删除一个监控器
delete_monitor("monitor_123")

账户管理

get_account_balance

检查剩余的API信用额度。

set_global_webhook

设置所有监控器的默认webhook URL。

高级使用示例

1. 综合用户分析

# 获取完整的用户资料
profile = get_user_complete_profile("username")

# 获取他们的关注者和关注中
followers = get_user_followers(profile["id_str"])
following = get_user_following(profile["id_str"])

# 获取他们最近的推文及其互动
tweets = get_user_tweets(profile["id_str"])
for tweet in tweets["tweets"][:5]:  # 分析前5条推文
    engagement = analyze_tweet_engagement(tweet["id_str"])

2. 竞争对手活动监控

# 设置竞争对手账户的监控
competitors = ["competitor1_id", "competitor2_id", "competitor3_id"]

for user_id in competitors:
    # 监控他们的推文
    create_user_tweets_monitor(user_id, webhook_url="https://your-app.com/competitor-tweets")
    
    # 监控资料更改
    create_user_profile_monitor(user_id, webhook_url="https://your-app.com/profile-changes")

3. 互动活动验证

# 验证活动参与者
campaign_tweet_id = "1234567890"
participant_ids = ["user1", "user2", "user3"]

results = {}
for user_id in participant_ids:
    results[user_id] = {
        "retweeted": verify_user_retweeted(campaign_tweet_id, user_id),
        "commented": verify_user_commented(campaign_tweet_id, user_id),
        "following": verify_user_following(user_id, "your_brand_id")
    }

4. 趋势话题分析

# 搜索趋势话题
search_results = search_twitter("#AI OR #MachineLearning", search_type="Latest")

# 分析顶级推文的互动
for tweet in search_results["tweets"][:10]:
    engagement = analyze_tweet_engagement(tweet["id_str"])
    print(f"推文:{tweet['text'][:100]}...")
    print(f"互动:{len(engagement['comments'])}条评论,"
          f"{len(engagement['retweeters'])}次转发")

测试您的设置

要验证您的服务器是否正常工作:

  1. 测试独立服务器

    source venv/bin/activate
    python server.py
    
  2. 使用您的MCP客户端测试:一旦配置好,尝试使用可用工具之一(如get_account_balance)来验证连接和API密钥。

  3. 检查API余额

    balance = get_account_balance()
    print(f"剩余余额:${balance['balance_usd']}")
    

错误处理

服务器包括全面的错误处理:

  • 无效的API密钥
  • 速率限制
  • 网络错误
  • 无效参数
  • 缺失数据

所有错误都以描述性的异常消息返回。

API费用

SocialData API根据使用情况收费。定期检查您的余额:

balance = get_account_balance()
print(f"剩余余额:${balance['balance']}")

速率限制

SocialData自动处理速率限制。API设计为可靠且可扩展,无需代理管理。

Webhook配置

对于监控功能,您可以设置webhook以接收实时通知:

  1. 全局webhook(适用于所有监控器):

    set_global_webhook("https://your-app.com/webhook")
    
  2. 特定监控器的webhook(覆盖全局):

    create_user_tweets_monitor(
        user_id="123456",
        webhook_url="https://your-app.com/specific-webhook"
    )
    

API密钥管理

服务器会在SOCIALDATA_API_KEY环境变量中查找API密钥。请确保:

  1. 在您的SocialData仪表板中获取API密钥
  2. 在您的MCP客户端配置或作为环境变量中设置它
  3. 保护您的API密钥安全,不要将其提交到版本控制中

开发

项目结构

socialdata/
├── server.py          # 主MCP服务器实现
├── config.json        # MCP服务器配置
├── requirements.txt   # Python依赖项
├── setup.sh          # 自动设置脚本
├── .env.example       # 环境变量模板
├── .gitignore         # Git忽略规则
├── openapi.yml        # API规范参考
└── README.md          # 此文件

添加新功能

服务器使用FastMCP构建,并遵循SocialData API规范。要添加新端点:

  1. 添加具有适当类型提示的工具函数
  2. 使用@mcp.tool()装饰器
  3. 包括全面的文档字符串
  4. 合适地处理错误
  5. 更新config.json以包含新工具

支持

如果您觉得这个项目有用,请考虑:

  • ⭐ 在此仓库上加星
  • 赞助 在GitHub Sponsors上支持我的工作
  • 🌐 访问我的网站SethRose.dev

合规性

使用此服务器时:

  • 遵守Twitter的服务条款
  • 遵循数据隐私法规
  • 负责任地使用监控
  • 不超过合理的请求率
  • 符合用户的隐私期望

许可

此项目是开源的,并在MIT许可下提供。


Seth Rose创建 | GitHub