Skip to main content
Glama
amazonads-mcp

amazonads-mcp

by cprice70

Amazon Ads MCP Server

Ein Model Context Protocol (MCP)-Server, der Tools für die Interaktion mit der Amazon Advertising API bereitstellt. Dieser Server ermöglicht es KI-Assistenten, Amazon Ads-Kampagnen, Keywords, Leistungsdaten und mehr zu verwalten.

Funktionen

Dieser MCP-Server stellt die folgenden Tools bereit:

  • get_profiles: Alle verfügbaren Amazon Ads-Profile/Konten auflisten

  • get_campaigns: Werbekampagnen abrufen, optional gefiltert nach Status und Typ

  • get_campaign_performance: Leistungsmetriken für Kampagnen abrufen (Impressionen, Klicks, Kosten, Umsatz)

  • get_keywords: Keywords für Kampagnen oder Anzeigengruppen abrufen

  • update_keyword_bid: Gebote für bestimmte Keywords aktualisieren

  • create_campaign: Neue Werbekampagnen erstellen

  • get_product_ads: Produktanzeigen für Kampagnen oder Anzeigengruppen abrufen

Related MCP server: Amazon Ads API MCP

Voraussetzungen

  1. Amazon Ads-Konto: Sie benötigen ein aktives Amazon Ads-Konto

  2. API-Anmeldedaten: Registrieren Sie sich für den Zugriff auf die Amazon Ads API und erhalten Sie:

    • Client-ID

    • Client-Geheimnis

    • Aktualisierungstoken (Refresh Token)

Amazon Ads API-Anmeldedaten erhalten

Schritt 1: Registrieren Sie Ihre Anwendung

  1. Gehen Sie zu Amazon Advertising API

  2. Melden Sie sich mit Ihrem Amazon Ads-Konto an

  3. Navigieren Sie zum Developer Center und erstellen Sie eine neue Anwendung

  4. Sie erhalten eine Client-ID und ein Client-Geheimnis – bewahren Sie diese auf!

Schritt 2: Erhalten Sie Ihr Aktualisierungstoken

Wir stellen ein Hilfsskript bereit, um Ihr Aktualisierungstoken über den OAuth-Ablauf zu erhalten:

  1. Erstellen Sie eine .env-Datei im Projektstamm:

    AMAZON_ADS_CLIENT_ID=your_client_id_here
    AMAZON_ADS_CLIENT_SECRET=your_client_secret_here
  2. Führen Sie das OAuth-Hilfsskript aus:

    npm run get-token
  3. Ihr Browser öffnet die Autorisierungsseite von Amazon

  4. Melden Sie sich an und autorisieren Sie die Anwendung

  5. Das Skript zeigt Ihr Aktualisierungstoken an – kopieren Sie es in Ihre .env-Datei

Schritt 3: Notieren Sie Ihre Region

Bestimmen Sie Ihre Werberegion:

  • NA: Nordamerika (amazon.com)

  • EU: Europa (amazon.co.uk, amazon.de usw.)

  • FE: Fernost (amazon.co.jp usw.)

Installation

  1. Klonen Sie dieses Repository:

git clone <your-repo-url>
cd amazonads-mcp
  1. Installieren Sie die Abhängigkeiten:

npm install
  1. Erstellen Sie das Projekt:

npm run build

Konfiguration

Umgebungsvariablen

Erstellen Sie eine .env-Datei oder setzen Sie die folgenden Umgebungsvariablen:

AMAZON_ADS_CLIENT_ID=your_client_id
AMAZON_ADS_CLIENT_SECRET=your_client_secret
AMAZON_ADS_REFRESH_TOKEN=your_refresh_token
AMAZON_ADS_REGION=NA  # Options: NA, EU, FE
AMAZON_ADS_SANDBOX=false  # Set to true for testing with sandbox API

Claude Desktop-Konfiguration

Fügen Sie diesen Server zu Ihrer Claude Desktop-Konfigurationsdatei hinzu:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "amazonads": {
      "command": "node",
      "args": ["/absolute/path/to/amazonads-mcp/build/index.js"],
      "env": {
        "AMAZON_ADS_CLIENT_ID": "your_client_id",
        "AMAZON_ADS_CLIENT_SECRET": "your_client_secret",
        "AMAZON_ADS_REFRESH_TOKEN": "your_refresh_token",
        "AMAZON_ADS_REGION": "NA"
      }
    }
  }
}

Verwendungsbeispiele

Sobald Sie in Claude Desktop konfiguriert sind, können Sie Claude bitten:

  • „Zeig mir alle meine Amazon Ads-Kampagnen"

  • „Wie sind die Leistungsmetriken für Kampagne 12345 vom 1. Januar bis 31. Januar?"

  • „Liste alle Keywords für Kampagne 12345 auf"

  • „Aktualisiere das Gebot für Keyword 67890 auf 1,50 $"

  • „Erstelle eine neue Sponsored Products-Kampagne mit einem Tagesbudget von 50 $"

  • „Zeig mir alle Produktanzeigen in Kampagne 12345"

Entwicklung

Projektstruktur

amazonads-mcp/
├── src/
│   ├── index.ts              # Main MCP server implementation
│   └── amazon-ads-client.ts  # Amazon Ads API client
├── build/                     # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── README.md

Erstellen

npm run build

Entwicklungsmodus

Auf Änderungen achten und automatisch neu erstellen:

npm run watch

Testen des Servers

Führen Sie den Server direkt aus:

npm start

Der Server kommuniziert über stdio und erwartet MCP-Protokollnachrichten.

API-Abdeckung

Dieser Server unterstützt derzeit:

  • Sponsored Products: Volle Unterstützung für Kampagnen, Keywords und Produktanzeigen

  • Sponsored Brands: Kampagnenverwaltung (teilweise Unterstützung)

  • Sponsored Display: Kampagnenverwaltung (teilweise Unterstützung)

  • Reporting: Grundlegende Leistungsmetriken (vereinfachte Implementierung)

Wichtige Hinweise

  1. Ratenbegrenzung: Die Amazon Ads API hat Ratenbegrenzungen. Der Client implementiert derzeit keine Logik zur Ratenbegrenzung.

  2. Reporting-API: Das Tool get_campaign_performance verwendet eine vereinfachte Implementierung. Für den Produktionseinsatz sollten Sie den vollständigen asynchronen Reporting-Ablauf implementieren:

    • Berichtsanfrage erstellen

    • Auf Abschluss des Berichts warten

    • Bericht herunterladen und analysieren

  3. Fehlerbehandlung: API-Fehler werden an den Aufrufer zurückgegeben. Stellen Sie sicher, dass die Anmeldedaten korrekt konfiguriert sind, um Authentifizierungsfehler zu vermeiden.

  4. Regionen: Stellen Sie sicher, dass Sie die richtige Region (NA, EU, FE) basierend auf Ihrem Amazon Ads-Konto festlegen.

Sicherheit

  • Committen Sie niemals Ihre .env-Datei und geben Sie keine API-Anmeldedaten preis

  • Aktualisierungstokens sollten sicher gespeichert werden

  • Erwägen Sie die Implementierung einer Anmeldedatenrotation für den Produktionseinsatz

Ressourcen

Lizenz

MIT

Mitwirken

Beiträge sind willkommen! Bitte zögern Sie nicht, einen Pull Request einzureichen.

Available Tools

9 tools
archive_campaignA

Archive a campaign. Archived campaigns cannot spend money and are hidden from default views. This is the only way to 'delete' a campaign in Amazon Ads.

NameRequiredDescriptionDefault
profileIdYesThe Amazon Ads profile ID
campaignIdYesThe campaign ID to archive
campaignTypeYesType of campaign

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses the key behavioral effects (cannot spend, hidden from default views) and clarifies it's the permanent-ish deletion mechanism. However, it doesn't mention reversibility or any downstream effects on reporting, which would be additional value, but it's already quite transparent.

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, front-loaded with the action, and every word adds value. It is concise without sacrificing essential behavioral information.

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 complexity (a write operation with no annotations or output schema), the description sufficiently explains the impact on the campaign status. It could include more about prerequisites or reversibility, but it is complete enough for an agent to understand the primary outcome and use case.

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 each parameter (profileId, campaignId, campaignType) is already documented. The description adds no extra meaning to the parameters themselves, only contextualizing the overall effect. This meets the baseline for high coverage.

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 action ('Archive a campaign') and the resource, and distinguishes it from siblings by noting it's the only way to 'delete' a campaign. It also specifies the consequences (cannot spend money, hidden from default views), making the purpose unambiguous.

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 description provides clear context on when to use the tool (to effectively delete a campaign) and explains the behavioral outcome. It doesn't explicitly name alternatives or exclusion criteria, but it implies this is the go-to for removal, which is sufficient for basic guidance.

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

create_campaignC

Create a new advertising campaign in Amazon Ads.

NameRequiredDescriptionDefault
nameYesCampaign name
profileIdYesThe Amazon Ads profile ID
startDateYesCampaign start date in YYYY-MM-DD format
dailyBudgetYesDaily budget amount
campaignTypeYesType of campaign to create
targetingTypeYesTargeting type for the campaign

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but it offers none. It does not mention side effects (e.g., billing activation, campaign limits), authentication requirements, rate limits, or what happens upon successful creation. This is a significant gap for a mutating 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, front-loaded sentence with zero wasted words. It conveys the core action and scope efficiently, though it sacrifices depth for brevity.

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?

For a mutation tool with 6 required parameters and no annotations or output schema, the description is severely under-specified. It omits return values, side effects, prerequisites, and any operational context needed to safely invoke the tool, making it inadequate for autonomous agent use.

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 all six parameters are already documented with names/types/enums. The description adds no additional meaning beyond the schema, which matches the baseline of 3 for high schema coverage.

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 uses a specific verb ('Create') and resource ('advertising campaign') plus platform ('Amazon Ads'), making the tool's purpose immediately clear. It also distinguishes itself from sibling tools like get_campaigns and archive_campaign by explicitly focusing on creation.

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 about when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or scenarios where creation would be inappropriate, leaving the agent to infer usage solely from the verb 'create'.

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

get_campaign_performanceA

Create a performance report for campaigns. Returns metrics like impressions, clicks, cost, sales. If the report takes more than 5 seconds to generate, returns a PENDING status with a reportId - use get_report to fetch the completed report.

NameRequiredDescriptionDefault
endDateYesEnd date in YYYY-MM-DD format
profileIdYesThe Amazon Ads profile ID
startDateYesStart date in YYYY-MM-DD format
campaignIdYesThe campaign ID to get performance data for

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It transparently discloses asynchronous behavior, the 5-second threshold, PENDING status, and the need to call get_report with the returned reportId. It does not mention authentication or side effects, but the key behaviors are covered.

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 deliver the core purpose, sample metrics, and async follow-up behavior with no filler. Critical information is front-loaded.

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 there is no output schema and no annotations, the description usefully covers the main return scenarios and follow-up step. It could specify more about the immediate non-pending response shape, but the description is sufficient for correct tool selection and invocation.

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%, with each of the four parameters already documented. The description adds no additional parameter-level detail, so the baseline score of 3 is appropriate.

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 creates a campaign performance report and returns metrics like impressions, clicks, cost, and sales. It also distinguishes itself from siblings: get_campaigns lists campaigns, while get_report retrieves the completed async report.

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 description gives clear context for when to use this tool and explicitly directs users to get_report when a PENDING status is returned. It lacks a broader 'when not to use' statement, but the conditional handoff to get_report is strong guidance.

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

get_campaignsA

Retrieve a list of advertising campaigns from Amazon Ads. Optionally filter by campaign state (enabled, paused, archived) and campaign type (sponsoredProducts, sponsoredBrands, sponsoredDisplay).

NameRequiredDescriptionDefault
stateNoOptional: Filter campaigns by state
profileIdYesThe Amazon Ads profile ID to query campaigns for
campaignTypeNoOptional: Filter by campaign type

TDQS

A4/5.0
Behavior3/5

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

There are no annotations available, so the description carries the full transparency burden. It conveys that this is a non-mutating list operation and names its filters, but it does not mention pagination behavior, default limits, or what fields/campaign data are actually returned.

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 only two sentences, front-loaded with the main purpose, and every sentence adds relevant information. No filler or redundant explanation is present.

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?

For a simple listing tool with three parameters and no nested objects, the description is mostly complete: it gives the output type and the available filters. The main gap is that no output schema exists and the description does not address pagination or field-level return details, but these are not critical for basic tool selection.

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 schema covers all three parameters, including enum values for state and campaignType, so schema coverage is high. The description mostly restates these filter options without adding meaningful new parameter semantics beyond what the schema already documents.

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 starts with a specific verb and resource: 'Retrieve a list of advertising campaigns from Amazon Ads.' This clearly identifies what the tool does and naturally distinguishes it from sibling tools like get_campaign_performance or get_report.

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 description makes it clear that this tool is for retrieving campaigns and that state/type filters are optional. It does not explicitly name alternatives such as get_campaign_performance for performance data, so it stops short of the strongest guidance, but the core usage context is unambiguous.

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

get_keywordsA

Retrieve keywords for a specific campaign or ad group, including bid amounts and match types.

NameRequiredDescriptionDefault
adGroupIdNoOptional: Filter keywords by ad group ID
profileIdYesThe Amazon Ads profile ID
campaignIdNoOptional: Filter keywords by campaign ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the burden. It mentions 'Retrieve' indicating a read operation, but provides no additional transparency about side effects, permissions, rate limits, or error handling. The read-only nature is implicit from the verb.

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 redundant information. It efficiently communicates the tool's purpose.

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 simple nature of a get operation and no output schema, the description adequately covers what is returned (bid amounts, match types). It could mention that all keywords are returned when no filters are applied, but the required profileId implies context. Overall, it is fairly complete.

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 schema already provides clear descriptions for all parameters. The description adds minimal extra meaning beyond restating that filtering can be by campaign or ad group. It does not clarify parameter usage beyond what is already in the 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 the action (retrieve keywords), the target (specific campaign or ad group), and additional data (bid amounts, match types). It is distinct from sibling tools like get_campaigns or get_report.

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 filtering by campaign or ad group but does not explicitly contrast with other tools or provide guidance on when to use this instead of alternatives. It lacks explicit when-to-use or when-not-to-use context.

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

get_product_adsA

Retrieve product ads for a specific campaign or ad group.

NameRequiredDescriptionDefault
adGroupIdNoOptional: Filter by ad group ID
profileIdYesThe Amazon Ads profile ID
campaignIdNoOptional: Filter by campaign ID

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 the full burden of behavioral disclosure. It only restates the read operation implied by the tool name and does not describe the return format, pagination behavior, or what happens when no filters are provided. This adds minimal value beyond the name.

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 sentence that front-loads the verb and object, with no filler or redundant phrasing. It is appropriately concise for the information it conveys.

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?

The tool is simple and has only three parameters, so the description is not severely incomplete. However, without an output schema or annotations, the description should have explained response behavior and the optionality of filters to be fully complete.

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 schema already describes all three parameters with 100% coverage, so the baseline is 3. The description adds no meaningful parameter semantics beyond echoing the campaign/ad group filter concept, which is already in the 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 uses a specific verb ('Retrieve') and a clear resource ('product ads'), with scoping to 'a specific campaign or ad group.' This clearly distinguishes it from sibling tools like get_keywords and get_campaigns, which target different resources.

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 the tool is for fetching product ads associated with a campaign or ad group, but it does not explicitly discuss when to prefer this over sibling tools, nor does it clarify that campaignId and adGroupId are optional filters. The phrase 'for a specific campaign or ad group' slightly conflicts with the schema, where both filters are optional.

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

get_profilesA

List all available Amazon Ads profiles (accounts) that the authenticated user has access to.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/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 discloses the authentication scoping and the listing behavior, but does not mention pagination, ordering, or what fields are returned. This is adequate but not rich for a tool with no annotation safety net.

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, well-structured sentence with the verb front-loaded and no filler. Every word earns its place.

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?

For a zero-parameter tool with no output schema, the description is nearly complete. A small gap is the lack of information about what profile data is returned (e.g., IDs needed for other calls), but this is a minor omission given the tool's simplicity.

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?

With zero parameters, the baseline is 4. The description adds minor context about the scope of the list but there is little else needed given the empty schema. The description does not contradict the 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 uses a specific verb ('List') with a clear resource ('all available Amazon Ads profiles (accounts)') and adds scope ('that the authenticated user has access to'). This clearly distinguishes it from siblings like get_campaigns or get_report.

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 context—scoping results to the authenticated user—but does not explicitly state when to use this tool versus alternatives or mention that profile IDs from this call are prerequisites for other API calls. No explicit exclusions or alternatives are given.

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

get_reportA

Check status and download a previously requested report. Use this after get_campaign_performance returns PENDING status.

NameRequiredDescriptionDefault
reportIdYesThe report ID returned from get_campaign_performance
profileIdYesThe Amazon Ads profile ID

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It conveys a read/download operation, implies a prerequisite (prior report request), and mentions checking status, which covers the key behaviors. However, it doesn't state explicitly that it is read-only or describe potential outputs, but the core safety and workflow behavior are clear.

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 short sentences: the first states the action, the second gives the trigger condition. No filler, fully front-loaded, and every word contributes.

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?

For a small tool with two well-covered parameters and no output schema, the description sufficiently completes the context: it tells the agent what to docj and when. Missing details like output format or error handling are not critical given the tool's simplicity, but a brief note on return payload would be slightly better.

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?

Schema coverage is 100% with decent descriptions, but the tool description adds crucial context: it links reportId to the output of get_campaign_performance)Skip. This gives the agent more semantic grounding than the raw schema alone, especially for the reportId parameter.

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 dual purpose: checking status and downloading a previously requested report. It explicitly references the prerequisite from a sibling tool (get_campaign_performance returning PENDING), which distinguishes it from the creation tool and clarifies its role in the workflow.

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

Usage Guidelines5/5

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

It explicitly says 'after get_campaign_performance returns PENDING status', giving a clear condition for when to use this tool. This provides direct usage context without ambiguity, and no alternatives are needed since this is the designated follow-up.

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

update_keyword_bidB

Update the bid amount for a specific keyword.

NameRequiredDescriptionDefault
bidYesThe new bid amount
keywordIdYesThe keyword ID to update
profileIdYesThe Amazon Ads profile ID

TDQS

B3.2/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 the full burden of behavioral disclosure. It reveals a mutation but does not mention permission requirements, response behavior, idempotency, constraints on bid values, or side effects. This is a minimal disclosure for a write operation.

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, front-loaded sentence with no filler or redundant wording. It is concise, though slightly under-specified in other dimensions.

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 three-parameter mutation with fully documented schema, the description is minimally viable. However, with no output schema and no annotations, it would benefit from explaining what happens after the update, such as return value or validation errors.

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 describes all three parameters at 100% coverage. The description adds only the high-level intent of changing a bid, but it does not provide extra or contextual meaning beyond what the schema already states.

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 uses a specific verb ('Update') and names the exact resource ('the bid amount for a specific keyword'), making the tool's purpose immediately clear. It also distinguishes the tool from sibling retrieval tools and create/archive actions.

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?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of related workflows such as looking up keywords or profiles first. The description states only what the tool does, not when it should be chosen.

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.2.0
    • First observedarchive_campaign
    • First observedcreate_campaign
    • First observedget_campaign_performance
    • First observedget_campaigns
    • First observedget_keywords
    • First observedget_product_ads
    • First observedget_profiles
    • First observedget_report
    • First observedupdate_keyword_bid

TDQS

A3.8/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct resource or lifecycle stage: profiles, campaigns, keywords, product ads, and report retrieval. The only potentially related pair is get_campaign_performance and get_report, but their descriptions clearly separate report request creation from report status/download.

Naming Consistency5/5

Tool names consistently follow a verb_noun pattern using snake_case, with get_ for retrieval and create/update/archive for mutations. The consistent naming makes the tool set easy to scan and predict.

Tool Count5/5

Nine tools is a well-scoped size for an Amazon Ads management server. Each tool maps to a meaningful operation, and the set feels neither bloated nor too thin.

Completeness4/5

The server covers the core campaign management workflow: viewing profiles, listing/creating/archiving campaigns, retrieving keywords and product ads, updating bids, and fetching performance reports. Some minor gaps exist, such as no direct way to update campaign budgets or status beyond archiving, but agents can still accomplish the primary intended tasks.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables users to analyze, manage, and optimize digital advertising campaigns through natural language conversations in Claude, offering performance insights, interactive visualizations, and campaign management for platforms like Amazon Ads.
    5
    ISC
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI applications to interact with Amazon Advertising API through the Model Context Protocol. Supports campaign management, performance reporting, audience targeting, and comprehensive advertising operations across Amazon's advertising ecosystem.
    4
    74
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to manage Google Ads accounts by providing tools for querying account data and performing write operations such as updating campaign budgets, statuses, and bidding strategies.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI-powered advertising applications by providing MCP-compliant tools to interact with Amazon Ads API for campaign management, reporting, and optimization.
    3
    MIT