Inspection report
amazon_ads_mcp by Kuudo
Vendor MCP server from Kuudo. Tool list: tools/list6.
The answer
3
What can it change in your account?
3 of 36 tools can change data, in these areas: Ads, Reports. This is a partial list, so there may be more.
name based Read and write here are inferred from tool names and descriptions, not from a test.
| Area | Access | Write tools | Read tools |
|---|---|---|---|
| Orders | ? Orders not documented | 0 | 0 |
| Ads | W Ads can change data | 2 | 8 |
| Listings | ? Listings not documented | 0 | 0 |
| Pricing | ? Pricing not documented | 0 | 0 |
| Inventory | ? Inventory not documented | 0 | 0 |
| Reports | W Reports can change data | 1 | 5 |
| Finance | ? Finance not documented | 0 | 0 |
Record
The facts on file.
- Type
- vendor
- Vendor or owner
- Kuudo
- License
- MIT3
- Authentication
- LWA refresh token, API key, OAuth (mentioned)4
- Transport
- stdio, http
- Marketplaces
- AU, BR, DE, EG, ES, FR, IN, IT, JP, MX, NL, UK, US5
- Pricing
- Not published
- Last commit
- Oct 14, 2026
- Last release
- Not published
- GitHub stars
- 74
- Tool list from
- tools/list partial list6
Tools
All 36 tools we found.
Grouped by what they do to your data. The access column shows why we put a tool there.
write Can change data 3
| Tool | Description | Area | Access basis |
|---|---|---|---|
| ac_RegisterAdsAccount | Create a new advertising account tied to a specific Amazon vendor, seller or author, or to a business who does not sell on Amazon. Requires one of these permissions: [] | Ads | name based |
| ac_updateProfiles | Note that this operation is only used for Sellers using Sponsored Products. This operation is not enabled for vendor type accounts. | Ads | name based |
| rp_deleteAsyncReport | Deletes a report by id. Use this operation to cancel a report in a PENDING status. Authorized resource type: Global Ad Account ID, Profile ID Parameter name… | Reports | name based |
read Reads data 33
| Tool | Description | Area | Access basis |
|---|---|---|---|
| get_envelope_contract | Read-only probe: returns the cross-server error envelope contract this server implements (contract_version, error_kinds, normalized_kinds, env_vars). See… | Other | name based |
| set_active_profile | Set the active profile ID for Amazon Ads API calls. Re-establish context before the next tool call iff state_scope == 'request' or state_reason is not null. Probe the transport… | Ads | name based |
| get_active_profile | Get the currently active profile ID. Doubles as a session-scope probe: the response includes session_present, state_scope, and state_reason so agents can detect whether… | Other | name based |
| clear_active_profile | Clear the active profile ID, falling back to the default. Re-establish context before the next tool call iff state_scope == 'request' or state_reason is not null. Probe the… | Other | name based |
| select_profile | Interactively select a profile from available options | Other | name based |
| summarize_profiles | List profiles (summary mode): aggregate counts by country and account type. Use when you need to know what profile kinds exist without enumerating individual records. | Other | name based |
| search_profiles | List profiles (search mode): filter by name (query), country_code, or account_type, with bounded limit. Use when you know what you're looking for and want a focused result set. | Other | name based |
| page_profiles | List profiles (paged mode): paginated read with offset and limit. Returns {items, total_count, has_more, next_offset}. Use when iterating across the full set without dumping… | Other | name based |
| refresh_profiles_cache | List profiles (cache refresh): force re-fetch of cached profiles for the current identity and region. Use when you suspect cached data is stale before the next… | Other | name based |
| set_region | Set the region for Amazon Ads API calls. Pass region (preferred) or region_code (legacy alias). Valid values: 'na', 'eu', 'fe'. Re-establish context before the next tool call iff… | Ads | name based |
| get_region | Get the current region setting | Other | name based |
| list_regions | List all available regions | Other | name based |
| get_routing_state | Get the current routing state (region, host, headers). Doubles as a session-scope probe: the response includes session_present, state_scope, and state_reason so agents can detect… | Other | name based |
| download_export | Download a completed export to local storage (supports background execution) | Other | name based |
| list_downloads | List all downloaded exports and reports for the active profile | Reports | name based |
| get_download_url | Get the HTTP URL for downloading a file. Use with list_downloads to find available files, then get their download URLs. The URL can be opened in a browser or used with curl/wget… | Other | name based |
| read_download | Read a profile-scoped downloaded file directly from server storage. Use list_downloads to get a file_path first. | Other | name based |
| list_report_fields | List valid report fields by report operation. Call with no args to list supported operations. | Reports | name based |
| report_fields | Query or validate Ads API v1 report fields against the packaged v1 catalog. Use mode='query' to discover fields (category, search, compatible_with, requires, fields detail lookup… | Reports | name based |
| start_oauth_flow | Start the OAuth authorization flow for Amazon Ads API | Ads | name based |
| check_oauth_status | Check the current OAuth authentication status | Other | name based |
| refresh_oauth_token | Manually refresh the OAuth access token | Other | name based |
| clear_oauth_tokens | Clear all stored OAuth tokens and state | Other | name based |
| list_tool_groups | List available API tool groups. Groups are disabled by default; use enable_tool_group to activate. | Other | name based |
| enable_tool_group | Enable or disable an API tool group by prefix. Call list_tool_groups first to see available groups. | Other | name based |
| ac_ListAdsAccounts | List all advertising accounts for the user associated with the access token. Requires one of these permissions: [] | Ads | name based |
| ac_GetAccount | Request attributes of a given advertising account. Requires one of these permissions: [] | Ads | name based |
| ac_CreateTermsToken | Create a new UUID terms token for the customer to accept advertising terms Requires one of these permissions: [] | Ads | name based |
| ac_GetTermsToken | Get the terms token status for the customer Requires one of these permissions: [] | Other | name based |
| ac_listProfiles | Note that this operation does not return a response unless the current account has created at least one campaign using the advertising console. | Ads | name based |
| ac_getProfileById | This operation does not return a response unless the current account has created at least one campaign using the advertising console. | Ads | name based |
| rp_createAsyncReport | Creates a report request. Use this operation to request the creation of a new report for Amazon Advertising Products. Use adProduct to specify the Advertising Product of the… | Reports | name based |
| rp_getAsyncReport | Gets a generation status of a report by id. Uses the reportId value from the response of previously requested report via POST /reporting/reports operation. Returns the current… | Reports | name based |
Method
How we checked this server.
We started the server and called tools/list, with placeholder values instead of real credentials.6
Default start (CODE_MODE on) exposes only 4 meta-tools (tags, search, get_schema, execute); with CODE_MODE=false 36 tools in the default package set, more API groups loadable via enable_tool_group (Amazon Ads OpenAPI specs).
Not tested with credentials. We did not connect this server to a seller or ads account. A tool marked read can still have side effects we could not see, and a vendor can add write tools at any time. Check the list again before you grant access.
Areas come from keywords in tool names, as explained on the matrix page.
Notes
Sources for this report
- 1Source repository or product pagegithub.com
- 2Documentationgithub.com
- 3License: GitHub API repo.license (search 2026-10-30)
- 4Authentication: static scan of repo (env names / code patterns)
- 5Marketplaces: marketplace IDs found in code
- 6Our MCP inventory of Oct 30, 2026: tool list, access marks, stars and last commit. GitHub repository search (22 queries, unauthenticated) -> shallow clone -> static extraction (extract_tools.py) -> optional runtime tools/list (mcp_probe.py); vendor/official from public docs. access=read|write is a name/description heuristic unless access_basis says otherwise.