Skip to main content
Glama
dataforseo

DataForSEO MCP Server

Official
by dataforseo

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、ドメインに関するデータ。

Related MCP server: Google Search MCP Server

前提条件

  • 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,BACKLINKS,BUSINESS_DATA,DOMAIN_ANALYTICS"

# Optional: enable full API responses
# If not set or set to false, the server will filter and transform API responses to a more concise format
# If set to true, the server will return the full, unmodified API responses
export DATAFORSEO_FULL_RESPONSE="false"

NPM パッケージとしてインストール

パッケージをグローバルにインストールできます。

npm install -g dataforseo-mcp-server

またはインストールせずに直接実行します。

npx dataforseo-mcp-server

コマンドを実行する前に環境変数を設定することを忘れないでください。

# Required environment variables
export DATAFORSEO_USERNAME=your_username
export DATAFORSEO_PASSWORD=your_password

# Run with npx
npx dataforseo-mcp-server

構築と実行

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

npm run build

サーバーを実行します。

npm start

利用可能なモジュール

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

  • SERP : Google、Bing、Yahoo のリアルタイム SERP データ。

  • KEYWORDS_DATA : キーワード調査およびクリックストリーム データ。

  • ONPAGE : ウェブサイトやウェブページをクロールして、オンページ SEO パフォーマンス メトリックを取得します。

  • DATAFORSEO_LABS : DataForSEO のデータベースとアルゴリズムに基づくキーワード、SERP、ドメインに関するデータ。

  • BACKLINKS : あらゆるドメイン、サブドメイン、または Web ページのインバウンド リンク、参照ドメイン、参照ページに関するデータ。

  • BUSINESS_DATA : Google、Trustpilot、Tripadvisor などのプラットフォームで公開されているビジネスレビューとビジネス情報に基づきます。

  • DOMAIN_ANALYTICS : ウェブサイトの構築に使用される可能性のあるすべてのテクノロジーを識別し、Whois データを提供します。

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

モジュール構造

各モジュールは特定の 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 の優先順位付けに役立ちます。

リソース

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dataforseo/mcp-server-typescript'

If you have feedback or need assistance with the MCP directory API, please join our Discord server