关于 MCP-DBLP
MCP-DBLP 是为大模型提供 DBLP 计算机科学文献数据库访问的 MCP 服务。它让模型检索论文并生成 BibTeX 文件,条目内容由服务端直接从 DBLP 数据渲染,模型不改写书目字段。适合需要整理参考文献的研究人员。
主要功能
- 01支持 and、or 的布尔检索,可按年份和会议期刊过滤
- 02标题与作者名的模糊匹配
- 03显示查询词命中作者、标题或发表场所的位置
- 04从 DBLP 数据渲染 BibTeX 条目
- 05本地索引,每月更新,可导出 .bib 文件
适用场景
- 01为论文撰写收集并导出 BibTeX 参考文献
- 02按作者或年份查询某位学者的论文列表
- 03查询会议或期刊的基本信息
MCP 相关
该项目是 MCP 服务,向 MCP 客户端提供 DBLP 检索、作者论文列表、会议期刊查询及 BibTeX 导出等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP-DBLP
一个 Model Context Protocol(MCP)服务,为大模型提供访问 DBLP 计算机科学文献目录的能力(相关论文发表于 AI4SC @ AAAI-26)。
概览
MCP-DBLP 让大模型通过 Model Context Protocol 搜索 DBLP,并根据搜索结果构建 BibTeX 文件。模型负责选择论文和引用键;服务根据 DBLP 的数据写入条目,因此模型不会重写文献信息字段。
从 2.0 版开始,MCP-DBLP 使用 DBLP 的本地副本,而不是 dblp.org Web API;该 API 现已阻止自动化客户端。首次启动时,服务会下载本地索引,即 DBLP 月度数据转储的预构建 SQLite 索引(约 1.3 GB,参见本地 DBLP 索引)。此后,所有搜索都在本地运行,不受速率限制。
功能
- 使用
and和or进行布尔搜索(不支持括号),可按年份和会议筛选 - 对标题和作者姓名进行模糊匹配
- 作者感知排序:每条搜索结果都会指出与作者、标题或会议名称匹配的查询词,并标记仅前缀匹配
- 使用 DBLP 自有格式的 BibTeX,根据 DBLP 数据生成;除
timestamp字段中的时刻外,它与 dblp.org 上的.bib导出一致;标题还会将内部含有大写字母的单词用花括号括起({CaDiCaL}、{DRUP}-based),以避免文献样式将其转换为小写 - 将收集的条目导出到
.bib文件,由服务写入 - 每月更新一次本地索引,通过
mcp-dblp-index update安装
可用工具
| 工具 | 说明 |
|---|---|
search | 使用布尔查询搜索 DBLP |
fuzzy_title_search | 按近似标题查找出版物 |
get_author_publications | 列出作者的出版物,可按年份筛选 |
get_venue_info | 查询会议名称、缩写、类型和 DBLP 页面 |
add_bibtex_entry | 将 DBLP 键对应的条目添加到集合中 |
export_bibtex | 将收集的条目写入 .bib 文件 |
set_dblp_mirror | 选择用于 Web 回退的 dblp.org 主机(极少需要) |
反馈
请通过此表单向作者提供反馈。
系统要求
- Python 3.11+
- uv
- 首次启动时需要约 5.5 GB 可用磁盘空间(1.3 GB 下载文件加 4.2 GB 索引),之后需要 4.2 GB
安装
Claude Code
运行:
claude mcp add mcp-dblp -- uvx mcp-dblp
Claude Desktop
将以下内容添加到 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mcp-dblp": {
"command": "uvx",
"args": ["mcp-dblp"]
}
}
}
从源代码安装(开发)
git clone https://github.com/szeider/mcp-dblp.git
cd mcp-dblp
uv venv && source .venv/bin/activate
uv pip install -e .
然后使用以下内容配置 Claude Desktop:
{
"mcpServers": {
"mcp-dblp": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-dblp/", "run", "mcp-dblp"]
}
}
}
本地 DBLP 索引
DBLP 以 CC0 许可证每月发布一次 XML 数据转储。配套仓库 mcp-dblp-index 会根据每次数据转储构建本地索引,并将其作为 GitHub 版本发布。
首次启动。 如果尚未安装本地索引,服务会在后台下载当前版本(约 1.3 GB,解压后为 4.2 GB)。在 100 Mbit/s 的网速下约需 2 分钟,在 20 Mbit/s 的网速下约需 9 分钟。在此期间,每次工具调用最多等待索引 40 秒,然后返回下载进度,因此首次搜索会比平时耗时更长。如果下载中断,后续会从停止处继续。
更新。 每月都会发布新的本地索引。只有在你更新索引时,已安装的索引才会改变:
uvx --from mcp-dblp mcp-dblp-index update
在新索引安装完成前,旧索引会继续提供服务。在发布日期之后添加到 DBLP 的论文,要等到下次发布才会收录进索引。
命令行。 mcp-dblp-index 用于管理索引:
| 命令 | 功能 |
|---|---|
status | 显示已安装的索引(发布日期、出版物数量) |
fetch | 下载并安装当前本地索引 |
update | 如果最新版本比已安装版本更新,则安装该版本 |
download | 下载原始 DBLP XML 数据转储(用于自行构建索引) |
build | 根据已下载的数据转储构建索引(约需 10 分钟) |
环境变量。 在服务的环境中设置这些变量;在 Claude Desktop 中,使用服务条目的 env 字段:
| 变量 | 含义 |
|---|---|
MCP_DBLP_HOME | 索引和下载文件的目录(默认 ~/.mcp-dblp),例如可设为空间更大的磁盘上的目录 |
MCP_DBLP_INDEX | 指定索引文件的路径;设为 http 时会切换到 dblp.org Web API(该 API 被 dblp.org 屏蔽) |
MCP_DBLP_FIRST_START_WAIT | 工具调用等待首次启动下载的秒数(默认 40) |
{
"mcpServers": {
"mcp-dblp": {
"command": "uvx",
"args": ["mcp-dblp"],
"env": { "MCP_DBLP_HOME": "/Volumes/Data/mcp-dblp" }
}
}
}
使用说明
每个会话的首次回答都会向模型提供使用说明。请参阅 instructions_prompt.md。
工具详情
search
在 DBLP 中搜索出版物。所有查询词都必须出现在标题、作者姓名或出版场所中(不区分大小写和重音符号)。每条结果都会显示其 DBLP 键,以及一行 Matched:,说明每个查询词出现的位置,例如 szeider = author 2 of 3。
参数:
query(string,必填):搜索词。or用于分隔备选项(不使用括号);"quoted phrases"用于匹配相邻词;字段前缀author:、title:、venue:和year:会应用于其后的单词或短语;4 位数年份会将结果限制为该年份。例如:author:Vaswani title:attention 2017max_results(integer,可选):要返回的出版物数量上限。默认值为 10year_from(integer,可选):出版年份下限year_to(integer,可选):出版年份上限venue_filter(string,可选):用于筛选出版场所的不区分大小写的子字符串(例如,'iclr')include_bibtex(boolean,可选):是否在结果中包含 BibTeX 条目。默认值为 false
fuzzy_title_search
按标题查找出版物,即使标题存在拼写错误,或只知道标题开头也可以。结果按标题相似度排序,并标注为“标题相同”“标题包含查询内容”或“标题相似”。
参数:
title(字符串,必填):出版物的完整或部分标题(不区分大小写)similarity_threshold(数字,必填):介于 0 和 1 之间的浮点数,1.0 表示完全匹配max_results(整数,可选):要返回的出版物数量上限。默认为 10year_from(整数,可选):出版年份下限year_to(整数,可选):出版年份上限venue_filter(字符串,可选):对出版场所进行不区分大小写的子字符串筛选include_bibtex(布尔值,可选):是否在结果中包含 BibTeX 条目。默认为 false
get_author_publications
列出作者的出版物,按时间从新到旧排序。作者姓名采用模糊匹配。DBLP 使用数字区分同名作者(“Wei Wang 0010”);回答会列出匹配的 DBLP 人员,以及其他同名人员。
参数:
author_name(字符串,必填):作者全名,可选择附带 DBLP 的编号(不区分大小写和重音符号)similarity_threshold(数字,必填):介于 0 和 1 之间的浮点数,1.0 表示完全匹配max_results(整数,可选):要返回的出版物数量上限。默认为 20include_bibtex(布尔值,可选):是否在结果中包含 BibTeX 条目。默认为 falseyear_from(整数,可选):仅包含该年份及之后的出版物year_to(整数,可选):仅包含截至该年份的出版物
get_venue_info
查询出版场所的信息:名称、缩写、类型(会议或期刊)、DBLP 页面、出版物数量和年份范围。
参数:
venue_name(字符串,必填):会议缩写('IJCAI')、DBLP 的期刊缩写('J. ACM')或期刊全名('Journal of the ACM')
add_bibtex_entry
将 BibTeX 条目添加到集合中,以便稍后导出。
参数:
dblp_key(字符串,必填):搜索结果中的 DBLP 键(例如,“conf/nips/VaswaniSPUJGKP17”);DBLP:KEY和 DBLP 条目的biburl(https://dblp.org/rec/KEY.bib)也适用citation_key(字符串,必填):要在 .bib 文件中使用的引用键(例如,“Vaswani2017”)
行为:
- 按 DBLP 格式,从本地索引中渲染该键对应的 BibTeX 条目
- 将引用键替换为自定义键
- 将条目添加到会话集合中(同一引用键的条目会被替换)
- 返回成功结果或错误,并附上集合大小
服务会渲染 DBLP 数据中的每个条目;模型只选择引用键,不会编辑条目。本地索引中不存在的键会在 dblp.org 上查询,而该网站目前会阻止自动化客户端,因此此类调用会返回错误,且不会更改集合。
export_bibtex
将所有收集的 BibTeX 条目导出到 .bib 文件。
参数:
path(字符串,必填):.bib 文件的绝对路径(例如,“/path/to/refs.bib”);开头的~会展开。相对路径会被拒绝。
行为:
- 将通过
add_bibtex_entry添加的所有条目保存到指定路径 - 如果缺少 .bib 扩展名,会自动添加
- 如有需要,会创建父目录
- 成功导出后清空集合
- 返回保存文件的完整路径
- 如果集合为空,则返回错误
set_dblp_mirror
选择 Web 回退使用的 dblp.org 主机:本地索引中不存在的键,或设置 MCP_DBLP_INDEX=http 时的所有请求。使用本地索引进行的搜索不会联系 dblp.org;而 dblp.org 目前会阻止自动化客户端,因此此工具很少有用。
参数:
host(字符串,必填):dblp.org、dblp.uni-trier.de或dblp.dagstuhl.de;不接受其他主机
示例
输入文本
我们的探索聚焦于两类解释问题:局部和全局情境中的溯因解释与对比解释 \cite{MarquesSilvaI23}。溯因解释 \cite{IgnatievNM19},对应于主蕴含项解释 \cite{ShihCD18} 和充分理由解释 \cite{DarwicheJ22},用于阐明具体的决策实例;而对比解释 \cite{Miller19,IgnatievNA020},对应于必要理由解释 \cite{DarwicheJ22},则明确说明未选择其他选项的原因。相反,全局解释 \cite{Ribeiro0G16,IgnatievNM19} 旨在揭示模型在各种输入上的决策模式。
输出文本
我们的探索聚焦于两类解释问题:局部和全局情境中的溯因解释与对比解释 \cite{MarquesSilvaI23}。溯因解释 \cite{IgnatievNM19},对应于主蕴含项解释 \cite{ShihCD18} 和充分理由解释 \cite{DarwicheJ22},用于阐明具体的决策实例;而对比解释 \cite{Miller19,IgnatievNA020},对应于必要理由解释 \cite{DarwicheJ22},则明确说明未选择其他选项的原因。相反,全局解释 \cite{Ribeiro0G16,IgnatievNM19} 旨在揭示模型在各种输入上的决策模式。
输出 BibTeX
export_bibtex 会回答 Exported 7 references to /path/to/refs.bib,并写入:
@article{MarquesSilvaI23,
author = {Jo{\~{a}}o Marques{-}Silva and
Alexey Ignatiev},
title = {No silver bullet: interpretable {ML} models must be explained},
journal = {Frontiers Artif. Intell.},
volume = {6},
year = {2023},
url = {https://doi.org/10.3389/frai.2023.1128212},
doi = {10.3389/FRAI.2023.1128212},
timestamp = {Tue, 07 May 2024 00:00:00 +0200},
biburl = {https://dblp.org/rec/journals/frai/MarquesSilvaI23.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{IgnatievNM19,
author = {Alexey Ignatiev and
Nina Narodytska and
Jo{\~{a}}o Marques{-}Silva},
title = {Abduction-Based Explanations for Machine Learning Models},
booktitle = {The Thirty-Third {AAAI} Conference on Artificial Intelligence, {AAAI}
2019, The Thirty-First Innovative Applications of Artificial Intelligence
Conference, {IAAI} 2019, The Ninth {AAAI} Symposium on Educational
Advances in Artificial Intelligence, {EAAI} 2019, Honolulu, Hawaii,
USA, January 27 - February 1, 2019},
pages = {1511--1519},
publisher = {{AAAI} Press},
year = {2019},
url = {https://doi.org/10.1609/aaai.v33i01.33011511},
doi = {10.1609/AAAI.V33I01.33011511},
timestamp = {Mon, 04 Sep 2023 00:00:00 +0200},
biburl = {https://dblp.org/rec/conf/aaai/IgnatievNM19.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{ShihCD18,
author = {Andy Shih and
Arthur Choi and
Adnan Darwiche},
editor = {J{\'{e}}r{\^{o}}me Lang},
title = {A Symbolic Approach to Explaining Bayesian Network Classifiers},
booktitle = {Proceedings of the Twenty-Seventh International Joint Conference on
Artificial Intelligence, {IJCAI} 2018, July 13-19, 2018, Stockholm,
Sweden},
pages = {5103--5111},
publisher = {ijcai.org},
year = {2018},
url = {https://doi.org/10.24963/ijcai.2018/708},
doi = {10.24963/IJCAI.2018/708},
timestamp = {Tue, 20 Aug 2019 00:00:00 +0200},
biburl = {https://dblp.org/rec/conf/ijcai/ShihCD18.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{DarwicheJ22,
author = {Adnan Darwiche and
Chunxi Ji},
title = {On the Computation of Necessary and Sufficient Explanations},
booktitle = {Thirty-Sixth {AAAI} Conference on Artificial Intelligence, {AAAI}
2022, Thirty-Fourth Conference on Innovative Applications of Artificial
Intelligence, {IAAI} 2022, The Twelveth Symposium on Educational Advances
in Artificial Intelligence, {EAAI} 2022 Virtual Event, February 22
- March 1, 2022},
pages = {5582--5591},
publisher = {{AAAI} Press},
year = {2022},
url = {https://doi.org/10.1609/aaai.v36i5.20498},
doi = {10.1609/AAAI.V36I5.20498},
timestamp = {Wed, 18 Mar 2026 00:00:00 +0100},
biburl = {https://dblp.org/rec/conf/aaai/DarwicheJ22.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{Miller19,
author = {Tim Miller},
title = {Explanation in artificial intelligence: Insights from the social sciences},
journal = {Artif. Intell.},
volume = {267},
pages = {1--38},
year = {2019},
url = {https://doi.org/10.1016/j.artint.2018.07.007},
doi = {10.1016/J.ARTINT.2018.07.007},
timestamp = {Sun, 07 Dec 2025 00:00:00 +0100},
biburl = {https://dblp.org/rec/journals/ai/Miller19.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{IgnatievNA020,
author = {Alexey Ignatiev and
Nina Narodytska and
Nicholas Asher and
Jo{\~{a}}o Marques{-}Silva},
editor = {Matteo Baldoni and
Stefania Bandini},
title = {From Contrastive to Abductive Explanations and Back Again},
booktitle = {AIxIA 2020 - Advances in Artificial Intelligence - XIXth International
Conference of the Italian Association for Artificial Intelligence,
Virtual Event, November 25-27, 2020, Revised Selected Papers},
series = {Lecture Notes in Computer Science},
volume = {12414},
pages = {335--355},
publisher = {Springer},
year = {2020},
url = {https://doi.org/10.1007/978-3-030-77091-4\_21},
doi = {10.1007/978-3-030-77091-4\_21},
timestamp = {Tue, 15 Jun 2021 00:00:00 +0200},
biburl = {https://dblp.org/rec/conf/aiia/IgnatievNA020.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{Ribeiro0G16,
author = {Marco T{\'{u}}lio Ribeiro and
Sameer Singh and
Carlos Guestrin},
editor = {Balaji Krishnapuram and
Mohak Shah and
Alexander J. Smola and
Charu C. Aggarwal and
Dou Shen and
Rajeev Rastogi},
title = {"Why Should {I} Trust You?": Explaining the Predictions of Any Classifier},
booktitle = {Proceedings of the 22nd {ACM} {SIGKDD} International Conference on
Knowledge Discovery and Data Mining, San Francisco, CA, USA, August
13-17, 2016},
pages = {1135--1144},
publisher = {{ACM}},
year = {2016},
url = {https://doi.org/10.1145/2939672.2939778},
doi = {10.1145/2939672.2939778},
timestamp = {Sun, 01 Feb 2026 00:00:00 +0100},
biburl = {https://dblp.org/rec/conf/kdd/Ribeiro0G16.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
免责声明
MCP-DBLP 是一个研究原型。使用风险自负。
许可证
本项目采用 MIT License 授权。详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。