项目简介

DataForSEO MCP 服务器是一个强大的后端应用,专为大型语言模型(LLM)设计,以便通过标准化的 Model Context Protocol (MCP) 访问和利用丰富的SEO工具和数据。它集成了DataForSEO的广泛API(包括SERP、关键词数据、反向链接、站内SEO、领域分析、内容分析、内容生成、电商、应用数据、商业数据、AI优化等),并可选支持Local Falcon API,实现通过自然语言进行全面的SEO分析、关键词研究、竞争对手分析和本地排名监控等任务。

主要功能点

  • 全面的SEO数据访问: 提供对DataForSEO涵盖的12个主要API类别及其数百个工具的访问,包括搜索结果、关键词、反向链接、页面健康度、领域技术栈、内容质量、AI生成内容、电商数据、移动应用数据、商业评论和LLM优化工具。
  • 本地SEO排名监控: 可选集成Local Falcon API,支持计算网格点、搜索商家信息、获取特定坐标排名以及运行完整的网格搜索,精确监控本地排名。
  • 多传输协议支持: 支持Stdio(标准输入输出)和Streamable HTTP(通过Cloudflare Workers实现SSE/WebSocket),方便与各种LLM平台集成。
  • 类型安全的工具定义: 使用Zod Schema定义所有工具的输入参数,确保数据传输的类型安全和清晰的接口文档。
  • 可扩展架构: 模块化设计,方便添加更多第三方SEO工具集成。
  • 会话管理与能力声明: 作为MCP服务器,它负责会话管理、向客户端声明其提供的工具及能力。

安装步骤

在本地运行服务器需要 Node.js 环境。

  1. 克隆仓库:
    git clone https://github.com/Skobyn/dataforseo-mcp-server.git
    cd dataforseo-mcp-server
  2. 安装依赖:
    npm install
  3. 构建项目:
    npm run build

服务器配置

MCP客户端需要知道如何启动并连接到此MCP服务器。以下是配置MCP客户端时可能需要的信息:

1. Stdio (本地或服务器部署): MCP客户端应配置为运行一个命令来启动服务器进程,并通过标准输入输出(Stdio)进行通信。

{
  "name": "DataForSEO SEO Tools Server (Stdio)",
  "command": "node",
  "args": [
    "dist/index.js"
  ],
  "env": {
    "DATAFORSEO_LOGIN": "YOUR_DATAFORSEO_LOGIN", // 您的DataForSEO API登录凭据
    "DATAFORSEO_PASSWORD": "YOUR_DATAFORSEO_PASSWORD", // 您的DataForSEO API密码
    // 可选: 如果使用Local Falcon API
    "LOCALFALCON_API_KEY": "YOUR_LOCALFALCON_API_KEY", // 您的Local Falcon API密钥
    "LOCALFALCON_API_URL": "YOUR_LOCALFALCON_CUSTOM_URL" // Local Falcon API的自定义URL,如果未提供则使用默认值
  },
  "transport": "stdio"
}

2. Cloudflare Workers (HTTP/SSE部署): 如果将服务器部署为Cloudflare Worker,MCP客户端应通过HTTP连接。

{
  "name": "DataForSEO SEO Tools Server (Cloudflare Worker)",
  "url": "https://dataforseo-mcp-server.<your-subdomain>.workers.dev", // 您的Cloudflare Worker部署后生成的URL
  "transport": "http"
}

基本使用方法

一旦MCP服务器成功启动并被MCP客户端连接,LLM就可以通过调用其注册的工具来执行任务。

例如,LLM可以调用 'serp_google_organic_live' 工具来获取Google的有机搜索结果:

// 假设您已在MCP客户端环境中
const searchResult = await client.callTool('serp_google_organic_live', {
  keyword: 'best seo tools',
  location_code: 2840, // 美国
  language_code: 'en'
});
console.log(searchResult); // LLM将接收到JSON格式的搜索结果

或者调用 'labs_google_related_keywords' 来获取相关关键词:

const keywordsResult = await client.callTool('labs_google_related_keywords', {
  keyword: 'seo tools',
  location_code: 2840,
  language_code: 'en',
  limit: 5
});
console.log(keywordsResult); // LLM将接收到JSON格式的相关关键词列表

信息

分类

网页与API