Yandex Direct MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YANDEX_DIRECT_LANG | No | Accept-Language for API responses (ru, en, uk, tr). Default: ru. | ru |
| YANDEX_DIRECT_LOGIN | No | Client-Login header (agency accounts only). | |
| YANDEX_DIRECT_TOKEN | Yes | OAuth token for the Yandex Direct API. | |
| YANDEX_DIRECT_SANDBOX | No | Set to true to target the API sandbox. Default: false. | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_account_infoA | Returns information about the current advertiser account (login, currency, type, country) using the Yandex Direct |
| get_quotaA | Returns today's API points quota (spent / rest / limit) from the Units header, so you can avoid hitting the daily limit. |
| list_campaignsA | Lists campaigns with optional filtering by id, type, state and status. Monetary fields (e.g. DailyBudget.Amount) are returned in account currency units. |
| create_text_campaignA | Creates a TextCampaign (Text & Image ads). Without biddingStrategy it defaults to manual search bids with the network off (Search HIGHEST_POSITION, Network SERVING_OFF); pass a full biddingStrategy {Search, Network} to use an auto-strategy or enable the network. |
| campaign_actionA | Performs a lifecycle action on campaigns by id: suspend, resume, archive, unarchive or delete. |
| update_campaignC | Updates a campaign's name, end date and/or daily budget (campaigns/update). |
| list_ad_groupsA | Lists ad groups. Provide campaignIds and/or ids — the Yandex Direct API requires at least one selection criterion. |
| create_ad_groupB | Creates an ad group inside a campaign with a target geo. |
| update_ad_groupB | Updates an ad group's name and/or target regions (adgroups/update). |
| delete_ad_groupsA | Deletes ad groups by id (adgroups/delete). Deleting a group also removes its ads and keywords; this cannot be undone. |
| list_adsA | Lists ads with optional filtering by campaign, ad group, id, state and status. |
| create_text_adB | Creates a text ad (TextAd) inside an ad group. New ads start as drafts. |
| ad_actionB | Performs a lifecycle action on ads by id: moderate, suspend, resume, archive, unarchive or delete. |
| update_text_adA | Updates a text ad's title, text or landing page (ads/update). Editing an active ad sends it back to moderation. |
| list_keywordsA | Lists keywords filtered by campaign, ad group or id. Bid and ContextBid are returned in account currency units. |
| add_keywordsB | Adds keywords to an ad group, with optional search and network bids. |
| keyword_actionA | Performs a lifecycle action on keywords by id: suspend, resume or delete. |
| set_keyword_bidsA | Sets manual search/network bids on keywords, or on all keywords in given ad groups or campaigns (keywordbids/set). Bids are in account currency units. |
| get_statisticsA | Requests a performance report via the Yandex Direct Reports service. By default the report is AGGREGATED over the whole period (one row per object) — add "Date" to fieldNames only for day-by-day dynamics or trend questions. ALL_TIME without a campaign filter is rejected for SEARCH_QUERY/CRITERIA reports; pass campaignIds or a bounded date range. SEARCH_QUERY_PERFORMANCE_REPORT returns a COMPUTED SUMMARY (totals over ALL rows + top-N detail + tail rollup + zero-click/zero-conversion counts), not raw rows — shape it with sortBy/topN/minCost/queryContains/zeroClicksOnly/zeroConversionsOnly, and add Conversions to fieldNames for conversion-based counts. Other report types return tab-separated rows (no header). |
| get_regionsA | Looks up geo region ids for targeting (the regionIds that create_ad_group needs). Filter by a name substring; results are capped by limit. |
| get_dictionariesA | Returns Yandex Direct reference dictionaries (currencies, time zones, constants, ad categories, ...). GeoRegions can be very large — prefer get_regions for region lookups. |
| raw_requestA | Escape hatch to call any Yandex Direct API v5 service/method directly (e.g. service "bidmodifiers", method "get"). Use this for services that have no dedicated tool. Money is in micros (no conversion). Read methods (get/has/check) run freely; any other method is a write and requires confirmWrite=true. |
| get_bid_modifiersA | Reads bid adjustments (mobile, desktop, demographics, retargeting, regional, video) for campaigns or ad groups. BidModifier is a percentage, not money. |
| add_bid_modifierA | Adds a bid adjustment to a campaign or ad group. BidModifier values are percentages per the API (e.g. 0–1300), not money. |
| set_bid_modifiersA | Changes the percent of existing bid modifiers and/or enables/disables them (bidmodifiers/set), by modifier id. |
| delete_bid_modifiersB | Deletes bid modifiers by id (bidmodifiers/delete). |
| get_sitelinksA | Reads sitelink sets (быстрые ссылки) by id. The API requires set ids — get them from ads' SitelinkSetId. |
| create_sitelinks_setA | Creates a sitelink set (1–8 links). Sets are immutable — to change links, create a new set and reassign it to the ad. |
| delete_sitelinksA | Deletes sitelink sets by id (only sets not assigned to any ad can be deleted). |
| get_calloutsA | Lists callouts (уточнения) from the adextensions library. Attach a callout to an ad via the Ads service. |
| add_calloutsA | Creates callouts (уточнения), up to 25 characters each. Callouts are immutable — delete and recreate to change. Assign to ads via the Ads service. |
| delete_calloutsB | Deletes callouts by id (adextensions/delete). |
| get_vcardsA | Reads virtual business cards (визитки) by id. The API requires ids — get them from ads' VCardId. |
| create_vcardA | Creates a virtual business card in a campaign. vCards are immutable — delete and recreate to change. |
| delete_vcardsB | Deletes vCards by id (vcards/delete). |
| get_ad_imagesA | Lists images in the ad image library, keyed by image hash. Upload new images with upload_ad_image. |
| get_ad_videosA | Reads videos from the ad video library by id (the API requires ids). Uploads go via raw_request (advideos/add). |
| get_creativesA | Lists creatives (smart banners, HTML5) from the creative library. |
| upload_ad_imageA | Uploads an image to the ad image library (adimages/add) and returns its AdImageHash — use that hash as AdImageHash on a text & image ad. Provide the image as a public URL (fetched and encoded server-side) or as base64 in imageData. Yandex accepts JPG/PNG/GIF up to 10 MB; a text & image ad needs a landscape image (min 1080×607). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/askads/mcp-yandex-direct'
If you have feedback or need assistance with the MCP directory API, please join our Discord server