mcpField
C
CiteWire

CiteWire

本地服务
citewire.org搜索与检索12 周前更新

关于 CiteWire

CiteWire 是面向新闻平台运营者、研究人员和 Agent 构建者的只读新闻与研究元数据 MCP 服务。它可包装兼容平台的读取 API,并按配置启用公共来源适配器,同时保留来源归属信息,不存储文章正文。

主要功能

  1. 01包装新闻平台读取 API
  2. 02查询新闻与研究元数据
  3. 03按配置启用来源适配器
  4. 04提供 stdio 和无状态 HTTP 传输
  5. 05保留来源归属与链接

适用场景

  1. 01向 Agent 提供新闻平台内容检索
  2. 02查询论文、学术作品和 DOI 元数据
  3. 03自托管新闻与研究查询服务

MCP 相关

CiteWire 通过 MCP 提供新闻平台及公共提供方的只读工具。工具范围由部署配置决定,可通过 stdio 或无状态 HTTP 供 MCP 客户端调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"openly-useful-citewire": {
"command": "npx",
"args": [
"-y",
"citewire"
]
}
}
}
启动命令npx -y citewire

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcitewire0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

CiteWire

npm CI license

citewire.org · Openly Useful

以署名优先的新闻与研究发现 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.0gdelt.search全球新闻文章元数据
GDELT Context 2.0gdelt.context某个词语周围的片段级上下文
arXivarxiv.search预印本元数据
OpenAlexopenalex.search学术作品、作者和出版渠道
Crossrefcrossref.searchDOI 注册元数据
Semantic Scholarsemanticscholar.search论文和作者关系图元数据
Europe PMCeuropepmc.search生命科学文献元数据
dblpdblp.search计算机科学书目记录
Hacker Newshackernews.top, hackernews.item来自官方 API 的故事和条目
DEVdevto.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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。