SocialData MCP服务器
一个全面的模型上下文协议(MCP)服务器,提供与SocialData API交互的工具。此服务器允许您以编程方式获取Twitter/X数据、监视用户活动和分析社交媒体参与度。
 
特性
数据检索
- 搜索:使用运营商进行高级推特搜索
- 用户配置文件:通过用户名或ID获取详细的用户信息
- 追随者/追随者:检索关注者和以下列表
- 推特:获取用户推文、提及、亮点和帖子
- 列表和社区:访问推特列表和社区数据
- 空间:获取推特空间详细信息
社会行为验证
- 验证后:检查一个用户是否关注另一个用户
- 转发验证:验证用户是否转发了推文
- 评论验证:检查用户是否在推特上发表了评论
监控和警报
- 用户推文监视器:获取新推文的提醒
- 以下监视器:监控用户何时关注新帐户
- 配置文件监视器:跟踪配置文件更改
- Pump.fun监视器:监控加密货币提及
账户管理
- 余额跟踪:检查剩余API信用
- 网钩 管理:设置通知端点
安装
选项1:自动设置(推荐)
运行安装脚本,该脚本将创建虚拟环境并安装依赖项:
chmod +x setup.sh
./setup.sh然后激活虚拟环境:
source venv/bin/activate选项2:手动设置
- 克隆或下载此存储库
- 创建虚拟环境:
python3 -m venv venv
source venv/bin/activate- 安装所需的依赖项:
pip install -r requirements.txt- 将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"
}
}
}
}查找安装路径
要找到正确的安装路径,请执行以下操作:
# Navigate to your socialdata directory
cd /path/to/your/socialdata
# Get the full path
pwd
# This will show something like:
# /Users/yourname/Agents/MCP/socialdata在MCP客户端配置中使用此完整路径。
用法
独立运行服务器
请确保您的虚拟环境已先激活:
source venv/bin/activate
python server.py完成后,您可以停用虚拟环境:
deactivate可用工具
搜索与发现
search_twitter
使用高级操作员搜索推特。
参数:
query(必填):使用推特运营商进行搜索查询cursor(可选):分页光标search_type(可选):“顶部”或“最新”
例子:
# Search for tweets from Elon Musk about Dogecoin, excluding replies
search_twitter("from:elonmusk doge -filter:replies")
# Search for latest tweets about 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
获取全面的用户数据,包括个人简介、最近的推文和扩展信息。
例子:
# Get basic user info
user = get_user_by_username("elonmusk")
# Get complete profile with recent tweets
complete_profile = get_user_complete_profile("elonmusk")用户连接
get_user_followers
获取用户的关注者。
get_user_verified_followers
只获取经过验证的关注者。
get_user_following
让用户知道有人在关注。
例子:
# Get Elon Musk's followers
followers = get_user_followers("44196397") # Elon's user ID
# Get verified followers only
verified = get_user_verified_followers("44196397")推特操作
get_tweet
获取完整的推特详细信息。
get_tweet_comments
获取推特的评论/回复。
get_tweet_retweeters
获取转发推特的用户。
get_tweet_quotes
获取报价推文。
get_twitter_thread
将所有推文放在一个帖子中。
analyze_tweet_engagement
获取全面的参与度数据(评论、转发、引用)。
例子:
# Get tweet details
tweet = get_tweet("1234567890")
# Analyze full engagement
engagement = analyze_tweet_engagement("1234567890")社会验证
verify_user_following
检查一个用户是否跟随另一个用户。
verify_user_retweeted
验证用户是否转发了特定的推文。
verify_user_commented
检查用户是否在推特上发表了评论。
例子:
# Check if user A follows user B
following = verify_user_following(
source_user_id="123456",
target_user_id="789012"
)
# Verify retweet
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
卸下显示器。
例子:
# Monitor Elon Musk's tweets
monitor = create_user_tweets_monitor(
user_id="44196397",
webhook_url="https://your-webhook.com/notify"
)
# List all monitors
monitors = list_monitors()
# Delete a monitor
delete_monitor("monitor_123")账户管理
get_account_balance
检查剩余的API信用。
set_global_webhook
为所有监视器设置默认的webhook URL。
高级使用示例
1.综合用户分析
# Get complete user profile
profile = get_user_complete_profile("username")
# Get their followers and following
followers = get_user_followers(profile["id_str"])
following = get_user_following(profile["id_str"])
# Get their recent tweets with engagement
tweets = get_user_tweets(profile["id_str"])
for tweet in tweets["tweets"][:5]: # Analyze top 5 tweets
engagement = analyze_tweet_engagement(tweet["id_str"])2.监控竞争对手的活动
# Set up monitoring for competitor accounts
competitors = ["competitor1_id", "competitor2_id", "competitor3_id"]
for user_id in competitors:
# Monitor their tweets
create_user_tweets_monitor(user_id, webhook_url="https://your-app.com/competitor-tweets")
# Monitor profile changes
create_user_profile_monitor(user_id, webhook_url="https://your-app.com/profile-changes")3.参与活动验证
# Verify campaign participants
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 for trending topic
search_results = search_twitter("#AI OR #MachineLearning", search_type="Latest")
# Analyze engagement for top tweets
for tweet in search_results["tweets"][:10]:
engagement = analyze_tweet_engagement(tweet["id_str"])
print(f"Tweet: {tweet['text'][:100]}...")
print(f"Engagement: {len(engagement['comments'])} comments, "
f"{len(engagement['retweeters'])} retweets")测试您的设置
要验证您的服务器是否正常工作:
- 独立测试服务器:
source venv/bin/activate
python server.py- 使用您的MCP客户端进行测试:配置后,尝试使用以下可用工具之一
get_account_balance以验证连接和API密钥。
- 检查API余额:
balance = get_account_balance()
print(f"Remaining balance: ${balance['balance_usd']}")错误处理
该服务器包括全面的错误处理功能,用于:
- API密钥无效
- 速率限制
- 网络错误
- 无效参数
- 缺失数据
所有错误均以描述性异常消息的形式返回。
API成本
SocialData API根据使用情况收费。定期检查您的余额:
balance = get_account_balance()
print(f"Remaining balance: ${balance['balance']}")速率限制
SocialData自动处理限速。API设计为可靠且可扩展,无需代理管理。
Webhook 配置
对于监控功能,您可以设置webhooks以接收实时通知:
- 全球 Web Hook (适用于所有显示器):
set_global_webhook("https://your-app.com/webhook")- 监控特定的Webhook (覆盖全局):
create_user_tweets_monitor(
user_id="123456",
webhook_url="https://your-app.com/specific-webhook"
)API密钥管理
服务器在中查找API密钥 SOCIALDATA_API_KEY 环境变量。确保:
- 从SocialData仪表板获取API密钥
- 在MCP客户端配置中设置它或将其设置为环境变量
- 确保API密钥的安全,并且永远不要将其提交给版本控制
发展
项目结构
socialdata/
├── server.py # Main MCP server implementation
├── config.json # MCP server configuration
├── requirements.txt # Python dependencies
├── setup.sh # Automated setup script
├── .env.example # Environment variable template
├── .gitignore # Git ignore rules
├── openapi.yml # API specification reference
└── README.md # This file添加新功能
服务器使用FastMCP构建,并遵循SocialData API规范。要添加新端点,请执行以下操作:
- 添加带有适当类型提示的工具函数
- 使用
@mcp.tool()装饰器 - 包含全面的文档字符串
- 适当处理错误
- 使用新工具更新config.json
支持
如果你觉得这个项目有帮助,可以考虑:
- ⭐ 引导此存储库
-  在GitHub赞助商上支持我的工作
- 🌐 访问我的网站 SethRose.dev
合规
使用此服务器时:
- 遵守Twitter的服务条款
- 遵守数据隐私规定
- 负责任地使用监控
- 不要超过合理的请求率
- 遵守用户隐私期望
许可证
这个项目是开源的,可以在MIT许可证下使用。
______________________________________________________________________
由...创建 赛斯·罗斯 |
