微软广告MCP服务器
用于微软广告(Bing广告/DuckDuckGo广告)的模型上下文协议(MCP)服务器。此服务器使AI助手能够以编程方式创建、管理和报告Microsoft广告活动。
特性
认证
- 具有令牌持久性的OAuth 2.0身份验证流
- 自动令牌刷新
活动管理
- 活动:创建、列出、暂停/激活搜索活动
- 广告组:在广告系列中创建和列出广告组
- 关键词:添加具有广泛、短语或精确匹配类型的关键字
- 广告:创建具有多个标题和描述的响应式搜索广告(RSAs)
报告
- 活动绩效报告
- 关键字性能报告
- 搜索查询报告(实际搜索词)
- 地理性能报告
- 使用轮询异步生成报告
账户管理
先决条件
- Microsoft广告帐户:注册地址: ads.microsoft.com
- 开发者令牌:申请地点 微软广告开发人员门户
- 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"
}
}
}
}
独立
身份验证流程
- 呼叫
get_auth_url() 获取OAuth URL
- 在浏览器中打开URL并使用您的Microsoft帐户登录
- 授权后,复制重定向URL(以开头
https://login.microsoftonline.com/common/oauth2/nativeclient?code=...)
- 呼叫
complete_auth(redirect_url) 带有完整的重定向URL
- 您的令牌现在已保存,并将自动刷新
可用工具
认证
| 工具 |
说明 |
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许可证-请参阅 许可证 了解详情。
贡献
欢迎投稿!请随时提交拉取请求。
致谢