关于 CiteWire
CiteWire 是面向新闻平台运营者、研究人员和 Agent 构建者的只读新闻与研究元数据 MCP 服务。它可包装兼容平台的读取 API,并按配置启用公共来源适配器,同时保留来源归属信息,不存储文章正文。
主要功能
- 01包装新闻平台读取 API
- 02查询新闻与研究元数据
- 03按配置启用来源适配器
- 04提供 stdio 和无状态 HTTP 传输
- 05保留来源归属与链接
适用场景
- 01向 Agent 提供新闻平台内容检索
- 02查询论文、学术作品和 DOI 元数据
- 03自托管新闻与研究查询服务
MCP 相关
CiteWire 通过 MCP 提供新闻平台及公共提供方的只读工具。工具范围由部署配置决定,可通过 stdio 或无状态 HTTP 供 MCP 客户端调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
CiteWire
以署名优先的新闻与研究发现 MCP 基础设施。
CiteWire 为 Agent 提供结构化、只读的新闻与研究元数据访问,同时保留对原始发布者的署名和流量。它可以将兼容的新闻平台接入为类型化 MCP 工具、查询可选的公共服务商 API,或在一个服务中同时实现两者。
社区版本身即可使用。它包含 MCP 核心、stdio 和 HTTP 传输、通用平台适配器,以及本仓库中采用 MIT 许可证的所有服务商适配器。商业产品方向是在此基础上扩展,重点涵盖托管运维、个性化、工作流、协作、历史记录留存和支持。请参阅产品层级。
CiteWire 的用途
- 新闻平台运营者可以通过
news.list、news.get、news.topics和news.about,开放兼容的只读 API。 - 研究人员和 Agent 构建者可以只启用自己想要查询的公共新闻和研究服务商。
- 自托管用户可以通过 stdio、无状态 HTTP 或 Node 无服务器函数运行同一个服务。
- 服务商适配器贡献者可以添加专用适配器,而无需引入运行时依赖。
CiteWire 不是全文采集服务、爬虫、发布平台、编辑系统或权利许可服务。它不会存储或转载文章正文。服务商可访问,并不意味着无需针对你的使用场景审核其当前条款。
快速开始
要求:Node.js 18 或更高版本。社区版是仅支持 ESM 的 Node 包;它不提供 CommonJS 入口。
创建 citewire.config.json 并启用一个服务商:
{
"providers": {
"openalex": { "enabled": true }
}
}
通过 stdio 运行服务:
npx -y citewire --config citewire.config.json
stdio 是默认传输方式;当 MCP 客户端将 citewire 作为本地进程启动时,通常会选择此方式。
MCP 客户端配置
使用绝对配置路径,因为客户端不一定会从项目目录启动:
{
"mcpServers": {
"citewire": {
"command": "npx",
"args": [
"-y",
"citewire",
"--config",
"/absolute/path/to/citewire.config.json"
]
}
}
}
HTTP 传输
在端口 8722 上运行无状态 HTTP 传输:
npx -y citewire --config citewire.config.json --http 8722
本地端点通过 POST / 接受 JSON-RPC 请求。它不提供会话或事件流。
两种使用方式
1. 接入兼容的新闻平台
声明一个平台,并指定显示名称、站点 URL 和只读 API 基础路径:
{
"platform": {
"name": "Example Industry News",
"siteUrl": "https://news.example",
"apiBase": "https://news.example/api/v1/news"
}
}
此配置会开放四个工具:
| 工具 | 用途 |
|---|---|
news.list | 按最新优先列出条目,并支持按主题、行业、文本、日期范围和分页进行筛选。 |
news.get | 按 slug 获取单个条目,其中包括平台返回的署名信息和相关报道。 |
news.topics | 读取平台当前使用的主题分类体系。 |
news.about | 读取平台的静态信息和署名政策。 |
必需的 HTTP 接口详见平台只读 API 契约。
2. 启用公共提供方工具
提供方适配器包含在 Community 中,默认处于禁用状态。只有当配置条目将 enabled 设为 true 时,相应提供方才会启用。
{
"providers": {
"gdelt-doc": { "enabled": true },
"arxiv": { "enabled": true },
"crossref": {
"enabled": true,
"mailto": "[email protected]"
}
}
}
Crossref 要求部署者提供自己的联系邮箱,以便请求能向礼貌池标明操作者身份。citewire 只会通过请求中的 mailto 参数和 User-Agent 将该地址发送给 Crossref。请勿照搬示例地址。
当前的适配器包括:
| 提供方 | 工具 | 侧重点 |
|---|---|---|
| GDELT DOC 2.0 | gdelt.search | 全球新闻文章元数据 |
| GDELT Context 2.0 | gdelt.context | 某个词语周围的片段级上下文 |
| arXiv | arxiv.search | 预印本元数据 |
| OpenAlex | openalex.search | 学术作品、作者和出版渠道 |
| Crossref | crossref.search | DOI 注册元数据 |
| Semantic Scholar | semanticscholar.search | 论文和作者关系图元数据 |
| Europe PMC | europepmc.search | 生命科学文献元数据 |
| dblp | dblp.search | 计算机科学书目记录 |
| Hacker News | hackernews.top, hackernews.item | 来自官方 API 的故事和条目 |
| DEV | devto.search | 已发布的 DEV 文章元数据 |
启用前请阅读提供方。该文档记录了每个适配器的端点、文档、免费访问依据和已知的礼貌使用限制。提供方自己的文档仍是最终依据。
配置行为
platform为可选项。providers为可选项。- 配置中省略的提供方仍处于禁用状态。
- 空配置有效,且不会公开任何工具。
- 无效配置会在启动时失败,并在错误中指出相应字段。
- 对于正在运行的部署,
tools/list是权威的工具列表,因为启用哪些工具取决于该部署的配置。
部署可以同时启用平台工具和提供方工具:
{
"platform": {
"name": "Example Industry News",
"siteUrl": "https://news.example",
"apiBase": "https://news.example/api/v1/news"
},
"providers": {
"openalex": { "enabled": true }
}
}
可选的 Community 策略基础
CiteWire 可以公开一个本地只读基础,用于来源策略、权利评估和影子纳入评分:
{
"community": {
"enabled": true,
"classifierMode": "shadow",
"thresholds": {
"adjacent_min": 0.5,
"standard_min": 0.6
}
}
}
所有捆绑的来源默认仍处于禁用状态。此设置不会发起网络调用,不会加载凭据,也无法发布内容。基于凭据的权利检查可在内存中接受不透明的密钥管理器引用,但绝不会返回这些引用。在单独审核的编辑系统和评估语料库建立之前,分类器会被强制设为影子模式,并始终报告 publishable: false。
请阅读来源注册表和权利,了解运行时验证、失败时默认拒绝策略、规范的 MCP 工具和资源,以及当前的限制。
设计边界
- MIT 许可且零依赖。 此软件包使用 Node 内置功能,没有运行时或开发依赖项。
- Node ESM。 Community 通过 ESM 支持 Node.js 18 或更高版本。不提供 CommonJS 兼容性或 CommonJS 构建。
- 只读。 所含工具会查询平台和提供方的只读接口。
- 无状态。 Community 服务没有账号、会话、已保存的搜索或保留的历史记录。
- 优先归属信息。 结果会保留上游平台或提供方提供的来源元数据和链接。
- 由配置驱动。 部署者决定提供哪些工具,不会有任何内容自行启用。
- 不存储数据。 核心不会保留提供方响应或来源内容。
这些边界通过项目治理政策来维护。
生态与产品文档
- 产品层级定义了社区版的永久价值 以及附加的商业边界。
- 分发包含精确的注册表和目录检查清单。
尚未执行的提交会标记为
PENDING。 - 治理说明决策、提供方管理、 兼容性和许可。
- 提供方记录了各个上游提供方。
- 平台契约定义了兼容的新闻 读取 API。
- 贡献介绍了环境设置、测试、添加提供方以及 拉取请求的要求。
- 发布定义了软件包和注册表的发布控制。
- 支持、安全和 行为准则定义了社区运作渠道。
项目起源
citewire 由 Openly Useful 构建和维护。公共平台契约 具有通用性,可封装任何兼容的读取 API。
贡献
运行 npm test 执行测试套件。无需安装步骤。在提出提供方或修改
公共契约之前,请参阅
CONTRIBUTING.md。
许可证
社区版采用 MIT 许可证。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。