项目简介

Facebook MCP 服务器是一个基于 Model Context Protocol (MCP) 的后端应用,旨在使大型语言模型 (LLM) 能够与 Facebook 平台进行交互。它通过标准化接口,允许LLM访问和管理Facebook页面,进行如发布帖子、列出页面等操作,同时处理复杂的Facebook OAuth认证和令牌管理。

主要功能点

  • Facebook 认证集成: 引导用户通过Facebook OAuth完成认证,获取并管理长期有效的用户访问令牌。
  • 页面管理: 获取用户所管理的所有Facebook页面列表,并自动刷新页面访问令牌。
  • 发布页面帖子: 在指定的Facebook页面上创建新的文字或图片帖子。
  • 读取页面帖子: 获取指定Facebook页面上的最新帖子。
  • 灵活的存储选项: 支持内存存储(单用户或多用户)和Upstash Redis存储,用于持久化Facebook令牌和会话数据。
  • 多种通信协议: 支持Stdio、SSE (Server-Sent Events) 和 Streamable HTTP 等传输协议,方便不同环境下的LLM客户端集成。

安装步骤

  1. 克隆仓库: 将代码仓库克隆到本地。
  2. 安装依赖: 进入项目目录,运行 'npm install' 安装所有必要的Node.js依赖。
  3. 创建Facebook应用:
    • 前往 Facebook 开发者网站 (developers.facebook.com)。
    • 创建一个新的应用,并获取 App IDApp Secret
    • 在应用设置中配置 OAuth 重定向 URI,例如 'http://localhost:8000/auth/facebook/callback' (请根据实际服务器地址调整)。
  4. 配置环境变量或命令行参数: 运行服务器时需要提供Facebook应用的认证信息。

服务器配置

MCP客户端需要配置MCP服务器的启动命令和参数以建立连接。以下是一个示例配置信息,请根据您的实际环境进行调整:

{
  "name": "Facebook MCP Server",
  "command": "node",
  "args": [
    "dist/index.js",
    "--transport", "http",
    "--port", "8000",
    "--storage", "memory", 
    "--facebookAppId", "YOUR_FACEBOOK_APP_ID",
    "--facebookAppSecret", "YOUR_FACEBOOK_APP_SECRET",
    "--facebookRedirectUri", "YOUR_FACEBOOK_REDIRECT_URI",
    "--storageHeaderKey", "X-Memory-Key" 
  ],
  "comment": "启动Facebook MCP服务器,提供Facebook认证和页面管理工具。"
}

参数注释:

  • '--transport': 指定服务器使用的传输协议,可选 'http', 'sse', 'stdio'。
  • '--port': (仅当 '--transport' 为 'http' 或 'sse' 时) 服务器监听的端口号,默认为 8000。
  • '--storage': 指定数据存储后端,可选 'memory-single' (单用户内存), 'memory' (多用户内存), 'upstash-redis-rest' (Upstash Redis)。
  • '--facebookAppId': 您的Facebook应用ID。
  • '--facebookAppSecret': 您的Facebook应用秘钥。
  • '--facebookRedirectUri': Facebook OAuth回调URI,必须与Facebook应用设置中配置的一致。
  • '--storageHeaderKey': (仅当 '--storage' 为 'memory' 或 'upstash-redis-rest' 时) 用于区分不同客户端数据的HTTP请求头名称(或Redis键前缀)。
  • '--upstashRedisRestUrl': (仅当 '--storage' 为 'upstash-redis-rest' 时) Upstash Redis的REST API URL。
  • '--upstashRedisRestToken': (仅当 '--storage' 为 'upstash-redis-rest' 时) Upstash Redis的REST API令牌。
  • '--facebookState': (可选) OAuth状态参数,用于防止CSRF攻击。
  • '--toolsPrefix': (可选) 添加到所有工具名称前缀,默认为 'facebook_'。

基本使用方法

  1. 启动服务器: 在项目目录中,使用'node dist/index.js'命令,并根据上述配置信息添加相应的参数来启动MCP服务器。例如,'node dist/index.js --transport http --port 8000 ...'
  2. 客户端连接: 您的MCP客户端(例如,一个LLM应用)使用配置的传输协议和端口连接到此服务器。
  3. Facebook 认证:
    • 客户端调用 'facebook_auth_url' 工具获取Facebook登录URL。
    • 用户在浏览器中访问该URL完成登录和授权,Facebook会将用户重定向回 'facebookRedirectUri' 并附带一个 'code' 参数。
    • 客户端获取到 'code' 后,调用 'facebook_exchange_auth_code' 工具,将 'code' 作为参数传递给MCP服务器。服务器将完成令牌交换和用户认证,保存长期令牌。
  4. 调用其他工具: 认证成功后,客户端即可调用其他工具进行Facebook操作:
    • 'facebook_list_pages': 列出用户管理的Facebook页面。
    • 'facebook_create_page_post': 在指定页面发布帖子。
    • 'facebook_read_page_posts': 读取指定页面的帖子。

信息

分类

通信与社交