{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_d7374jbkb9un","handle":"microsoft-ads-mcp","url":"https://wellknown.network/agents/microsoft-ads-mcp","links":{"self":"https://wellknown.network/agents/microsoft-ads-mcp/record.json","html":"https://wellknown.network/agents/microsoft-ads-mcp","markdown":"https://wellknown.network/agents/microsoft-ads-mcp/record.md","api":"https://wellknown.network/api/v1/agents/microsoft-ads-mcp","status":"https://wellknown.network/api/v1/agents/microsoft-ads-mcp/status","claim":"https://wellknown.network/agents/microsoft-ads-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/microsoft-ads-mcp/claim.json","badge":"https://wellknown.network/agents/microsoft-ads-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/microsoft-ads-mcp/history","tools":"https://wellknown.network/api/v1/agents/microsoft-ads-mcp/tools"},"ard":{"identifier":"urn:air::server:microsoft-ads-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"microsoft-ads-mcp","summary":"MCP server for the Microsoft Advertising (Bing Ads) REST API, oriented toward agent-led campaign management and reporting.","description":"# microsoft-ads-mcp\n\n[![CI](https://github.com/shinypebble/microsoft-ads-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/shinypebble/microsoft-ads-mcp/actions/workflows/ci.yml)\n\nAn MCP server for the **Microsoft Advertising (Bing Ads) REST API**, built for agent-led\ncampaign management and reporting. It exposes a focused set of *useful-work* tools — walk the\ncampaign tree, create **and edit in place** (rename, repoint Final URLs, tracking templates,\nstatus, bids), manage negative keywords, ad extensions, conversion goals/UET tags, and ZIP\nlocation targeting, run the Bulk API, and pull performance reports that are actually downloaded\nand parsed for you — rather than a 1:1 mirror of the API surface.\n\nBuilt with [FastMCP](https://gofastmcp.com) and the official Microsoft\n[`msads`](https://pypi.org/project/msads/) REST SDK (which ships OpenAPI-generated **Pydantic\nv2** models). Managed with `uv`, linted/formatted with `ruff`, type-checked with `ty`.\n\n## Why REST / `msads` (not the legacy SOAP `bingads` SDK)\n\nMicrosoft is retiring the SOAP API: **new features are REST-only from Oct 1, 2026**, and SOAP\nis **fully deprecated on Jan 31, 2027** ([migration guide](https://learn.microsoft.com/en-us/advertising/guides/migrate-to-rest?view=bingads-13)).\nThe REST SDK `msads` gives typed Pydantic models, structured HTTP exceptions, and the same\nOAuth/`ServiceClient` entry points — so this server is built on it directly.\n\n### SDK quirks worth knowing\n\n- **`msads` is synchronous** (requests/urllib3). Tools here are therefore plain sync\n  functions; FastMCP runs them in a worker thread, so the event loop is never blocked. We do\n  not wrap the SDK in async.\n- **`msads` does not declare its `python-dateutil` dependency**, even though\n  `openapi_client` imports it. We pin `python-dateutil` explicitly in `pyproject.toml`.\n- The package installs as the `bingads.*` (auth + `ServiceClient`) and `openapi_client.*`\n  (models + exceptions) import namespaces — there is no top-level…","publisher":null,"homepage":"https://github.com/shinypebble/microsoft-ads-mcp","repository":"https://github.com/shinypebble/microsoft-ads-mcp","version":"0.4.0","license":null,"protocols":["mcp"],"tags":["advertising","bing-ads","fastmcp","mcp","microsoft-advertising","model-context-protocol"],"pricing":null,"endpoints":[{"url":"pypi:microsoft-ads-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"content.marketing","name":"Marketing","confidence":1,"provenance":"declared"},{"slug":"data.web-search","name":"Web Search","confidence":0.967,"provenance":"derived"},{"slug":"data.apis","name":"API Access","confidence":0.814,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.768,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.745,"provenance":"derived"}],"categories":["content","data","dev","security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"microsoft-ads-mcp","registry":"pypi","observedAt":"2026-10-22T13:23:16.869Z","publishedAt":"2026-06-27T06:13:32.540117Z","latestVersion":"0.4.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"microsoft-ads-mcp","url":"https://pypi.org/project/microsoft-ads-mcp/","firstSeenAt":"2026-09-10T06:22:59.792Z","fetchedAt":"2026-10-22T13:21:56.847Z","normalizedAt":"2026-10-22T13:21:56.847Z"}]},"firstSeenAt":"2026-09-10T06:22:59.792Z","updatedAt":"2026-10-22T13:23:16.869Z"}