项目简介
本项目是一个 MCP (Model Context Protocol) 服务器,旨在通过标准化的 MCP 协议,为 LLM (大型语言模型) 应用提供访问 Facebook Marketing Insights API 的能力。借助此服务器,LLM 可以调用预定义的工具,获取 Facebook 广告平台的各种数据,例如广告账户列表、账户信息、广告表现数据 (Insights)、广告系列、广告组和广告等。
主要功能点
- 资源访问 (Resources): 虽然仓库描述中没有明确提及“资源”,但服务器提供的工具实际上是对 Facebook Marketing Insights API 资源的访问和管理能力的封装。
- 工具注册和执行 (Tools): 服务器预置了多个工具,允许 LLM 客户端通过 MCP 协议调用这些工具,例如:
- 'facebook-list-ad-accounts': 列出所有可用的 Facebook 广告账户。
- 'facebook-account-info': 获取指定 Facebook 账户的详细信息。
- 'facebook-insights-get': 检索指定账户的 Insights 数据 (例如,展示次数、点击次数、花费等)。
- 'facebook-campaigns': 获取指定账户的广告系列列表。
- 'facebook-adsets': 获取广告系列或账户下的广告组列表。
- 'facebook-ads': 获取广告组或账户下的广告列表。
- 'facebook-insights': 提供更通用的 API 调用,允许自定义查询 Facebook Insights API。
- Prompt 模板 (Prompts): 仓库未明确提及 Prompt 模板功能。
- JSON-RPC 通信: 服务器使用 JSON-RPC 协议与客户端通信,并通过标准输入/输出 (Stdio) 进行数据传输,方便与 n8n 等工具集成。
- 会话管理和能力声明: MCP 服务器具备基本的能力声明(通过 'listTools' 方法),并能处理来自客户端的请求。
- n8n 集成: 项目特别强调与 n8n 工作流平台的集成,并提供了详细的安装和配置说明,方便用户在 n8n 中使用此 MCP 服务器。
安装步骤
-
克隆仓库:
git clone https://github.com/MarecoX/mcp-facebook-insights.git cd mcp-facebook-insights -
安装依赖: 确保你的系统已安装 Node.js (版本 14 或更高)。在仓库目录下运行:
npm install -
配置 Facebook API 凭据: 你需要拥有一个 Facebook 开发者账户,并创建一个应用,获取访问 Marketing API 的权限,并生成 App ID, App Secret 和 Access Token。
- 访问 Facebook Developers 创建应用。
- 在应用面板中添加 "Marketing API" 产品。
- 生成具有 'ads_management', 'ads_read' 等必要权限的 Access Token。
- 将 App ID, App Secret 和 Access Token 设置为环境变量:
export FB_APP_ID=你的_App_ID export FB_APP_SECRET=你的_App_Secret export FB_ACCESS_TOKEN=你的_Access_Token
-
启动服务器: 在仓库目录下运行:
node index.js服务器将通过 Stdio 监听请求。
服务器配置
为了让 MCP 客户端(例如 n8n 中的 MCP Client 节点)连接到此 MCP 服务器,你需要配置客户端的连接信息。以下是基于仓库信息生成的 MCP 服务器配置,以 JSON 格式提供:
{ "serverName": "facebook-insights-mcp-server", // MCP 服务器名称,可自定义 "command": "node", // 启动服务器的命令,这里使用 node.js 运行时 "args": [ // 命令参数 "/tmp/mcp_facebook/index.js" // MCP 服务器入口文件路径 (根据实际安装路径调整,如果在本地安装,可以使用仓库目录下的 index.js 相对路径,例如 "./index.js") ], "env": { // 环境变量配置 (可选,如果环境变量已在系统层面配置,此处可以省略) "FB_APP_ID": "你的_App_ID", // 你的 Facebook App ID "FB_APP_SECRET": "你的_App_Secret", // 你的 Facebook App Secret "FB_ACCESS_TOKEN": "你的_Access_Token" // 你的 Facebook Access Token } }
注意:
- '/tmp/mcp_facebook/index.js' 是 n8n 安装场景下的示例路径,本地安装时请根据 'index.js' 文件的实际路径进行配置,例如使用相对路径 './index.js'。
- 'env' 部分的环境变量配置是可选的,如果已经在运行 MCP 客户端的环境中设置了 'FB_APP_ID', 'FB_APP_SECRET' 和 'FB_ACCESS_TOKEN' 环境变量,则可以省略 'env' 配置。建议在服务器配置中直接配置,方便管理。
- 在 n8n 的 MCP Client 节点中,你需要将上述 JSON 配置信息填入相应的配置项,通常是 "Command" 和 "Arguments" 以及 "Environment Variables"。
基本使用方法
启动服务器后,MCP 客户端可以通过 Stdio 向服务器发送符合 MCP 协议的 JSON-RPC 请求,或者 n8n 格式的请求。
示例 (n8n 格式请求):
-
列出可用工具:
{ "type": "listTools" } -
执行 'facebook-list-ad-accounts' 工具:
{ "type": "callTool", "name": "facebook-list-ad-accounts", "arguments": {} } -
执行 'facebook-account-info' 工具,并传入参数:
{ "type": "callTool", "name": "facebook-account-info", "arguments": { "accountId": "act_你的广告账户ID" // 替换为实际的 Facebook 广告账户 ID } }
客户端接收到服务器返回的 JSON-RPC 响应,解析响应内容即可获取 Facebook Insights API 的数据。在 n8n 中,MCP Client 节点会自动处理与 MCP 服务器的通信和数据解析,用户可以在 n8n 工作流中直接使用返回的数据。
信息
分类
商业系统