Skip to main content
Glama
fujioka0729

meta-ads-mcp

by fujioka0729

meta-ads-mcp

Meta Ads API (Facebook/Instagram広告) を Claude Code から操作するための MCP サーバーと Skills。

キャンペーン管理・広告セット作成・インサイト取得・オーディエンス管理など、Meta Ads の各種 API を Claude Code の会話から直接利用できます。

Note: このプロジェクトは Meta Platforms, Inc. の公式ツールではありません。Meta Marketing API の公開仕様をもとに作成した非公式の連携ツールです。

構成

meta-ads-mcp/
├── MCP サーバー (src/, bin/)    ... APIを実際に叩く「手足」
└── Skills (skills/)             ... APIの使い方を知る「知識」
  • MCP サーバー: 8つの汎用ツール(GET/POST/DELETE + 管理系)を提供

  • Skills: API リファレンス 7 ファイル + 操作ガイド 6 ファイル

Related MCP server: Meta Ads MCP Server

セットアップ

前提条件

  • Node.js 18 以上

  • Claude Code インストール済み

Step 1: Meta アプリの作成

  1. developers.facebook.com にアクセス

  2. 「マイアプリ」→「アプリを作成」

  3. アプリタイプは必ず「ビジネス」を選択(「生活者」だと広告系の権限が使えません)

  4. アプリ名を入力(meta, facebook, insta 等の商標は使用不可)

  5. ビジネスポートフォリオを選択(任意)

  6. 「アプリを作成」をクリック

Step 2: Marketing API の追加

  1. アプリのダッシュボード → 「アプリに製品を追加」

  2. マーケティングAPI」の「設定」をクリック

  3. 左メニューに「マーケティングAPI」が追加されることを確認

Step 3: App ID / App Secret の確認

  1. 左メニュー → 「アプリの設定」→「ベーシック」

  2. アプリIDapp secret(「表示」をクリック)を控える

Step 4: アクセストークンの取得

Graph API Explorer を使ってトークンを取得します。

  1. Graph API Explorer にアクセス

  2. 右上の「Metaアプリ」で作成したアプリを選択

  3. 「許可を追加」欄に以下を1つずつ入力して追加:

    • ads_management

    • ads_read

    • read_insights

    • business_management

  4. Generate Access Token」をクリック

  5. Facebook ログイン画面で権限を許可

  6. 生成されたアクセストークンをコピー(後で使います)

Step 5: Skills のインストール

npx graph-ads-mcp setup-skills

~/.claude/skills/meta-ads-api-skill/ に API リファレンスと操作ガイドがインストールされます。

Step 6: MCP サーバーの登録

~/.claude/settings.jsonmcpServers に追加:

{
  "mcpServers": {
    "meta-ads": {
      "command": "npx",
      "args": ["graph-ads-mcp"]
    }
  }
}

Step 7: Claude Code を再起動

Step 8: MCP の設定

Claude Code の会話で認証情報を設定します:

meta_ads_configure({
  ad_account_id: "act_XXXXX",
  app_id: "あなたのアプリID",
  app_secret: "あなたのApp Secret"
})

広告アカウント ID がわからない場合

設定後に以下で確認できます:

meta_ads_api_get({ path: "/me/adaccounts", query: { fields: "id,name" } })

Step 9: トークンの保存

方法 A: OAuth 認証(ブラウザ)

Meta広告の認証をして

ブラウザが開き Facebook ログイン画面が表示されます。認証完了後、long-lived トークン(60日有効)が自動保存されます。

Note: ビジネスタイプのアプリでは OAuth フローが動作しない場合があります。その場合は方法 B を使ってください。

方法 B: Graph API Explorer のトークンを保存(推奨)

Step 4 で取得したトークンを Claude Code の会話で貼り付けるだけです:

meta_ads_save_token({ access_token: "Step4で取得したトークン" })

自動的に long-lived トークン(60日有効)に交換して保存されます。

Step 10: 動作確認

Meta広告のキャンペーン一覧を取得して

MCP ツール一覧

ツール

説明

meta_ads_api_get

GET リクエスト(データ取得)

meta_ads_api_post

POST リクエスト(データ作成・更新)

meta_ads_api_delete

DELETE リクエスト(データ削除)

meta_ads_api_list_paths

利用可能なエンドポイント一覧

meta_ads_configure

認証情報設定

meta_ads_authenticate

OAuth認証(ブラウザ)

meta_ads_save_token

トークン保存(Graph API Explorer用、long-lived自動交換)

meta_ads_auth_status

認証状態確認

meta_ads_server_info

サーバー情報表示

Skills 構成

skills/meta-ads-api-skill/
├── SKILL.md                         # スキル定義・全体目次
├── references/ (7 ファイル)          # API エンドポイント仕様書
│   ├── campaigns.md                 # キャンペーン
│   ├── adsets.md                    # 広告セット
│   ├── ads.md                       # 広告
│   ├── creatives.md                 # クリエイティブ
│   ├── audiences.md                 # オーディエンス
│   ├── insights.md                  # インサイト
│   └── common-authentication.md     # 認証
└── recipes/ (6 ファイル)             # 操作手順ガイド
    ├── campaign-management.md       # キャンペーン管理
    ├── adset-management.md          # 広告セット管理
    ├── ad-management.md             # 広告管理
    ├── insights-reporting.md        # インサイト・レポート
    ├── audience-management.md       # オーディエンス管理
    └── troubleshooting.md           # トラブルシューティング

トラブルシューティング

アプリタイプを間違えた

アプリタイプは作成後に変更できません。「生活者」で作成してしまった場合は、新しく「ビジネス」タイプでアプリを作り直してください。

「Invalid Scopes」エラーが出る

アプリタイプが「生活者」の場合、ads_management 等の広告系権限は使えません。「ビジネス」タイプでアプリを作り直してください。

OAuth 認証で「機能をご利用いただけません」

ビジネスタイプのアプリでは通常の Facebook ログインではなく「ビジネス向け Facebook ログイン」が使われます。Graph API Explorer でトークンを取得する方法(Step 4 + Step 9 方法 B)を使ってください。

MCP サーバーが認識されない

  • settings.json のパスが正しいか確認

  • Claude Code を再起動したか確認

  • npx graph-ads-mcp を直接実行してエラーが出ないか確認

認証エラー (OAuthException)

  • トークンの有効期限を確認: meta_ads_auth_status ツール

  • トークン期限切れの場合は Step 4 → Step 9 でトークンを再取得

  • トークンキャッシュを削除: rm ~/.config/meta-ads-mcp/tokens.json

権限不足

  • Graph API Explorer で必要な権限を追加してトークンを再生成

  • 開発モードでは自分のアカウントのみアクセス可能

  • 他ユーザーのアカウントにアクセスするにはアプリレビューが必要

トークンの有効期限

  • Graph API Explorer で取得したトークン: 約1-2時間

  • long-lived トークン(交換後): 約60日

  • 期限切れ後は Step 4 → Step 9 でトークンを再取得

レート制限

Meta Ads API のレート制限は広告アカウント単位。制限に達した場合は数分待ってから再試行してください。

ソースからビルドする場合

git clone https://github.com/fujioka0729/graph-ads-mcp.git
cd meta-ads-mcp
npm install
npm run build

ライセンス

MIT

Available Tools

9 tools
meta_ads_api_deleteC

Meta Ads APIにDELETEリクエストを送信します

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAPIパス(例: /{campaign_id})
queryNoクエリパラメータ

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavioral traits. It only says 'sends DELETE request,' adding nothing beyond the name. No mention of authentication, idempotency, side effects, error handling, or return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence with no extra words, but it is too brief to be informative. It is concise but under-specified, missing critical details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool lacks an output schema and annotations, and the description does not explain return values, side effects, or what the delete operation entails. It is completely inadequate for a deletion tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both path and query. The description adds no further meaning beyond what the schema provides, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it sends DELETE requests to the Meta Ads API, which is a specific verb+resource. However, it does not differentiate from sibling HTTP method tools beyond the HTTP verb, but the tool name already indicates DELETE.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get, post). There is no mention of prerequisites, when not to use, or typical use cases. The agent must infer from the HTTP method semantics.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ads_api_getC

Meta Ads APIにGETリクエストを送信します

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAPIパス(例: /act_XXXXX/campaigns)
queryNoクエリパラメータ(例: fields, limit)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full responsibility but only states it sends a GET request. It does not disclose authentication needs, rate limits, error behavior, or side effects. This is insufficient for an API tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, but it sacrifices essential detail for brevity. While concise, it lacks content that would be valuable for an agent, making it less effective than a slightly longer but more informative description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, no output schema, and multiple sibling tools, the description is too sparse. It does not explain response format, required permissions, or how to construct paths/parameters effectively, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for both parameters (path and query) in Japanese. The tool description adds no additional meaning beyond what the schema states, so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it sends a GET request to the Meta Ads API, which distinguishes it from sibling tools like meta_ads_api_post or meta_ads_api_delete. However, it could be more specific about the scope (e.g., any endpoint) but the verb and resource are clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context for invocation. The description is too minimal to help an agent decide when to choose this over other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ads_api_list_pathsA

Meta Ads APIの既知エンドポイント一覧を表示します

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the function without disclosing behavioral traits like idempotency, safety, or prerequisites (e.g., prior authentication). The agent cannot infer side effects or requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no filler. It is front-loaded and appropriately sized for a tool with no parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool with no parameters and no output schema, the description is minimally adequate but lacks details about the return format or prerequisites. It could mention that the list contains endpoint strings and whether it requires prior authentication, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema coverage is 100%. Per calibration, the baseline is 4. The description adds no parameter information, which is acceptable as there are none to describe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool displays a list of known endpoints of the Meta Ads API, using a specific verb and resource. It distinguishes from sibling tools that perform mutations (delete, get, post) or handle authentication.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as whether it should be called before other operations or if authentication is required first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ads_api_postB

Meta Ads APIにPOSTリクエストを送信します(作成・更新兼用)

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAPIパス(例: /act_XXXXX/campaigns)
bodyYesリクエストボディ
queryNoクエリパラメータ

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only says it sends POST requests for create/update, but lacks disclosure of rate limits, error handling, side effects, or authentication requirements. The mutation nature is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence in Japanese that is front-loaded with the core purpose. Every word earns its place with no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, the description is too minimal. It does not explain how to construct the path, expected response format, or error handling. For a general-purpose POST tool, more behavioral context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters (path, body, query). The description adds no additional meaning beyond confirming that the tool is for POST requests, which is expected from the name and schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it sends POST requests to the Meta Ads API for both creation and update operations. The verb '送信' (send) and resource 'POSTリクエスト' (POST request) are specific, and it distinguishes from siblings like GET and DELETE.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating and updating resources but does not explicitly state when to use this tool versus alternatives like meta_ads_api_get or meta_ads_api_delete. No when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ads_authenticateB

Meta Ads APIのOAuth認証を開始します。ブラウザでFacebookログインを行います。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It mentions starting authentication and Facebook login but does not disclose that it opens a browser window, requires user interaction, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that directly state the tool's function with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters or output schema, the description covers the basic purpose. However, it lacks operational context like needing user interaction or how the result is handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the schema coverage is 100%. Baseline for zero parameters is 4; description adds nothing extra but that's acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it starts OAuth authentication for Meta Ads API and performs Facebook login. It distinguishes from siblings like meta_ads_auth_status (check status) but could be more specific about the process.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. It does not mention prerequisites or ordering with sibling tools like meta_ads_save_token.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ads_auth_statusA

Meta Ads APIの認証状態を確認します

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so description must fully disclose behavior. It only states the action without details on return value, side effects (likely none), or how status is reported. Lacks transparency for a mutation-free tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence directly stating purpose. No redundant information; front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, the description covers the basic purpose but lacks details on return format or behavior. Adequate for a simple status check but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters with 100% coverage. Description adds no parameter details, but with no parameters, baseline is 4. No additional meaning needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks authentication status of Meta Ads API. It uses a specific verb-resource combination and distinguishes from siblings like meta_ads_authenticate (which performs authentication) and meta_ads_save_token (which saves tokens).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While the purpose is clear, the description does not specify prerequisites or scenarios (e.g., check before API calls), leaving usage implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ads_configureB

Meta Ads APIの接続設定を保存します

ParametersJSON Schema
NameRequiredDescriptionDefault
ad_account_idYes広告アカウントID(act_XXXXX形式)
app_idYesMetaアプリID
app_secretYesMetaアプリシークレット

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It indicates a write operation ('save') but does not detail side effects, idempotency, overwrite behavior, or authentication requirements. The agent cannot anticipate what happens if settings already exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that conveys the core purpose without filler. However, it is extremely brief and could be expanded without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and the sensitivity of a configuration tool, the description lacks important context: what happens after saving (success/failure), whether previous settings are overwritten, and any required setup steps. The agent may not know if the tool is intended for initial setup or updates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already describes all three parameters adequately. The description adds no additional parameter semantics beyond the schema, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Save the connection settings for the Meta Ads API' uses a specific verb (save) and clearly identifies the resource (connection settings). It distinguishes from sibling tools like meta_ads_api_get or meta_ads_authenticate, which are API calls or authentication flows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., meta_ads_authenticate or meta_ads_save_token). It does not mention prerequisites, setup order, or context for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ads_save_tokenA

Graph API Explorerで取得したアクセストークンを保存します。short-livedトークンは自動的にlong-lived(60日有効)に交換されます。

ParametersJSON Schema
NameRequiredDescriptionDefault
access_tokenYesGraph API Explorerで取得したアクセストークン

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the automatic token exchange to long-lived (60 days), but omits other effects like overwriting existing tokens or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no extraneous words. It front-loads the primary action and efficiently conveys the key behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple save tool with one parameter and no output schema, the description adequately covers purpose and key behavior. However, it lacks information on return values or error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear parameter description. The tool description adds the automatic exchange behavior, but this is about the tool's action rather than parameter semantics, so minimal added value above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it saves an access token from Graph API Explorer. It distinguishes itself from siblings like meta_ads_authenticate by specifying the source and automatic long-lived exchange.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after obtaining a token from Graph API Explorer but does not explicitly contrast with alternatives like meta_ads_authenticate or provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meta_ads_server_infoA

MCPサーバーのバージョンと接続先情報を表示します

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states 'displays,' implying a read-only operation, but does not elaborate on return format, potential errors, or prerequisites (e.g., authentication). Minimal but adequate for a simple tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the key information. Every word is efficient, with no redundancy or waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (no parameters, no output schema), the description is largely complete. It could mention whether authentication is required or what the output looks like, but this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema description coverage is 100% (trivial). Per guidelines, baseline is 4. The description adds no parameter info, which is acceptable given the absence of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: displaying MCP server version and connection info. It uses a specific verb-resource pair ('表示します') and distinguishes itself from sibling tools that handle API operations, authentication, and configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implicitly clear as a simple informational tool with no parameters. While no explicit when-to-use or alternatives are given, the context (server info) is straightforward, and no exclusions are needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.1.0
    • First observedmeta_ads_api_delete
    • First observedmeta_ads_api_get
    • First observedmeta_ads_api_list_paths
    • First observedmeta_ads_api_post
    • First observedmeta_ads_auth_status
    • First observedmeta_ads_authenticate
    • First observedmeta_ads_configure
    • First observedmeta_ads_save_token
    • First observedmeta_ads_server_info

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation5/5

Each tool has a distinct purpose: generic HTTP methods (GET, POST, DELETE), endpoint listing, authentication, configuration, and server info. No overlap between them.

Naming Consistency5/5

All tools follow a consistent pattern with 'meta_ads_' prefix and underscore-separated names, e.g., meta_ads_api_get, meta_ads_authenticate.

Tool Count5/5

With 9 tools, the set is well-scoped for an API wrapper: authentication, configuration, and basic CRUD via HTTP methods. Neither too few nor too many.

Completeness4/5

Covers essential operations: auth, config, and raw API calls (GET, POST, DELETE). However, it lacks higher-level abstractions for common ad operations, relying on users knowing endpoints.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server for managing and analyzing Meta Ads (Facebook/Instagram) with over 80 natural-language tools for AI agents like Claude Desktop.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Python MCP server that exposes Meta Marketing API data, providing tools to manage ad accounts, campaigns, and analytics through natural language interfaces.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP Server for the Meta Marketing API. Gives Claude Desktop direct access to your ad account data — campaign performance, creative analysis, audience breakdowns, and budget pacing.
    10
    133
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server that enables AI agents (Claude Code) to manage Criteo campaigns, ad sets, creatives, audiences, and reports via natural language.
    -