DataForSEO MCP Server

by dataforseo
Apache 2.0
21

Integrations

  • Provides access to Google SERP data through DataForSEO's SERP API, allowing retrieval of real-time search engine results including titles, descriptions, and URLs.

  • Supports server implementation built on Node.js, requiring v14 or higher for handling DataForSEO API requests and responses.

  • Offers a TypeScript-based implementation for creating and extending tools that interact with DataForSEO APIs.

DataForSEO MCP サーバー

DataForSEO 用のモデル コンテキスト プロトコル (MCP) サーバー実装。これにより、Claude は選択した DataForSEO API と対話し、標準化されたインターフェースを通じて SEO データを取得できるようになります。

特徴

  • SERP API: Google、Bing、Yahoo のリアルタイム検索エンジン結果ページ (SERP) データ。
  • KEYWORDS_DATA API: 検索ボリューム、クリック単価、その他の指標を含むキーワード調査およびクリックストリーム データ。
  • ONPAGE API: カスタマイズ可能なパラメータに従って Web サイトや Web ページをクロールし、オンページ SEO パフォーマンス メトリックを取得できます。
  • DATAFORSEO_LABS API: DataForSEO の社内データベースと独自のアルゴリズムに基づくキーワード、SERP、ドメインに関するデータ。

前提条件

  • Node.js (v14以上)
  • DataForSEO API 資格情報(API ログインとパスワード)

インストール

  1. リポジトリをクローンします。
git clone https://github.com/dataforseo/mcp-server-typescript cd mcp-server-typescript
  1. 依存関係をインストールします:
npm install
  1. 環境変数を設定します。
# Required export DATAFORSEO_USERNAME=your_username export DATAFORSEO_PASSWORD=your_password # Optional: specify which modules to enable (comma-separated) # If not set, all modules will be enabled export ENABLED_MODULES="SERP,KEYWORDS_DATA,ONPAGE,DATAFORSEO_LABS"

構築と実行

プロジェクトをビルドします。

npm run build

サーバーを実行します。

node build/index.js

利用可能なモジュール

以下のモジュールを有効化/無効化できます。

  • SERP : Google、Bing、Yahoo のリアルタイム SERP データ。
  • KEYWORDS_DATA : キーワード調査およびクリックストリーム データ。
  • ONPAGE : ウェブサイトやウェブページをクロールして、オンページ SEO パフォーマンス メトリックを取得します。
  • DATAFORSEO_LABS : DataForSEO のデータベースとアルゴリズムに基づくキーワード、SERP、ドメインに関するデータ。

新しいツール/モジュールの追加

モジュール構造

各モジュールは特定の DataForSEO API に対応しています。

実装オプション

次のいずれかを実行できます。

  1. 既存のモジュールに新しいツールを追加する
  2. 完全に新しいモジュールを作成する

新しいツールの追加

新しいモジュールまたは既存のモジュールに新しいツールを追加する方法は次のとおりです。

// src/modules/your-module/tools/your-tool.tool.ts import { BaseTool } from '../../base.tool'; import { DataForSEOClient } from '../../../client/dataforseo.client'; import { z } from 'zod'; export class YourTool extends BaseTool { constructor(private client: DataForSEOClient) { super(client); // DataForSEO API returns extensive data with many fields, which can be overwhelming // for AI agents to process. We select only the most relevant fields to ensure // efficient and focused responses. this.fields = [ 'title', // Example: Include the title field 'description', // Example: Include the description field 'url', // Example: Include the URL field // Add more fields as needed ]; } getName() { return 'your-tool-name'; } getDescription() { return 'Description of what your tool does'; } getParams(): z.ZodRawShape { return { // Required parameters keyword: z.string().describe('The keyword to search for'), location: z.string().describe('Location in format "City,Region,Country" or just "Country"'), // Optional parameters fields: z.array(z.string()).optional().describe('Specific fields to return in the response. If not specified, all fields will be returned'), language: z.string().optional().describe('Language code (e.g., "en")'), }; } async handle(params: any) { try { // Make the API call const response = await this.client.makeRequest({ endpoint: '/v3/dataforseo_endpoint_path', method: 'POST', body: [{ // Your request parameters keyword: params.keyword, location: params.location, language: params.language, }], }); // Validate the response for errors this.validateResponse(response); //if the main data array is specified in tasks[0].result[:] field const result = this.handleDirectResult(response); //if main data array specified in tasks[0].result[0].items field const result = this.handleItemsResult(response); // Format and return the response return this.formatResponse(result); } catch (error) { // Handle and format any errors return this.formatErrorResponse(error); } } }

新しいモジュールの作成

  1. モジュール用にsrc/modules/の下に新しいディレクトリを作成します。
mkdir -p src/modules/your-module-name
  1. モジュール ファイルを作成します。
// src/modules/your-module-name/your-module-name.module.ts import { BaseModule } from '../base.module'; import { DataForSEOClient } from '../../client/dataforseo.client'; import { YourTool } from './tools/your-tool.tool'; export class YourModuleNameModule extends BaseModule { constructor(private client: DataForSEOClient) { super(); } getTools() { return { 'your-tool-name': new YourTool(this.client), }; } }
  1. モジュールをsrc/config/modules.config.tsに登録します。
export const AVAILABLE_MODULES = [ 'SERP', 'KEYWORDS_DATA', 'ONPAGE', 'DATAFORSEO_LABS', 'YOUR_MODULE_NAME' // Add your module name here ] as const;
  1. src/index.tsでモジュールを初期化します。
if (isModuleEnabled('YOUR_MODULE_NAME', enabledModules)) { modules.push(new YourModuleNameModule(dataForSEOClient)); }

次にサポートしてほしいエンドポイント/APIは何ですか?

MCPサーバーの機能拡張には常に取り組んでいます。サポートを希望するDataForSEOエンドポイントやAPIがございましたら、下記までご連絡ください。

  1. 利用可能なものを確認するには、 DataForSEO APIドキュメントを確認してください。
  2. 以下の内容で GitHub リポジトリに問題を開きます:
    • サポートしてほしい API/エンドポイント。
    • ユースケースの簡単な説明。
    • 実装してほしい具体的な機能について説明してください。

皆様からのフィードバックは、次にサポートする API の優先順位付けに役立ちます。

リソース

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude が DataForSEO API と対話し、SERP、キーワード調査、ページ内メトリック、ドメイン分析などの SEO データにアクセスできるようにするモデル コンテキスト プロトコル サーバー。

  1. 特徴
    1. 前提条件
      1. インストール
        1. 構築と実行
          1. 利用可能なモジュール
            1. 新しいツール/モジュールの追加
              1. モジュール構造
              2. 実装オプション
              3. 新しいツールの追加
              4. 新しいモジュールの作成
            2. 次にサポートしてほしいエンドポイント/APIは何ですか?
              1. リソース

                Related MCP Servers

                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that enables web search, scraping, crawling, and content extraction through multiple engines including SearXNG, Firecrawl, and Tavily.
                  Last updated -
                  35
                  11
                  TypeScript
                  MIT License
                • -
                  security
                  F
                  license
                  -
                  quality
                  A Model Context Protocol server that enables Claude to perform Google Custom Search operations by connecting to Google's search API.
                  Last updated -
                  Python
                  • Linux
                • -
                  security
                  F
                  license
                  -
                  quality
                  A stdio-based server that enables interaction with the DataForSEO API through the Model Context Protocol, allowing users to fetch SEO data including search results, keywords data, backlinks, on-page analysis, and more.
                  Last updated -
                  145
                  JavaScript
                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that enables Claude to perform web research by integrating Google search, extracting webpage content, and capturing screenshots.
                  Last updated -
                  854
                  4
                  MIT License
                  • Apple

                View all related MCP servers

                ID: mrhdc9pzer