Token导航 LogoToken导航TokenDH.com
Citemesh MCP logo
数据服务stdio官方级别未说明来源级核验

Citemesh MCP

MCP Server

@modelcontextprotocol/inspector

CItemesh MCP是一个联邦学术元数据工具,用于搜索研究论文、解析DOI元数据、丰富记录并导出规范化输出如CSV或BibTeX。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
TypeScript数据分析API集成

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mainak9163

提供方

mainak9163

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector node apps/mcp-gateway/dist/index.js

详细介绍

Citemesh MCP

面向MCP客户端的联合学术元数据工具。

CItemesh是一个小型的monorepo,它允许AI代理:

  • 从Crossref搜索学术作品
  • 将DOI元数据解析为一个标准化的形状
  • 使用维基数据实体丰富作品
  • 批量解析多个DOI
  • 将结果导出为CSV或JSON
  • 生成引文输出,如BibTeX、CSL-JSON和格式化的参考书目文本

该项目分为重点服务:

  • apps/metadata-federator 获取并规范元数据
  • apps/export-worker 格式化和导出结果
  • apps/mcp-gateway 通过stdio将功能作为MCP工具公开
  • packages/contracts 跨服务共享模式和DTO

它解决了什么问题

来自公共API的研究元数据很混乱。交叉引用记录的标题形状、日期、摘要和作者字段各不相同。CItemesh通过将所有内容标准化为一个可预测的内容来解决这个问题 WorkRecord 数据到达AI代理或导出层之前的模式。

这意味着MCP客户端不需要知道:

  • Crossref如何构建其有效载荷
  • 如何清理DOI输入
  • 如何从摘要中删除JATS标签
  • 如何结合元数据查找和导出格式

建筑

graph TD
    Agent["MCP Client / AI Agent"]
    Gateway["apps/mcp-gateway\nMCP server over stdio"]
    Federator["apps/metadata-federator\nFastify service :3001"]
    Exporter["apps/export-worker\nFastify service :3002"]
    Contracts["packages/contracts\nshared schemas and DTOs"]
    Crossref["Crossref REST API"]
    Wikidata["Wikidata SPARQL"]
    Cache[("SQLite cache")]

    Agent --> Gateway
    Gateway --> Federator
    Gateway --> Exporter
    Federator --> Crossref
    Federator --> Wikidata
    Federator --> Cache
    Contracts -.-> Gateway
    Contracts -.-> Federator
    Contracts -.-> Exporter

Monorepo结构

citemesh-mcp/
|-- apps/
|   |-- export-worker/
|   |   |-- src/
|   |   |   |-- __tests__/
|   |   |   |-- routes/
|   |   |   `-- services/
|   |-- mcp-gateway/
|   |   `-- src/
|   |       |-- index.ts
|   |       |-- service-client.ts
|   |       `-- tools.ts
|   `-- metadata-federator/
|       |-- src/
|       |   |-- __tests__/
|       |   |-- cache/
|       |   |-- routes/
|       |   `-- services/
|       `-- vitest.config.ts
|-- packages/
|   `-- contracts/
|       `-- src/
|           |-- dtos.ts
|           |-- errors.ts
|           `-- work.ts
|-- .env.example
|-- package.json
|-- pnpm-workspace.yaml
`-- tsconfig.base.json

服务和责任

角色默认端口
@citemesh/metadata-federator搜索、DOI解析、批处理、维基数据丰富、SQLite响应缓存3001
@citemesh/export-workerCSV导出、JSON导出、BibTeX、CSL-JSON、格式化参考书目3002
@citemesh/mcp-gatewayMCP工具注册、输入验证、委托给内部服务stdio
@citemesh/contracts共享Zod模式、DTO、错误形状、规范化类型n/a

主要MCP工具

网关公开了这些工具:

工具它做什么
search_works按查询或作者搜索Crossref
resolve_doi将一个DOI解析为标准化记录
batch_lookup_dois一次通话最多可解决50个DOI
enrich_work_entities解析工作并附加维基数据实体信息
build_bibliography制作BibTeX、CSL-JSON或格式化参考书目
export_results导出标准化格式为CSV或JSON

标准化数据模型

每项服务都围绕一个共享 WorkRecord 形状:

type WorkRecord = {
  doi: string;
  title: string;
  authors: Array;
  year: number | null;
  source: string;
  type: string;
  publisher?: string;
  url?: string;
  abstract?: string;
  external_ids: {
    doi?: string;
    pmid?: string;
    arxiv?: string;
    wikidata?: string;
    isbn?: string[];
    issn?: string[];
  };
  raw_source: "crossref" | "wikidata" | "manual";
};

技术栈

  • Node.js
  • TypeScript
  • pnpm工作区
  • 快车
  • 黄道带
  • MCP TypeScript SDK
  • SQLite通过 better-sqlite3
  • 交叉参考REST API
  • 维基数据SPARQL
  • 引用.js
  • 维测试

先决条件

  • Node.js 20+
  • pnpm 8+
  • 实时Crossref和Wikidata通话的互联网接入
  • 在Windows上,如果满足以下条件,可能需要Python和Visual Studio构建工具 better-sqlite3 本地编译

设置

pnpm install
pnpm build

复制环境文件:

cp .env.example .env

至少,更新:

  • CROSSREF_MAILTO 通过您的电子邮件

默认 .env.example 已经包括:

  • METADATA_FEDERATOR_PORT=3001
  • EXPORT_WORKER_PORT=3002
  • METADATA_FEDERATOR_URL=http://localhost:3001
  • EXPORT_WORKER_URL=http://localhost:3002
  • CACHE_DB_PATH=./cache.db
  • CACHE_TTL_SECONDS=3600

运行项目

从repo根并行运行所有内容:

pnpm dev

或者分别运行每个服务:

pnpm --filter @citemesh/metadata-federator dev
pnpm --filter @citemesh/export-worker dev
pnpm --filter @citemesh/mcp-gateway dev

构建和测试

构建整个monorepo:

pnpm build

运行所有测试:

pnpm test

今天涵盖的内容:

  • 元数据规范化测试
  • DOI实用程序测试
  • 批量响应形状试验
  • 实时集成测试 metadata-federator
  • CSV导出测试
  • 书目生成测试

快速手动烟雾测试

1.启动HTTP服务

pnpm --filter @citemesh/metadata-federator dev
pnpm --filter @citemesh/export-worker dev

2.检查健康路线

curl http://127.0.0.1:3001/health
curl http://127.0.0.1:3002/health

预期:

{"status":"ok","service":"metadata-federator"}
{"status":"ok","service":"export-worker"}

3.搜索工作

curl -X POST http://127.0.0.1:3001/search \
  -H "Content-Type: application/json" \
  -d "{\"query\":\"attention is all you need\",\"rows\":1}"

4.解决DOI

curl -X POST http://127.0.0.1:3001/resolve \
  -H "Content-Type: application/json" \
  -d "{\"doi\":\"10.1038/s41586-021-03819-2\"}"

5.将作品导出为CSV

curl -X POST http://127.0.0.1:3002/export \
  -H "Content-Type: application/json" \
  -d "{\"works\":[{\"doi\":\"10.1038/s41586-021-03819-2\",\"title\":\"Highly accurate protein structure prediction with AlphaFold\",\"authors\":[{\"family\":\"Jumper\",\"given\":\"John\"}],\"year\":2021,\"source\":\"Nature\",\"type\":\"journal-article\",\"publisher\":\"Springer Nature\",\"url\":\"https://doi.org/10.1038/s41586-021-03819-2\",\"abstract\":\"Proteins are essential to life.\",\"external_ids\":{\"doi\":\"10.1038/s41586-021-03819-2\",\"issn\":[\"0028-0836\"]},\"raw_source\":\"crossref\"}],\"format\":\"csv\"}"

6.生成BibTeX

curl -X POST http://127.0.0.1:3002/bibliography \
  -H "Content-Type: application/json" \
  -d "{\"works\":[{\"doi\":\"10.1038/s41586-021-03819-2\",\"title\":\"Highly accurate protein structure prediction with AlphaFold\",\"authors\":[{\"family\":\"Jumper\",\"given\":\"John\"}],\"year\":2021,\"source\":\"Nature\",\"type\":\"journal-article\",\"publisher\":\"Springer Nature\",\"url\":\"https://doi.org/10.1038/s41586-021-03819-2\",\"abstract\":\"Proteins are essential to life.\",\"external_ids\":{\"doi\":\"10.1038/s41586-021-03819-2\",\"issn\":[\"0028-0836\"]},\"raw_source\":\"crossref\"}],\"format\":\"bibtex\"}"

通过MCP进行测试

最有用的端到端演示是运行两个HTTP服务,然后通过MCP客户端或MCP检查器连接网关。

先构建:

pnpm build

运行备份服务:

pnpm --filter @citemesh/metadata-federator dev
pnpm --filter @citemesh/export-worker dev

然后启动网关:

node apps/mcp-gateway/dist/index.js

因为网关使用stdio,所以它应该由MCP客户端启动,而不是直接在浏览器中打开。

MCP检查员

npx @modelcontextprotocol/inspector node apps/mcp-gateway/dist/index.js

从那里你可以打电话:

  • search_works
  • resolve_doi
  • build_bibliography
  • export_results

MCP输入示例

搜索:

{
  "query": "transformer attention mechanism",
  "rows": 3,
  "offset": 0
}

解决DOI:

{
  "doi": "10.1038/s41586-021-03819-2"
}

批量查找:

{
  "dois": [
    "10.1038/s41586-021-03819-2",
    "10.1145/3290605.3300400"
  ]
}

参考文献:

{
  "dois": ["10.1038/s41586-021-03819-2"],
  "format": "bibtex"
}

CSV导出:

{
  "works": [
    {
      "doi": "10.1038/s41586-021-03819-2",
      "title": "Highly accurate protein structure prediction with AlphaFold",
      "authors": [{ "family": "Jumper", "given": "John" }],
      "year": 2021,
      "source": "Nature",
      "type": "journal-article",
      "publisher": "Springer Nature",
      "url": "https://doi.org/10.1038/s41586-021-03819-2",
      "external_ids": { "doi": "10.1038/s41586-021-03819-2" },
      "raw_source": "crossref"
    }
  ],
  "format": "csv"
}

如何在录音中描述这个项目

如果你想要一个干净、自信的解释,这是最简单的框架:

CItemesh MCP是一个学术元数据MCP服务器。它允许AI代理搜索研究论文,解析DOI元数据,用维基数据丰富记录,并导出CSV或BibTeX等标准化输出。该项目分为一个精简的MCP网关、一个元数据联合器、一个导出工作器和共享合同,这使得每个责任都是隔离的,易于测试。

建议2-3分钟视频脚本

开场

说:

该项目名为CItemesh MCP。它是为模型上下文协议构建的联邦学术元数据服务器。主要目标是为AI代理提供一种干净的方式来搜索论文、解析DOI元数据、丰富记录和导出可引用的输出。

文件夹漫游

说:

代码库被组织为PNPM单仓库。这 mcp-gateway 应用程序公开了MCP工具。这 metadata-federator 该应用程序与Crossref和Wikidata进行对话,并将结果标准化。这 export-worker 该应用程序将规范化记录转换为CSV、JSON、BibTeX或参考书目文本。这 contracts 该包将共享模式和DTO保存在一个地方,以便所有服务保持一致。

建筑价值

说:

这种架构之所以有用,是因为网关保持精简。它只验证工具输入,并将工作转发给内部服务。这使得元数据逻辑和导出逻辑可以单独测试,也使系统更容易在以后使用新的源代码或新的导出格式进行扩展。

演示流程

说:

对于演示,我启动元数据联邦器和导出工作器,然后直接测试HTTP路由或使用MCP检查器连接MCP网关。典型的流程是搜索论文,将DOI分解为标准化 WorkRecord,然后将该记录导出为BibTeX或CSV。

关闭

说:

关键在于,CItemesh充当了研究API和AI代理之间的干净元数据层。与其让每个代理都处理混乱的外部有效载荷,不如让它们都有一个稳定的模式和一组专注的工具。

短30秒版本

如果你需要一个简短的解释:

CItemesh MCP是一个用于学术元数据的MCP服务器。它允许AI代理搜索Crossref,解析DOI,用维基数据丰富结果,并通过干净的多服务架构导出CSV和BibTeX等引用就绪格式。

已通过此回购验证

以下内容已在本地验证:

  • pnpm build 通过
  • pnpm test 通过
  • metadata-federator 健康、搜索和DOI解析路由成功运行
  • export-worker 健康、CSV导出和BibTeX生成路由成功运行

故障排除

better-sqlite3 无法在Windows上加载

如果依赖项是从另一个操作系统或体系结构安装的,请重新安装:

pnpm install --force

如果Node不能使用预构建的二进制文件, better-sqlite3 可以在本地编译,这可能需要:

  • python
  • Windows上的Visual Studio生成工具

交叉引用请求失败或速率限制

在以下位置设置真实电子邮件:

CROSSREF_MAILTO=you@example.com

MCP网关出现空闲

这很正常。网关使用stdio并等待MCP客户端(如MCP Inspector)或桌面客户端连接。

未来改进

  • 添加网关特定的单元测试
  • 支持更多的学术资源,如OpenAlex或Semantic Scholar
  • 添加作者级维基数据丰富
  • 添加基于Docker的本地启动
  • 为内部HTTP服务添加API文档

目录标签

目录标签

TypeScript数据分析API集成学术元数据本地部署DOI解析文献导出Wikidata丰富MCP工具

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP