{"name":"io.github.gistrec/mcp-yandex-direct","slug":"gistrec-mcp-yandex-direct","title":"Yandex Direct","description":"MCP server for Yandex Direct API v5: manage PPC campaigns, ads, keywords, and statistics.","url":"https://mcp.market/server/gistrec-mcp-yandex-direct","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":26,"stars":1,"forks":1,"downloads_week":130,"last_push_at":"2026-08-21T15:30:18.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/gistrec/mcp-yandex-direct","website":"https://github.com/gistrec/mcp-yandex-direct#readme","version":"1.0.5","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"mcp-yandex-direct","version":"1.0.5","transport":{"type":"stdio"},"environmentVariables":[{"description":"Yandex Direct OAuth token — full account access (can spend budget). Treat it as a secret.","isRequired":true,"isSecret":true,"name":"YANDEX_DIRECT_TOKEN"},{"description":"Client login to target a specific account on agency tokens.","name":"YANDEX_DIRECT_LOGIN"},{"description":"Set to true to call the Yandex Direct sandbox API instead of production.","default":"false","name":"YANDEX_DIRECT_SANDBOX"},{"description":"Language for API responses and error messages (ru, en, ...).","default":"ru","name":"YANDEX_DIRECT_LANG"}]}],"tools":[{"name":"ad_action","description":"Performs a lifecycle action on ads by id: moderate, suspend, resume, archive, unarchive or delete.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_bid_modifier","description":"Adds a bid adjustment to a campaign or ad group. BidModifier values are percentages per the API (e.g. 0–1300), not money.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_callouts","description":"Creates callouts (уточнения), up to 25 characters each. Callouts are immutable — delete and recreate to change. Assign to ads via the Ads service.","write_action":true,"price_micros":0,"input_schema":null},{"name":"add_keywords","description":"Adds keywords to an ad group, with optional search and network bids.","write_action":false,"price_micros":0,"input_schema":null},{"name":"campaign_action","description":"Performs a lifecycle action on campaigns by id: suspend, resume, archive, unarchive or delete.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_ad_group","description":"Creates an ad group inside a campaign with a target geo.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_sitelinks_set","description":"Creates a sitelink set (1–8 links). Sets are immutable — to change links, create a new set and reassign it to the ad.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_text_ad","description":"Creates a text ad (TextAd) inside an ad group. New ads start as drafts.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_text_campaign","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_vcard","description":"Creates a virtual business card in a campaign. vCards are immutable — delete and recreate to change.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_bid_modifiers","description":"Deletes bid modifiers by id (bidmodifiers/delete).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_callouts","description":"Deletes callouts by id (adextensions/delete).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_sitelinks","description":"Deletes sitelink sets by id (only sets not assigned to any ad can be deleted).","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_vcards","description":"Deletes vCards by id (vcards/delete).","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_account_info","description":"Returns information about the current advertiser account (login, currency, type, country) using the Yandex Direct `clients` service.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ad_images","description":"Lists images in the ad image library, keyed by image hash. Upload new images with upload_ad_image.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ad_videos","description":"Reads videos from the ad video library by id (the API requires ids). Uploads go via raw_request (advideos/add).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_bid_modifiers","description":"Reads bid adjustments (mobile, desktop, demographics, retargeting, regional, video) for campaigns or ad groups. BidModifier is a percentage, not money.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_callouts","description":"Lists callouts (уточнения) from the adextensions library. Attach a callout to an ad via the Ads service.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_creatives","description":"Lists creatives (smart banners, HTML5) from the creative library.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_dictionaries","description":"Returns Yandex Direct reference dictionaries (currencies, time zones, constants, ad categories, ...). GeoRegions can be very large — prefer get_regions for region lookups.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_quota","description":"Returns today's API points quota (spent / rest / limit) from the Units header, so you can avoid hitting the daily limit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_regions","description":"Looks up geo region ids for targeting (the regionIds that create_ad_group needs). Filter by a name substring; results are capped by limit.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_sitelinks","description":"Reads sitelink sets (быстрые ссылки) by id. The API requires set ids — get them from ads' SitelinkSetId.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_statistics","description":"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 S","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_vcards","description":"Reads virtual business cards (визитки) by id. The API requires ids — get them from ads' VCardId.","write_action":false,"price_micros":0,"input_schema":null},{"name":"keyword_action","description":"Performs a lifecycle action on keywords by id: suspend, resume or delete.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_ad_groups","description":"Lists ad groups. Provide campaignIds and/or ids — the Yandex Direct API requires at least one selection criterion.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_ads","description":"Lists ads with optional filtering by campaign, ad group, id, state and status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_campaigns","description":"Lists campaigns with optional filtering by id, type, state and status. Monetary fields (e.g. DailyBudget.Amount) are returned in account currency units.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_keywords","description":"Lists keywords filtered by campaign, ad group or id. Bid and ContextBid are returned in account currency units.","write_action":false,"price_micros":0,"input_schema":null},{"name":"raw_request","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_bid_modifiers","description":"Changes the percent of existing bid modifiers and/or enables/disables them (bidmodifiers/set), by modifier id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_keyword_bids","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_ad_group","description":"Updates an ad group's name and/or target regions (adgroups/update).","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_campaign","description":"Updates a campaign's name, end date and/or daily budget (campaigns/update).","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_text_ad","description":"Updates a text ad's title, text or landing page (ads/update). Editing an active ad sends it back to moderation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"upload_ad_image","description":"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).","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":80,"grade":"B","scanned_at":"2026-09-26T21:22:36.870Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T21:22:36.863Z","components":{"code":{"score":25,"max":25,"notes":["39 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":12,"max":15,"notes":["last push 36 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"mcp-yandex-direct","version":"1.0.5","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-06-18T02:39:17.047Z","repositoryUrl":"git+https://github.com/gistrec/mcp-yandex-direct.git","weeklyDownloads":130}],"repo":{"found":true,"owner":"gistrec","repo":"mcp-yandex-direct","archived":false,"pushedAt":"2026-08-21T15:30:18Z","stars":1,"forks":1,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/293946193?v=4","ownerCreatedAt":"2015-11-20T12:17:00Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/293946193?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":1,"downloadsWeek":130,"license":"MIT","lastPushAt":"2026-08-21T15:30:18.000Z","score":26}}}},"grade_history":[],"reviews":[]}