广告管理服务器

用于Microsoft Advertising的模型上下文协议服务器,支持AI助手以编程方式创建、管理和报告广告活动。

  • by bit-of-a-shambles
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Duartemartins/microsoft-ads-mcp-server

使用说明

微软广告MCP服务器

用于微软广告(Bing广告/DuckDuckGo广告)的模型上下文协议(MCP)服务器。此服务器使AI助手能够以编程方式创建、管理和报告Microsoft广告活动。

特性

认证

  • 具有令牌持久性的OAuth 2.0身份验证流
  • 自动令牌刷新

活动管理

  • 活动:创建、列出、暂停/激活搜索活动
  • 广告组:在广告系列中创建和列出广告组
  • 关键词:添加具有广泛、短语或精确匹配类型的关键字
  • 广告:创建具有多个标题和描述的响应式搜索广告(RSAs)

报告

  • 活动绩效报告
  • 关键字性能报告
  • 搜索查询报告(实际搜索词)
  • 地理性能报告
  • 使用轮询异步生成报告

账户管理

  • 列出所有可访问的帐户
  • 查看活动预算
  • 标签管理

先决条件

  1. Microsoft广告帐户:注册地址: ads.microsoft.com
  2. 开发者令牌:申请地点 微软广告开发人员门户
  3. Azure AD应用程序注册:在中创建应用程序 Azure 门户 与:
    • 重定向URI: https://login.microsoftonline.com/common/oauth2/nativeclient
    • API权限:Microsoft Advertising API

安装

# Clone the repository
git clone https://github.com/Duartemartins/microsoft-ads-mcp-server.git
cd microsoft-ads-mcp-server

# Install dependencies
pip install -r requirements.txt

配置

环境变量

创建一个 .env 文件或设置这些环境变量:

MICROSOFT_ADS_DEVELOPER_TOKEN=your_developer_token
MICROSOFT_ADS_CLIENT_ID=your_azure_app_client_id
MICROSOFT_ADS_CUSTOMER_ID=your_customer_id      # Optional, discovered during auth
MICROSOFT_ADS_ACCOUNT_ID=your_account_id        # Optional, discovered during auth

令牌存储

代币存储在 ~/.config/microsoft-ads/tokens.json 在认证之后。

用法

与克劳德代码/mcporter

添加到您的 ~/.mcporter/mcporter.json:

{
  "mcpServers": {
    "microsoft-ads": {
      "command": "python3",
      "args": ["/path/to/microsoft-ads-mcp-server/server.py"],
      "type": "stdio",
      "env": {
        "MICROSOFT_ADS_DEVELOPER_TOKEN": "your_token",
        "MICROSOFT_ADS_CLIENT_ID": "your_client_id"
      }
    }
  }
}

独立

python server.py

身份验证流程

  1. 呼叫 get_auth_url() 获取OAuth URL
  2. 在浏览器中打开URL并使用您的Microsoft帐户登录
  3. 授权后,复制重定向URL(以开头 https://login.microsoftonline.com/common/oauth2/nativeclient?code=...)
  4. 呼叫 complete_auth(redirect_url) 带有完整的重定向URL
  5. 您的令牌现在已保存,并将自动刷新

可用工具

认证

工具 说明
get_auth_url() 获取用于登录的OAuth URL
complete_auth(redirect_url) 使用重定向URL完成OAuth

账户

工具 说明
search_accounts() 列出所有可访问的广告帐户

活动

工具 说明
get_campaigns(include_deleted?) 列出所有活动
create_campaign(name, daily_budget, description?) 创建搜索活动(默认暂停)
update_campaign_status(campaign_id, status) 将活动设置为“活动”或“已暂停”

广告组

工具 说明
get_ad_groups(campaign_id) 列出广告系列中的广告组
create_ad_group(campaign_id, name, cpc_bid?) 创建广告组

关键词

工具 说明
get_keywords(ad_group_id) 列出广告组中的关键字
add_keywords(ad_group_id, keywords, match_type?, default_bid?) 添加关键字(逗号分隔)

广告

工具 说明
get_ads(ad_group_id) 在广告组中列出广告
create_responsive_search_ad(ad_group_id, final_url, headlines, descriptions, path1?, path2?) 创建RSA

报告

工具 说明
submit_campaign_performance_report(date_range?, columns?) 提交活动报告请求
submit_keyword_performance_report(date_range?, columns?) 提交关键字报告请求
submit_search_query_report(date_range?, columns?) 提交搜索词报告请求
submit_geographic_report(date_range?, columns?) 提交地理报告请求
poll_report_status(report_id?) 检查报告状态并获取下载URL

其他

工具 说明
get_budgets() 查看活动预算
get_labels(label_ids?) 获取标签信息

工作流示例

# 1. Authenticate (first time only)
get_auth_url()
# Open URL in browser, sign in, copy redirect URL
complete_auth("https://login.microsoftonline.com/common/oauth2/nativeclient?code=...")

# 2. Check your account
search_accounts()

# 3. Create a campaign
create_campaign(name="My Search Campaign", daily_budget=20)

# 4. Create an ad group
create_ad_group(campaign_id=123456, name="Product Keywords", cpc_bid=1.50)

# 5. Add keywords
add_keywords(
    ad_group_id=789012,
    keywords="buy widgets, widget store, best widgets",
    match_type="Phrase",
    default_bid=1.25
)

# 6. Create an ad
create_responsive_search_ad(
    ad_group_id=789012,
    final_url="https://example.com/widgets",
    headlines="Buy Widgets Online|Best Widget Store|Free Shipping on Widgets",
    descriptions="Shop our huge selection of widgets. Free shipping on orders over $50.|Quality widgets at great prices. Order today!"
)

# 7. Activate the campaign
update_campaign_status(campaign_id=123456, status="Active")

# 8. Check performance later
submit_campaign_performance_report(date_range="LastWeek")
poll_report_status()

为什么选择微软广告?

  • DuckDuckGo集成:微软广告为DuckDuckGo搜索广告提供支持,触及注重隐私的用户
  • 较低的CPC:对于类似的关键字,通常比谷歌广告便宜30-50%
  • Bing+雅虎+美国在线:访问Microsoft搜索网络
  • 从Google导入:轻松迁移现有的谷歌广告活动

许可证

MIT许可证-请参阅 许可证 了解详情。

贡献

欢迎投稿!请随时提交拉取请求。

致谢