mcpField
M
MCP-DBLP

MCP-DBLP

ローカル
github.com/szeider検索472 週間前に更新

MCP-DBLP について

MCP-DBLP は、LLM が DBLP のコンピュータサイエンス文献データベースを利用できるようにする MCP サーバーです。モデルが論文を検索し引用キーを選択し、BibTeX エントリはサーバーが DBLP のデータから直接生成します。参考文献リストを作成する研究者向けです。

主な機能

  1. 01and・or を用いたブール検索、年や会議誌による絞り込み
  2. 02タイトルと著者名のあいまい一致
  3. 03検索語がどこに一致したかの表示
  4. 04DBLP データからの BibTeX エントリ生成
  5. 05毎月更新されるローカルインデックスと .bib 出力

活用シーン

  1. 01論文用の BibTeX 参考文献の収集と出力
  2. 02著者の年別論文一覧の取得
  3. 03会議や学術誌の基本情報の確認

MCP 対応

本プロジェクトは MCP サーバーであり、DBLP 検索、著者論文一覧、会議誌情報の照会、BibTeX 出力のツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP-DBLP

MCP Compatible License: MIT Python Version

LLM が DBLP のコンピューターサイエンス文献目録にアクセスできるようにする Model Context Protocol(MCP)サーバーです(関連論文はAI4SC @ AAAI-26で公開されています)。

MCP-DBLP MCP サーバー

概要

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_entryDBLP キーに対応するエントリーをコレクションに追加します
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 2017
  • max_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 ファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。