美联社媒体API MCP服务器
一 _非官方的_ 模型上下文协议(MCP)服务器,该服务器将美联社媒体API转换为 AI优化的内容智能资源这款MCP服务器配备了26项强大工具,使对话式AI应用能够通过自然语言接口无缝访问、分析并与AP的全面新闻内容进行交互。
非常适合对话式人工智能助手、新闻分析应用、内容研究工具以及自动化新闻工作流程。
\[!NOTE\](注:此标记通常用于指示后续内容为注意事项或重要提示) 如需了解更多关于AP媒体API的信息,请访问AP 开发者文档。
🔑 主要特点
🤖 对话式人工智能功能
- 自然语言查询处理将对话查询转换为优化的AP API搜索
- 智能提示模板17个预配置的提示,适用于常见工作流程和使用场景
- 智能内容推荐基于人工智能的内容发现及相关文章推荐
- 趋势分析实时热点话题检测与分析
- 智能查询优化自动查询增强,以获得更佳搜索结果
- 规划执行自动内容过滤至授权计划项目(可通过配置进行设置)
AP_ENFORCE_PLAN) - AI错误恢复具有建议操作和重试指南的自我修复错误提示
- 速率限制智能自动速率限制检测与退避,并带有重试提示
- 查询建议针对广泛搜索的智能查询优化建议
📈 性能与规模
- 批量操作单次操作可处理多达2,000个搜索结果和50个项目
- 智能缓存基于TTL的缓存系统以提升性能
- 自动分页无缝处理大型结果集,自动实现分页
- 生产就绪企业级性能与可靠性
📰 完整内容智能
- 26款综合工具全面覆盖AP媒体API功能
- 实时内容推送实时获取AP的突发新闻和最新更新
- 高级搜索多参数搜索,支持灵活过滤和排序
- 内容监控创建并管理自动内容提醒和监控
🛡️ 企业级基础架构
- 完全类型安全基于OpenAPI的完整TypeScript实现,包含类型定义
- 强大的错误处理优雅地处理API错误、速率限制和网络问题
- 安全配置基于环境的配置与验证
- 全面测试单元测试和集成测试的覆盖率都很高
快速入门
先决条件
- Node.js 18及以上版本
- 一个美联社的API密钥(在\[网址\]获取一个) api.ap.org(可译为)美联社API网站(或根据具体语境简化为“美联社API”))
安装
克劳德代码(CLI)
在您的Claude Code MCP配置中添加:
{
"mcpServers": {
"ap-media": {
"type": "stdio",
"command": "npx",
"args": ["-y", "ap-mcp-server@latest"],
"env": {
"AP_API_KEY": "your_api_key_here"
}
}
}
}Visual Studio Code 等。
对于基于VS Code的编辑器,如VS Code、Windsurf、Cursor、Void等:
在您的工作区MCP设置中添加以下服务器定义:.vscode/mcp.json):
{
"servers": {
"ap-media": {
"type": "stdio",
"command": "npx",
"args": ["-y", "ap-mcp-server@latest"],
"env": {
"AP_API_KEY": "your_api_key_here"
}
}
}
}通用MCP客户端配置
适用于Claude桌面版、ChatGPT桌面版、OpenAI Codex等。
对于大多数与MCP兼容的AI工具,请使用此标准配置格式:
{
"mcpServers": {
"ap-media": {
"command": "npx",
"args": ["-y", "ap-mcp-server@latest"],
"env": {
"AP_API_KEY": "your_api_key_here"
}
}
}
}🤖 人工智能与大型语言模型(LLM)的集成
AP MCP服务器旨在通过MCP协议直接供AI工具、聊天机器人和大型语言模型(LLM)应用程序使用。AI助手可以使用自然语言访问美联社(AP)新闻内容:
自然语言人工智能交互
- “查找近期关于人工智能在医疗保健领域应用的文章”
- “给我看看本周科技领域的热门话题”
- “获取关于气候变化的最新突发新闻”
- “查找与这篇关于可再生能源的故事相关的文章”
AI工具会自动将这些请求转换为相应的MCP工具调用。
智能内容发现
- 趋势检测自动识别新闻中的流行趋势
- 内容推荐获取AI推荐的相关文章和话题
- 查询增强将模糊的查询转化为精确、优化的搜索
- 批量分析处理大量内容以进行模式识别
人工智能应用类型
- 新闻聊天机器人能够通过对话访问美联社新闻的AI助手
- 研究助理为记者和研究人员提供的AI工具
- 分析系统自动化新闻趋势和模式分析
- 内容策划/内容筛选基于人工智能的内容发现与推荐引擎
配置
环境变量
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
AP_API_KEY 根据上述信息,以下是翻译内容的指令执行结果: | |||
AP_BASE_URL | 禁止 | https://api.ap.org/media/v AP API基础URL | |
AP_TIMEOUT | 🚫 | (禁用/禁止) 30000 | 请求超时时间(毫秒) |
AP_RETRIES | 禁止(符号) | 3 | 对失败请求的重试尝试 |
AP_ENFORCE_PLAN | 禁止(符号) | true | 对所有内容请求强制启用 in_my_plan=true(AI 安全功能) |
AP_DEBUG | 🚫 | (禁止) false | 启用调试日志记录 |
AP_LOG_LEVEL | 禁止(🚫) | info | 日志级别(错误、警告、信息、调试) |
AP_VERBOSE_LOGGING | 禁止(或“不可”) | false | 启用请求/响应日志记录 |
AP_CACHE_ENABLED | 禁止 | true | 启用智能缓存系统 |
AP_CACHE_TTL_TRENDS | 禁止(或“不”) | 300000 | 热门话题缓存TTL(5分钟) |
AP_CACHE_TTL_SEARCH | 禁止 | 180000 | 搜索结果缓存TTL(3分钟) |
🎯 MCP 提示(共17个可用)
AP MCP服务器现在包含了智能提示模板,这些模板简化了复杂操作并优化了API的使用。这些提示抽象了参数的复杂性,并为常见工作流程提供了自然语言接口。
🔍 搜索与发现提示
breaking-news-search
使用优化后的参数搜索最新突发新闻。
- 论点;争论点:
topic,hours_ago,location,max_results - 示例“获取过去2小时内关于科技的最新资讯”
topic-deep-dive
针对特定主题进行深入全面的研究。
- 论点;论据:
topic,days_back,min_word_count,include_analysis,max_results - 示例“深入剖析过去一周的气候变化报道”
multimedia-search
查找照片、视频、图形和音频内容。
- 论点;论据:
topic,media_type,days_back,high_quality_only,max_results - 示例“查找过去7天内的高质量奥运会照片”
regional-coverage
获取特定地区或地点的全面新闻报道。
- 论点;争论点:
location,include_national,include_local,days_back,max_results - 示例“获取加利福尼亚州的所有新闻,包括国家和本地故事”
smart-search
使用自然语言查询并自动扩展进行智能搜索。
- 论点;争论点:
query,search_mode,auto_expand - 示例“可再生能源创新智能搜索”
📊 分析与见解提示
trend-analysis
分析新闻报道中的热门话题和报道模式。
- 论点;争论点:
category,timeframe,location_filter,include_sentiment,max_topics - 示例“分析过去一天的技术趋势”
content-recommendations
获取基于主题或过往内容的人工智能驱动内容推荐。
- 论点;争论点:
based_on,subjects,content_types,location_preference,max_recommendations - 示例“获取基于人工智能主题的推荐”
coverage-comparison
比较不同时期的新闻报道。
- 论点;论据:
topic,period1_days_ago,period2_days_ago,period_length_days,metrics - 示例“比较上周和本周的选举报道”
quick-trending
快速了解当前的流行趋势。
- 论点;论据:
max_topics - 示例“给我看看前十的热门话题”
🔔 监控与警报提示
create-news-monitor
为特定新闻话题设置自动化监控。
- 论点;争论点:
topic,monitor_name,email,alert_frequency,description - 示例“每30分钟监控一次气候变化的突发新闻”
breaking-alert-setup
快速设置紧急突发新闻提醒。
- 论点;争论点:
topics,email,sensitivity - 示例“设置地震和海啸新闻的高灵敏度提醒”
list-monitors
查看所有活动内容监视器及其状态。
- 论点;争论点:
include_status,include_history - 示例“列出所有我的活动监视器及其当前状态”
manage-monitor
更新或删除现有的监视器。
- 论点;争论点:
monitor_id,action,new_email,new_frequency - 示例“更新我的气候监测器,设置为每10分钟检查一次”
📰 工作流程提示
daily-news-briefing
生成一份全面的每日新闻简报。
- 论点;争论点:
categories,location,include_breaking,include_trending,include_recommendations - 示例“创建一份专注于技术和商业的每日简报”
research-workflow
针对主题进行综合研究的工作流程。
- 论点;论据:
topic,depth,time_range_days,include_multimedia,include_analysis - 示例“过去30天对可再生能源的深入研究”
content-curation
为特定受众或目的策划内容。
- 论点;争论点:
audience,topics,content_mix,total_items - 示例“为商业受众精选20项关于人工智能和自动化的内容”
story-development
协助开发具有背景和上下文的故事。
- 论点;争论点:
story_topic,story_type,needs - 示例“协助撰写一篇关于城市农业的深度报道,需包含背景信息和专家资源”
🛠️ 可用工具(共26个)
🔍 核心搜索与内容工具
search_content
高级内容搜索,支持灵活的筛选和排序选项。
参数:
query(字符串):搜索查询sort(字符串): 排序标准(默认:_score:desc)page(数字):页码(从1开始)page_size(数字):每页项目数(最多100个)include/exclude(数组):字段过滤pricing(boolean):是否包含定价信息in_my_plan(布尔值):仅返回计划中的项目
AI使用情况: 当人工智能工具接收到“查找人工智能医疗文章”这样的请求时,它会自动将此转换为适当的搜索参数,包括查询词、排序方式和字段选择。
search_content_all
对大型结果集(最多2,000个项目)进行自动分页搜索。
参数:
- 与……相同
search_content但会自动处理分页 max_items(数字):要检索的最大项目数(默认:1000,最大:2000)
非常适合: 批量分析,趋势检测,综合研究。
get_content_item
通过ID检索特定的内容项。
参数:
item_id(字符串,必填):AP项目IDinclude/exclude(数组):字段过滤pricing(布尔值):是否包含定价信息
get_content_bulk
高效检索多个内容项(最多50项)。
参数:
item_ids(数组,必需):AP项目ID的数组(最多50个)include/exclude(数组):字段过滤pricing(布尔值):是否包含定价信息
非常适合: 批量内容检索,相关文章获取。
get_content_feed
访问实时AP内容源,获取最新新闻。
参数:
query(字符串):过滤查询page_size(数字):要返回的项目数量include/exclude(数组):字段过滤
get_rss_feeds & get_rss_feed
列出并访问您帐户的RSS订阅源。
参数用于 get_rss_feed:
rss_id(数字,必填):RSS订阅源IDpage_size(数字):每页项目数include/exclude(数组):字段过滤
get_ondemand_content
访问您组织的按需(OnDemand)队列。
参数:
consumer_id(字符串):消费者标识符queue(字符串):队列IDpage_size(数字):每页项目数
🤖 人工智能驱动的智能工具
optimize_search_query
使用自然语言处理技术将自然语言查询转换为优化的API搜索。
参数:
natural_query(字符串,必填):自然语言查询context(对象):用于优化的额外上下文信息
AI使用: 当一个人工智能收到“查找关于医疗保健的人工智能最新文章”这一指令时,该工具会自动将其转换为一个优化的API查询,包含适当的关键词、日期过滤器和内容类型规范。
analyze_content_trends
分析新闻内容中的热门话题和趋势模式。
参数:
query(字符串):趋势分析的基础查询time_range(字符串):分析的时间段(“24小时”,“7天”,“30天”)trend_type(字符串):趋势分析的类型(“主题”、“实体”、“情感”)
非常适合: 理解新闻模式,发掘新兴故事。
get_content_recommendations
根据参考项目获取由人工智能驱动的内容推荐。
参数:
reference_item_id(字符串):基于此项目ID进行推荐recommendation_type(字符串):“相关”、“相似”或“热门”max_results(数字):最大推荐数量(默认:10)
非常适合: 内容发现,相关文章推荐。
get_trending_subjects
利用缓存快速发现当前热门话题。
参数:
time_window(字符串): 趋势的时间窗口("1小时", "6小时", "24小时")category(字符串):可选的类别过滤器min_mentions(数字):最低提及次数阈值
非常适合: 实时趋势监测,内容规划。
📊 账户管理工具
get_account_info
基本账户信息及可用终端节点。
get_account_plans
账户计划、权限和使用量度。
get_account_downloads
下载历史记录和使用追踪。
参数:
min_date(字符串):开始日期(YYYY-MM-DD 或 ISO-8601 格式)max_date(字符串):结束日期(YYYY-MM-DD 或 ISO-8601 格式)format(字符串):响应格式 (json或者csv)
get_account_quotas
当前API配额和使用限制。
get_followed_topics
你关注的话题列表。
🔔 高级监控工具
create_monitor
创建内容监控器以实现自动警报。
参数:
name(字符串,必填):显示器名称description(字符串):描述conditions(数组):监控条件notify(数组):通知设置
list_monitors
列出所有现有的监视器。
get_monitor
获取特定显示器的详细信息。
参数:
monitor_id(字符串,必填): 监控ID
update_monitor
更新现有监视器的设置。
参数:
monitor_id(字符串,必填):监控IDupdates(对象):要更新的字段
delete_monitor
删除一个监视器。
参数:
monitor_id(字符串,必填): 监控ID
get_monitor_status
检查监视器的状态。
参数:
monitor_id(字符串,必填):监控ID
get_monitor_history
获取监控器的历史数据。
参数:
monitor_id(字符串,必填):监控IDstart_date(字符串):历史记录的开始日期end_date(字符串):历史记录的结束日期
🔧 实用工具
build_search_query
构建带验证的结构化搜索查询。
参数:
keywords(数组):要搜索的关键词operators(数组):搜索运算符(AND,OR,NOT)date_range(对象):日期范围过滤器content_types(数组):内容类型过滤器
get_content_rendition
通过使用href URL获取渲染版本,检索文章和媒体的完整内容。
参数:
href(字符串,必填):来自内容项的渲染版本或链接中的href URLformat(字符串):可选的 Accept 头,用于指定所需格式encoding(字符串):文本内容的可选编码偏好
用例: 从之前的搜索结果中获取完整的NITF文本、图片、视频和音频文件。 非常适合: 获取完整文章内容,下载媒体文件,获取全文以进行分析。
📈 完整的API覆盖
这个MCP服务器提供 全面覆盖 以下是AP媒体API的智能增强功能:
内容端点
- ✅ 表示“正确”或“对”。
/content/search- 内容搜索(增强功能包括自动分页和批量操作) - ✅
/content/{item_id}- 单项查询(增强批量检索功能) - ✅ 翻译成中文是:✓(正确/对)
/content/feed- 实时内容推送 - ✅
/content/rss- RSS订阅列表 - ✅
/content/rss/{rss_id}- 特定的RSS订阅源 - ✅
/content/ondemand- 按需队列
账户终端(或账户访问点)
- ✅
/account- 账户信息 - ✅
/account/plans- 计划和权益 - ✅
/account/downloads- 下载历史 - ✅
/account/quotas- API配额和使用限制 - ✅
/account/followedtopics- 跟踪了主题管理
监控终端(完整实现)
- ✅
/account/monitors/create- 创建内容监控器 - ✅
/account/monitors- 列出所有显示器 - ✅
/account/monitors/{id}- 获取特定显示器的详细信息 - ✅
/account/monitors/{id}/update- 更新显示器设置 - ✅
/account/monitors/{id}/delete- 删除监视器 - ✅
/account/monitors/{id}/status- 监控状态和健康状况 - ✅(对号,表示正确、同意或确认)
/account/monitors/{id}/history- 监控历史数据
🚀 人工智能与性能提升
- 自然语言处理查询处理自然语言转AP API查询
- 智能缓存基于TTL的缓存以提升性能
- 批量操作单次操作可处理多达2,000个项目
- 趋势分析实时热点话题检测与分析
- 内容推荐基于人工智能的内容发现
- 自动分页无缝处理大型结果集
📊 性能基准
- 响应时间缓存查询的响应时间小于200毫秒
- 批量处理每批请求最多可包含50个项目
- 自动分页自动处理多达2,000个结果
- 缓存命中率约85%的热门话题和频繁搜索
- 并发请求针对高通量应用进行了优化
我的计划执行
MCP服务器包含自动计划执行功能,以防止AI代理访问超出其授权AP计划范围的内容。此功能默认启用,以确保安全。
配置:
- 设置
AP_ENFORCE_PLAN=true(默认)对所有内容请求强制执行计划限制 - 设置
AP_ENFORCE_PLAN=false允许无限制访问内容(谨慎使用)
当启用时,所有相关的内容请求将自动包含 in_my_plan=true,确保人工智能代理仅访问授权内容。这可以防止:
- 意外访问了您套餐中未包含的高级内容
- 计划外内容导致的意外API费用
- 内容许可方面的合规问题
💡 人工智能使用模式
批量操作工作流程
人工智能工具能够高效处理大量新闻内容:
- 发现热门话题使用
get_trending_subjects找出当前流行趋势 - 全面搜索使用
search_content_all获取热门话题的广泛结果(最多2000条) - 详细分析使用
get_content_bulk检索最相关文章的完整内容(最多50篇)
AI驱动的内容发现
人工智能助手利用多种工具进行智能内容发现:
- 查询优化:
optimize_search_query将自然语言转换为精确的搜索参数 - 趋势分析:
analyze_content_trends提供内容模式和新兴故事的深入见解 - 内容推荐:
get_content_recommendations根据参考内容推荐相关文章
AI应用监控设置
AI系统可以设置自动化内容监控:
- 创建监视器为特定主题、关键词或突发新闻设置内容提醒
- 赛道表现监控状态并获取历史数据,以了解内容模式
- 自动提醒当匹配内容发布时接收通知
缓存与性能优化
服务器实现智能缓存以优化性能:
缓存类型与TTL(生存时间)
- 热门话题5分钟(数据频繁变化)
- 搜索结果3分钟(在新鲜度与性能之间取得平衡)
- 账户信息15分钟(相对静态数据)
- 监控数据10分钟(中等更新频率)
缓存配置
# Customize cache behavior
AP_CACHE_ENABLED=true
AP_CACHE_TTL_TRENDS=300000 # 5 minutes in milliseconds
AP_CACHE_TTL_SEARCH=180000 # 3 minutes in milliseconds性能提示
- 使用批量操作 用于处理多个项目
- 启用缓存 对于重复查询
- 利用热门话题缓存 用于实时应用
- 与批次相关的请求 减少API调用
- 使用自动分页 对于大型数据集,采用自动分页而非手动分页
发展
错误处理
服务器实现了全面的AI友好型错误处理机制:
- APAPI错误根据上面的信息,执行如下指令:
- AP配置错误配置和设置错误及其纠正措施
- AP网络错误网络和连接问题及重试指南
- 速率限制自动重试,采用指数退避策略,并提供重试后提示
- 验证输入验证,提供清晰的错误信息和建议
- AI恢复提示所有错误均包括
suggested_action,can_retry,和alternative_tool自我修复AI行为的属性
测试
运行测试套件:
npm test安全
- API密钥仅通过环境变量传递
- 没有敏感数据被记录或存储
- 所有请求均使用HTTPS
- 输入验证可防止注入攻击
- 限流可防止滥用API
⚠️ 局限性与注意事项
AP API限制
- 需要一个具有适当权限的有效AP API密钥
- 由AP API强制执行的速率限制(根据计划而有所不同,自动处理并包含重试逻辑)
- 下载历史仅限最近365天
- 日期范围查询最多限制为60天
- 高级监控功能可能需要高级AP API计划
性能考量
- 批量操作 请尊重AP API的速率限制(已应用自动限流)
- 缓存TTL(Time To Live,生存时间) 可以根据您的新鲜度与性能需求进行定制
- 大型结果集 (>1000个项目) 可能由于自动分页而需要更长时间
- 人工智能驱动的功能 对于复杂的自然语言处理任务,可能会有轻微的延迟
智能界限
search_content_all最多2,000个项目(可配置)get_content_bulk每次请求最多50个项目- 缓存系统通过TTL(生存时间)过期机制自动管理内存使用
- 为保证最佳性能,每次请求的人工智能推荐限制为50条建议
故障排除
常见问题
- AP_API_KEY是必需的
- 确保你的 .env 文件包含 AP_API_KEY=your_key_here - 检查密钥是否有效且处于激活状态
- “401 未授权”
- 验证您的API密钥是否正确 - 检查你的密钥是否具有所需的权限
- “请求速率限制已超出”
- 服务器将自动进行指数退避重试 - 考虑降低请求频率
- “网络超时”
- 增加 AP_TIMEOUT 在你的环境中 - 检查网络连接
调试模式
启用调试日志记录:
export AP_DEBUG=true
export AP_LOG_LEVEL=debug
npm start许可证
MIT 许可证 - 详见 LICENSE 文件。
做出贡献
- 为仓库创建分支(或“克隆仓库”)
- 创建一个特性分支
- 做出你的更改
- 如适用,请添加测试
- 提交一个拉取请求
支持
对于与以下相关的问题:
- 这台MCP服务器在GitHub上创建一个问题(或提交一个issue)
- AP API请联系AP支持团队,邮箱为api.ap.org
- MCP协议参见模型上下文协议文档
