关于 CiteNexus
CiteNexus 是用于学术搜索、参考文献核验和引文导出的 MCP 服务,面向研究助手与写作流程,提供带来源归属的元数据和确定性书目格式。
主要功能
- 01跨学术数据源搜索
- 02解析 DOI 和命名空间标识符
- 03依据元数据核验参考文献
- 04导出 BibTeX、RIS 和 CSL-JSON
- 05追踪字段来源与引用计数
- 06查找报告中的开放获取位置
适用场景
- 01整理文献候选清单
- 02核对参考文献的标题和年份
- 03导出书目记录
- 04查看各来源的引用计数
MCP 相关
它向 MCP 客户端提供学术搜索、标识符解析、引文核验、导出、资源和提示词,支持 stdio 与 Streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx cite-nexus-mcpCITE_NEXUS_CONTACT_EMAILOptional Crossref polite-pool contact emailSEMANTIC_SCHOLAR_API_KEY密钥Optional Semantic Scholar account keyOPENALEX_API_KEY密钥Key for explicitly selected OpenAlex queries; account credits applySERPAPI_API_KEY密钥Key for explicitly selected commercial Google Scholar queriesSCOPUS_API_KEY密钥Key for explicitly selected Scopus queries; entitlement requiredSCOPUS_INSTTOKEN密钥Optional Scopus institutional tokenWOS_API_KEY密钥Key for explicitly selected Web of Science Starter queriesUNPAYWALL_EMAILOptional email for Unpaywall open-access enrichment本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
11收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| format | enum | 否 | bibtex | ris | csl-json |
| providers | any | 否 | |
| identifiers | array | 是 |
详细介绍
CiteNexus MCP
学术发现与引用,证据可追溯。
CiteNexus 通过 Model Context Protocol 将研究助手连接到开放的学术元数据、专业学术索引和可选的商业数据库。无需 API 密钥即可搜索、解析稳定标识符、依据来源核查参考文献,并导出引用,无需让大模型虚构缺失字段。
这是为你现有助手提供的引用与元数据服务。它可以与 Zotero 等文献管理器,以及支持 MCP 的写作环境协同使用。
CiteNexus 0.2.3 包含 MCP 服务和配套工具 cite-nexus-wtfp。
WTF-P 集成面向独立发布的 0.7.0 版本。市场上架和原生客户端插件资格认证会分别跟踪。
快速开始 · WTF-P 集成 · 提供方指南 · 故障排查 · 发布信息
- 无需凭据即可使用: Crossref、DataCite 和 Europe PMC 是默认搜索来源。 arXiv 和 Semantic Scholar 也可在无需必填密钥的情况下使用。
- 可选的专业和商业访问: OpenAlex、通过 SerpAPI 或 SearchApi 访问 Google Scholar、Scopus 和 Web of Science Starter 均需明确配置并选择提供方。
- 来源支持的记录: 命名空间标识符、检索时间戳、字段归属、不完整作者警告,以及提供方特定的引用计数。
- 确定性导出: 根据检索到的元数据生成 BibTeX、RIS 和 CSL-JSON。无需大模型。
- 当前 MCP: Python SDK 2.2、2026-07-28 规范、结构化工具结果、资源、提示词、进度、stdio 和 Streamable HTTP。较早的客户端仍可通过 SDK 的旧版协议路径使用。
快速开始
需要 Python 3.11+ 和 uv。
uvx --from cite-nexus-mcp==0.2.3 cite-nexus-mcp --version
uvx --from cite-nexus-mcp==0.2.3 cite-nexus-mcp --no-env-file --list-providers
适用于使用 mcpServers 配置的 MCP 客户端:
{
"mcpServers": {
"cite-nexus": {
"command": "uvx",
"args": ["--from", "cite-nexus-mcp==0.2.3", "cite-nexus-mcp", "--no-env-file"]
}
}
}
客户端会通过 stdio 启动 MCP。无需 API 密钥或 .env 文件。直接运行服务命令会等待客户端连接;它不是交互式搜索 shell。如果客户端找不到 uvx,请使用其可执行文件的绝对路径。首次运行会下载软件包及其依赖项。
如需持久安装(包括 WTF-P 配套工具):
uv tool install cite-nexus-mcp==0.2.3
cite-nexus-wtfp --check
诊断功能会启动实际的 MCP 服务并列出提供方,不会查询供应商 API。有关独立集成和可执行文件路径设置,请参阅 WTF-P 设置。
适用于本地 HTTP 客户端:
uvx --from cite-nexus-mcp==0.2.3 cite-nexus-mcp --no-env-file --transport streamable-http --port 8000
连接到 http://127.0.0.1:8000/mcp。CLI 仅绑定到环回地址,并服务于单一信任边界。面向公众的多用户部署需要身份验证、凭据隔离和自身的部署集成;CLI 不提供这些功能。
来源与访问
| 提供方 ID | 覆盖范围 | 访问方式 | 设置 |
|---|---|---|---|
crossref | 出版商提交的 DOI 元数据和引文计数 | 免费;默认 | 可选设置 CITE_NEXUS_CONTACT_EMAIL,以使用礼貌池 |
datacite | 数据集、软件及其他已注册 DOI 的研究成果 | 免费;默认 | 无 |
europe_pmc | 生物医学文献、PubMed/PMC 记录、参考文献和引文 | 免费;默认 | 无 |
arxiv | 物理学、数学、计算机及相关领域的预印本 | 免费 | 显式选择;每 3 秒最多请求一次 |
semantic_scholar | 学术图谱发现和引文遍历 | 免费/匿名请求共享限额;可选密钥 | 可选设置 SEMANTIC_SCHOLAR_API_KEY |
openalex | 多学科研究图谱 | 免费额度/按量计费的账户访问 | OPENALEX_API_KEY |
serpapi | 通过 SerpAPI 供应商 API 访问 Google Scholar | 商业服务;账户额度各不相同 | SERPAPI_API_KEY |
searchapi | 通过 SearchApi.io 供应商 API 访问 Google Scholar | 商业服务;账户额度各不相同 | SEARCHAPI_API_KEY |
scopus | Elsevier 精选文献索引 | 机构/商业授权 | SCOPUS_API_KEY;可选设置 SCOPUS_INSTTOKEN |
wos | Clarivate Web of Science Starter | 机构/商业授权 | WOS_API_KEY |
配置 UNPAYWALL_EMAIL 后,find-open-access 还可以使用 Unpaywall 丰富 DOI 记录。
它会返回报告中的合法 OA 来源和许可信息;不会下载 PDF 或绕过访问限制。
免费访问受提供方的速率限制和条款约束。匿名使用 Semantic Scholar 可能会受到严格限流。 OpenAlex 的访问政策曾多次变化;即使匿名请求偶尔成功,CiteNexus 仍要求该适配器配置密钥。 机构密钥本身并不保证订阅访问权限,也不保证能在机构网络之外访问。
只有在显式选择商业和按量计费的适配器、解析其专属命名空间 ID,或有意将其配置为默认搜索提供方时,才会调用这些适配器。仅设置密钥不会将供应商加入默认搜索。list-providers 会报告配置、功能和文档链接,但不会测试访问权限或透露密钥值。
研究工作流
使用 CiteNexus 创建文献候选列表、修正不确定的参考文献、核查引用计数背后的来源,或为写作工具准备书目。若要使用完整的写作工作流,WTF-P companion 可将文献发现与证据表、提纲和稿件工作连接起来,同时让候选参考文献清晰可见,供你审阅。
让助手直接使用这些工具,或从 literature-review 和
bibliography-audit MCP 提示词开始。工具参数示例:
{"query": "reproducible machine learning benchmarks", "providers": ["crossref", "arxiv"], "limit": 5}
{"identifier": "10.1038/nature14539", "format": "bibtex"}
{"citation": "10.1038/nature14539", "expected_title": "Deep learning", "expected_year": 2015}
{"identifier": "PMID:26017442", "direction": "references", "provider": "europe_pmc", "limit": 10}
{"identifiers": ["10.1038/nature14539", "arxiv:1706.03762"], "format": "csl-json"}
| 工具 | 用途 |
|---|---|
list-providers | 查看来源功能、访问级别和凭据配置 |
search-papers | 并发联合搜索、谨慎去重,并支持按来源分页 |
resolve-paper | 检索并验证 DOI 或带命名空间的标识符;可选择合并指定来源 |
get-citation | 将一条已解析记录导出为 bibtex、ris 或 csl-json |
verify-citation | 检查标识符或单条 BibTeX 条目,包括提供的标题和年份 |
batch-citations | 解析并导出 1–20 个标识符,按顺序返回结果,并支持部分失败和进度报告 |
related-papers | 按页浏览某个来源的引用文献或参考文献 |
paper-metrics | 返回观测到的引用数,并按提供方和索引分别列出 |
find-open-access | 查找来源报告的 OA 位置,可选用 Unpaywall 补充信息 |
enhance-citation | 规范化 BibTeX 格式,同时保留提供的书目信息 |
find-scholar-id | 通过 SerpAPI 或 SearchApi 进行旧版 Scholar 检索;返回候选项供审阅 |
search-papers 默认每个提供方返回 10 条结果,而不是总共 10 条。结果按各提供方的排名交错排列,然后合并兼容的记录。limit 为 1–50;使用 SerpAPI 或 SearchApi 时,最多为 20。使用各提供方的 next_offsets 并保持相同的 limit,选择该提供方进行下一次调用。Europe PMC 搜索使用 next_cursors:将其令牌作为 cursor 传入,仅选择 europe_pmc,保持查询和 limit 不变,并将 offset 设为零。offset 必须是 limit 的整数倍,且不得超过 10,000。year_from、year_to 和 open_access_only 会筛选已获取的页面;未知值将被排除。默认情况下,搜索结果不包含摘要;设置 include_abstract: true 或解析记录即可获取摘要。搜索记录默认采用精简格式:field_sources 为空,而 sources 仍会列出每个提供方。设置 detail: "full" 或解析记录,即可查看各字段的来源信息。
各提供方的搜索语言不同:显式高级查询需使用相应提供方的语法。
支持的标识符包括 10.1038/nature14539、arxiv:1706.03762、PMID:26017442、
PMC12345、openalex:W2919115771、s2:<paperId>、s2:CorpusId:<number>、
scholar:<numericClusterId>、scopus:<numericId> 和 WOS:<recordId>。系统可识别 DOI、arXiv 和 PubMed URL。不会抓取任意 URL,也不会将没有前缀的数字字符串视为 PubMed 或 Scholar ID。
解析 DOI 时,系统会依次尝试 Crossref、DataCite 和 Europe PMC,直到检索到匹配记录。若明确提供 providers 列表,则会检查每个兼容的已选来源,并保留证据和不一致之处。本地标识符会路由到对应来源。标题搜索始终返回候选项;系统绝不会悄然将第一个结果判定为匹配项。
请阅读 MCP 资源 cite-nexus://methodology、cite-nexus://providers 和
cite-nexus://workflows,获取机器可访问的指南。
“已验证”的含义
验证可确认某个标识符存在于检索到的元数据中,并检查提供的标题和年份。它不能证明论文的研究结果正确、所有作者均已列出、论文支持某项具体主张,或论文不存在撤稿情况。提供方故障时,结果会标记为 unavailable,而不是声称引文是伪造的。
导出内容会省略不可用的元数据。不完整的作者列表会生成警告;在适当情况下,BibTeX 会使用 others。引文计数会保留其来源、索引和观测时间戳,绝不会跨数据库相加。不同提供方的计数不能直接互换。元数据可能包含错误或相互冲突的出版年份,而缺少撤稿标记并不能证明论文未被撤稿。
CSL-JSON 是结构化书目数据。请使用 CSL 处理器或文献管理器来生成 APA、IEEE 或期刊自定格式。enhance-citation 支持 default 和 compact 格式;它不会推断关键词、奖项、影响因子或缺失的作者。
配置
只有在需要可选设置时,才将 .env.example 复制为 .env。已有的进程环境变量优先级更高。CLI 会加载 ./.env 或显式指定的 --env-file;它绝不会搜索父目录。导入 Python 包不会读取 .env 或调用外部服务。对于自行管理凭据的客户端,请传入 --no-env-file。WTF-P 配套组件和插件清单始终使用此模式。
| 变量 | 默认值 | 含义 |
|---|---|---|
CITE_NEXUS_DEFAULT_PROVIDERS | crossref,datacite,europe_pmc | 显式指定的搜索源 ID,以逗号分隔 |
CITE_NEXUS_TIMEOUT | 12 | 每个 HTTP 请求的超时时间,单位为秒 |
CITE_NEXUS_OPERATION_TIMEOUT | 40 | 提供方操作或标识符解析的时间预算 |
CITE_NEXUS_RETRIES | 1 | 传输失败、HTTP 429 和 5xx 响应的重试次数 |
CITE_NEXUS_CONCURRENCY | 6 | 同时发出的出站请求的最大数量 |
CITE_NEXUS_CACHE_TTL | 300 | 进程内响应缓存的有效期,单位为秒;0 表示禁用 |
CITE_NEXUS_CACHE_SIZE | 256 | 缓存响应的最大数量;0 表示禁用缓存 |
缓存记录会保留其原始检索时间戳和引文观测时间戳。缓存有大小上限,并会按凭据划分响应。超过 8 MB 的响应会被拒绝。对于较长的 Retry-After 冷却时间,系统会返回提供方问题,而不会让调用一直等待。工具错误中不会包含密钥和上游错误正文。本地 stderr 日志记录可确保 MCP 的 stdout 保持干净。
有关访问方面的注意事项和限制,请参阅提供方详情、迁移说明和产品方向。
开发与验证
从源代码开始:
git clone https://github.com/akougkas/cite-nexus-mcp.git
cd cite-nexus-mcp
uv sync --locked
uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run mypy src/cite_nexus_mcp
uv run python scripts/prepare_release.py --check
uv run python scripts/marketplaces.py --check
uv run pytest -q
uv build
自动化测试套件使用合成的提供方测试夹具和模拟 HTTP,并运行真实的本地 stdio 和 Streamable HTTP 进程。测试无需供应商凭据,并会阻止测试进程访问外部网络。付费和机构适配器均有基于测试夹具的契约覆盖;实时许可测试需要拥有访问权限的账户。
另有单独提供的显式公共 API 冒烟测试:
uv run python scripts/smoke_public.py
该测试会忽略账户凭据,只联系 Crossref、DataCite、Europe PMC、arXiv 和匿名 Semantic Scholar。速率限制和网络故障会作为结果报告。
官方 MCP Tasks 扩展不会对外宣称支持。SDK 2.2 尚未实现该扩展。
batch-citations 是有界的同步工作流,支持进度报告和取消,并非持久化任务队列。路线图 说明了添加持久化任务、本地文库和更多授权提供方的标准。
发布套件 包含定位、上架文案、演示脚本和宣传文案草稿。市场清单 跟踪了 41 个渠道和潜在机会,其中包括已验证的渠道、重复渠道以及非活跃或尚未解决的网站。源元数据、可移植的插件清单和图像资源均已准备好供审核。在配置可选提供方或托管服务之前,请参阅数据处理。
许可证
MIT。提供方内容、API 访问和再分发仍须遵守各来源的条款。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。