Bluesky MCP Server

使用说明

项目简介

Bluesky MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专为 Bluesky 社交网络设计。它通过 AT Protocol 协议,为 AI 应用提供结构化的上下文信息和功能,从而实现 Bluesky 社交网络的智能化特性。该服务旨在简化 AI 模型与 Bluesky 生态系统的集成,使开发者能够轻松利用 AI 能力,无需直接与大型语言模型或其他复杂 AI 系统交互。

主要功能点

  • Feed 分析 (Feed Analysis): 分析 Bluesky 用户的信息流 (feed),支持情感分析,并提供帖子长度、字数等指标。可以根据话题标签 (hashtag) 检索全网帖子。
  • 帖子辅助 (Post Assist): 根据用户指定的心情 (mood) 和主题 (topic),生成多样化且引人入胜的 Bluesky 帖子内容建议。
  • 社区管理 (Community Management): 跟踪用户活动,监控用户最近的帖子,帮助进行社区管理和用户行为分析。
  • 安全性: 实施多项安全措施,包括输入验证、TLS 加密、防止 XSS 和注入攻击等,保障服务安全可靠。
  • 高可用性: 具备内置的冗余特性,提高服务的稳定性和可用性。

安装步骤

  1. 安装 Go 环境: 确保你的开发环境已安装 Go 1.21 或更高版本。
  2. 克隆仓库: 使用 'git clone https://github.com/littleironwaltz/bluesky-mcp.git' 命令克隆仓库到本地。
  3. 进入目录: 使用 'cd bluesky-mcp' 命令进入项目目录。
  4. 下载依赖: 运行 'go mod download' 命令下载项目依赖。
  5. 构建项目: 运行 'make build' 命令编译项目。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数,以便建立连接。以下是 'server_config.json' 示例,请根据实际情况修改:

{
  "serverName": "bluesky-mcp",
  "command": "./bin/bluesky-mcp",
  "args": [],
  "description": "Bluesky MCP 服务器",
  "config": {
    "BskyID": "你的Bluesky账号或邮箱",
    "BskyPassword": "你的Bluesky密码",
    "BskyHost": "https://bsky.social"  // Bluesky API Host,通常为 https://bsky.social
    // "BskyConfigFile": "/path/to/config.json" // 可选:使用配置文件,优先级高于环境变量
    // "BskyBackupID": "备用Bluesky账号或邮箱", // 可选:备用账号,用于提高可靠性
    // "BskyBackupPassword": "备用Bluesky密码"  // 可选:备用账号密码
  }
}

参数注释:

  • 'serverName': MCP 服务器的名称,客户端用于识别。
  • 'command': 启动 MCP 服务器的可执行文件路径,这里假设编译后的二进制文件位于 './bin/bluesky-mcp'。
  • 'args': 启动命令的参数,本例中无需额外参数,为空数组 '[]'。
  • 'description': 服务器描述信息,方便客户端用户了解服务器用途。
  • 'config': 服务器配置信息,以 JSON 格式提供,客户端无需关心具体配置项,服务器内部使用。
    • 'BskyID': 你的 Bluesky 账号或邮箱,用于 API 认证。
    • 'BskyPassword': 你的 Bluesky 密码,用于 API 认证。
    • 'BskyHost': Bluesky API 主机地址,默认为 'https://bsky.social',通常无需修改。
    • 'BskyConfigFile': 可选,指定 JSON 配置文件路径,配置信息将从文件中读取,优先级高于环境变量。
    • 'BskyBackupID', 'BskyBackupPassword': 可选,备用 Bluesky 账号和密码,用于在主账号认证失败时提供备用方案,提高服务的可靠性。

配置方式:

你可以在 'server_config.json' 文件中直接填写配置信息,或者选择使用环境变量进行配置 (推荐)。

环境变量配置示例:

export BSKY_ID="你的Bluesky账号或邮箱"
export BSKY_PASSWORD="你的Bluesky密码"
export BSKY_HOST="https://bsky.social"
# export BSKY_CONFIG_FILE="/path/to/config.json" # 如果使用配置文件
# export BSKY_BACKUP_ID="备用Bluesky账号或邮箱"
# export BSKY_BACKUP_PASSWORD="备用Bluesky密码"

基本使用方法

  1. 启动服务器: 配置完成后,运行 'make run' 或直接运行编译后的二进制文件 './bin/bluesky-mcp' 启动服务器。默认情况下,服务器将在 '3000' 端口监听 HTTP 请求,健康检查服务在 '3001' 端口。

  2. 发送 JSON-RPC 请求: 使用 MCP 客户端或通过 'curl' 等工具,向服务器的 '/mcp/:method' 端点发送符合 JSON-RPC 2.0 规范的请求。':method' 需要替换为具体的方法名,例如 'feed-analysis', 'post-assist', 'community-manage'。

请求示例 (使用 curl):

Feed 分析请求:

curl -X POST "http://localhost:3000/mcp/feed-analysis" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "feed-analysis",
    "params": {
      "hashtag": "golang",
      "limit": 10
    },
    "id": 1
  }'

Post 辅助请求:

curl -X POST "http://localhost:3000/mcp/post-assist" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "post-assist",
    "params": {
      "mood": "excited",
      "topic": "artificial intelligence"
    },
    "id": 1
  }'

社区管理请求:

curl -X POST "http://localhost:3000/mcp/community-manage" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "community-manage",
    "params": {
      "userHandle": "user.bsky.social",
      "limit": 5
    },
    "id": 1
  }'

健康检查: 可以访问 'http://localhost:3001/health' 或 'http://localhost:3001/healthz' 检查服务器运行状态。

请参考仓库 README.md 文件和代码注释获取更详细的信息。

服务器信息