MCP-DBLP について
MCP-DBLP は、LLM が DBLP のコンピュータサイエンス文献データベースを利用できるようにする MCP サーバーです。モデルが論文を検索し引用キーを選択し、BibTeX エントリはサーバーが DBLP のデータから直接生成します。参考文献リストを作成する研究者向けです。
主な機能
- 01and・or を用いたブール検索、年や会議誌による絞り込み
- 02タイトルと著者名のあいまい一致
- 03検索語がどこに一致したかの表示
- 04DBLP データからの BibTeX エントリ生成
- 05毎月更新されるローカルインデックスと .bib 出力
活用シーン
- 01論文用の BibTeX 参考文献の収集と出力
- 02著者の年別論文一覧の取得
- 03会議や学術誌の基本情報の確認
MCP 対応
本プロジェクトは MCP サーバーであり、DBLP 検索、著者論文一覧、会議誌情報の照会、BibTeX 出力のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP-DBLP
LLM が DBLP のコンピューターサイエンス文献目録にアクセスできるようにする Model Context Protocol(MCP)サーバーです(関連論文はAI4SC @ AAAI-26で公開されています)。
概要
MCP-DBLP を使うと、LLM は Model Context Protocol 経由で DBLP を検索し、検索結果から BibTeX ファイルを作成できます。モデルが論文と引用キーを選び、サーバーが DBLP のデータからエントリーを書き出すため、モデルが書誌フィールドを書き換えることはありません。
バージョン 2.0 以降、MCP-DBLP は dblp.org のウェブ API ではなく、DBLP のローカルコピーを使用します。ウェブ API は現在、自動化されたクライアントをブロックしています。初回起動時に、サーバーはローカルインデックス(月次 DBLP ダンプから作成された、約 1.3 GB の SQLite インデックス)をダウンロードします(ローカル 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 | ウェブフォールバックに使用する 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 に切り替わります(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で候補を区切ります(括弧は使えません)。"引用符で囲んだフレーズ"は隣接する語に一致し、フィールド接頭辞author:、title:、venue:、year:は次の単語またはフレーズに適用されます。また、4 桁の年を指定すると、その年の結果に絞り込まれます。例:author:Vaswani title:attention 2017max_results(integer、任意):返す出版物の最大件数です。デフォルトは 10 ですyear_from(integer、任意):出版年の下限ですyear_to(integer、任意):出版年の上限ですvenue_filter(string、任意):出版先に対する、大文字・小文字を区別しない部分文字列フィルターです(例:'iclr')include_bibtex(boolean、任意):検索結果に BibTeX エントリを含めるかどうかを指定します。デフォルトは false です
fuzzy_title_search
タイトルに誤字がある場合や、タイトルの冒頭しか分からない場合でも、出版物を検索します。結果はタイトルの類似度順に並べられ、「同じタイトル」「タイトルにクエリを含む」「類似したタイトル」のいずれかのラベルが付きます。
パラメーター:
title(string, required):出版物の完全なタイトルまたは一部のタイトル(大文字と小文字は区別されません)similarity_threshold(number, required):0〜1の浮動小数点数。1.0は完全一致を意味しますmax_results(integer, optional):返す出版物の最大件数。デフォルトは10ですyear_from(integer, optional):出版年の下限year_to(integer, optional):出版年の上限venue_filter(string, optional):出版会場を対象とする、大文字と小文字を区別しない部分一致フィルターinclude_bibtex(boolean, optional):結果にBibTeXエントリを含めるかどうか。デフォルトはfalseです
get_author_publications
著者の出版物を新しい順に一覧表示します。名前はあいまい一致で照合されます。DBLPでは、同姓同名の人物を番号で区別します(「Wei Wang 0010」など)。回答には、該当するDBLP人物と、同じ名前に一致する他の人物が記載されます。
パラメーター:
author_name(string, required):著者のフルネーム。DBLPの番号を付けることもできます(大文字・小文字とアクセントは区別されません)similarity_threshold(number, required):0〜1の浮動小数点数。1.0は完全一致を意味しますmax_results(integer, optional):返す出版物の最大件数。デフォルトは20ですinclude_bibtex(boolean, optional):結果にBibTeXエントリを含めるかどうか。デフォルトはfalseですyear_from(integer, optional):この年以降の出版物のみを対象にしますyear_to(integer, optional):この年までの出版物のみを対象にします
get_venue_info
出版会場を検索し、名称、略称、種別(会議またはジャーナル)、DBLPページ、出版物数、対象年の範囲を取得します。
パラメーター:
venue_name(string, required):会議の略称('IJCAI')、DBLPのジャーナル略称('J. ACM')、またはジャーナルの正式名称('Journal of the ACM')
add_bibtex_entry
後でエクスポートできるよう、コレクションにBibTeXエントリを追加します。
パラメーター:
dblp_key(string, required):検索結果にあるDBLPキー(例:"conf/nips/VaswaniSPUJGKP17")。DBLP:KEYや、DBLPエントリのbiburl(https://dblp.org/rec/KEY.bib)も使用できますcitation_key(string, required):.bibファイルで使用する引用キー(例:"Vaswani2017")
動作:
- ローカルインデックスからキーに対応するBibTeXエントリを、DBLPの形式で生成します
- 引用キーを指定したカスタムキーに置き換えます
- エントリをセッションのコレクションに追加します(同じ引用キーのエントリは置き換えられます)
- 成功またはエラーと、コレクションのサイズを返します
サーバーは各エントリをDBLPのデータから生成します。モデルが選択するのは引用キーのみで、エントリ自体は編集しません。ローカルインデックスにないキーはdblp.orgで検索されますが、現在dblp.orgは自動化されたクライアントをブロックするため、このような呼び出しはエラーを返し、コレクションは変更されません。
export_bibtex
収集したすべてのBibTeXエントリを.bibファイルにエクスポートします。
パラメーター:
path(string, required):.bibファイルの絶対パス(例:"/path/to/refs.bib")。先頭の~は展開されます。相対パスは拒否されます。
動作:
add_bibtex_entryで追加したすべてのエントリを、指定したパスに保存します- .bib拡張子がない場合は自動的に追加されます
- 必要に応じて親ディレクトリを作成します
- エクスポートが成功するとコレクションをクリアします
- 保存したファイルのフルパスを返します
- コレクションが空の場合はエラーを返します
set_dblp_mirror
ウェブフォールバックで使用するdblp.orgのホストを選択します。対象は、ローカルインデックスにないキー、またはMCP_DBLP_INDEX=httpの場合のすべてのリクエストです。ローカルインデックスを使った検索ではdblp.orgに接続しません。また、現在dblp.orgは自動化されたクライアントをブロックするため、このツールが役立つことはほとんどありません。
パラメーター:
host(string, required):dblp.org、dblp.uni-trier.de、またはdblp.dagstuhl.de。その他のホストは拒否されます
例
入力テキスト
私たちの調査では、局所的および大域的な文脈における、アブダクティブ説明と対照的説明という2種類の説明問題に焦点を当てています \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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。