mcp-dblp-bibliography-interface
Facilitates querying the DBLP bibliographic index, yielding precise BibTeX citations and supporting advanced reference management tasks.
Author

szeider
Quick Info
Actions
Tags
Bibliography Access via DBLP (MCP Interface)
A Model Context Protocol (MCP) service designed to grant Large Language Models programmatic access to the entirety of the DBLP computer science literature repository.
Abstract
This utility bridges the DBLP (Digital Bibliography & Library Project) data source with LLM agents via the MCP framework, enabling artificial intelligence systems to:
- Execute searches against the DBLP catalog and retrieve publication metadata.
- Formulate and construct correct BibTeX representations for citations.
- Employ similarity metrics for robust matching of paper titles and researcher names.
- Systematically extract and standardize bibliographic attributes.
- Handle embedded reference resolutions within textual documents.
- Offer a mechanism for direct BibTeX serialization, bypassing internal LLM interpretation for maximal citation fidelity.
Core Capabilities
- Sophisticated query formulation supporting logical connectors ('AND', 'OR').
- Near-exact matching algorithms for textual identifiers (titles/authors).
- On-demand retrieval of canonical BibTeX strings directly from DBLP records.
- Granular result refinement based on publication year ranges and conference/journal identifiers.
- Basic data aggregation and statistical computation over retrieved sets.
- Secure, direct export function for BibTeX artifacts to the local filesystem.
Exposed Functions
| Function Signature | Purpose |
|---|---|
search |
Query DBLP using structured boolean expressions |
fuzzy_title_search |
Find entries via inexact title comparison |
get_author_publications |
Fetch all works associated with a given researcher |
get_venue_info |
Retrieve metadata pertaining to a specific publication venue |
calculate_statistics |
Compute summary metrics on provided literature objects |
export_bibtex |
Persist retrieved BibTeX records to a local file |
User Feedback Channel
Suggestions or bug reports can be submitted to the maintainer through this dedicated feedback portal.
Prerequisites
- Python runtime environment version 3.11 or newer.
- The
uvpackage manager is recommended for dependency handling (installation guide).
Deployment Procedure
-
Secure an MCP-enabled client application (e.g., the Claude Desktop utility).
-
Install the MCP-DBLP component:
bash git clone https://github.com/username/mcp-dblp.git cd mcp-dblp uv venv source .venv/bin/activate uv pip install -e .
- Configure the client application by creating/modifying the designated configuration file structure:
For Unix-like systems (macOS/Linux):
~/Library/Application/Support/Claude/claude_desktop_config.json
For Windows systems:
%APPDATA%\Claude\claude_desktop_config.json
The file content must include the server definition:
{ "mcpServers": { "mcp-dblp": { "command": "uv", "args": [ "--directory", "/absolute/path/to/mcp-dblp/", "run", "mcp-dblp", "--exportdir", "/absolute/path/to/bibtex/export/folder/" ] } } }
Note for Windows path specification: C:\absolute\path\to\mcp-dblp
Usage Context Prompt
It is necessary to employ the accompanying instructions prompt in conjunction with the source text containing bibliographic references. This instruction file is accessible via the plugin interface on Claude Desktop.
Function Parameters Reference
search
Executes a DBLP lookup using a boolean combination string.
Arguments:
query(string, mandatory): A string expression potentially incorporating boolean operators ('and', 'or', case-insensitive).max_results(integer, optional): Cap on the quantity of returned entries. Defaults to 10.year_from(integer, optional): Minimum year for inclusion.year_to(integer, optional): Maximum year for inclusion.venue_filter(string, optional): A case-insensitive textual filter matching publication venue names (e.g., 'NeurIPS').include_bibtex(boolean, optional): Flag to include formatted BibTeX data. Defaults to false.
fuzzy_title_search
Performs an approximate search against publication titles within DBLP.
Arguments:
title(string, mandatory): The target title, partially or wholly specified (case-insensitive).similarity_threshold(float, mandatory): A value between 0.0 and 1.0 indicating required match precision (1.0 is exact).max_results(integer, optional): Upper limit on output records. Defaults to 10.year_from(integer, optional): Start year boundary.year_to(integer, optional): End year boundary.venue_filter(string, optional): Substring match criteria for the publication venue.include_bibtex(boolean, optional): Whether to embed BibTeX strings. Defaults to false.
get_author_publications
Fetches the bibliography of a specified researcher, allowing for inexact name matching.
Arguments:
author_name(string, mandatory): The researcher's name, partially or fully provided (case-insensitive).similarity_threshold(float, mandatory): The required precision level for author name correlation (0.0 to 1.0).max_results(integer, optional): Maximum number of entries to fetch. Defaults to 20.include_bibtex(boolean, optional): Option to retrieve BibTeX strings alongside metadata. Defaults to false.
get_venue_info
Retrieves comprehensive metadata for a specified publication arena.
Arguments:
venue_name(string, mandatory): The official name or common abbreviation of the venue (e.g., 'VLDB').
calculate_statistics
Analyzes and summarizes quantitative data from a provided collection of publication records.
Arguments:
results(array, mandatory): A list of publication data structures, each necessitating 'title', 'authors', 'venue', and 'year' fields.
export_bibtex
Streams BibTeX entries directly from DBLP sources and commits them to a local file.
Arguments:
- links
(string, mandatory): An HTML fragment containing one or more hyperlink tags, where the citation key is derived from the link text.
- Example Format:
"<a href=https://dblp.org/rec/journals/example.bib>Smith2023</a>"
Operational Logic:
- Each embedded URL triggers a direct fetch of the corresponding BibTeX record from the DBLP server.
- Only the citation identifier (
\cite{...}) is substituted using the anchor text; the body of the BibTeX entry remains untouched. - All generated entries are systematically archived into a uniquely named, timestamped
.bibfile within the directory specified by the--exportdirconfiguration flag. - The absolute path of the resultant file is returned upon success.
Critical Note: Bibliographic records are retrieved externally from DBLP with a strict 10-second transmission time limit. No data modification, inferencing, or hallucination occurs on the LLM side, ensuring data provenance and maximal citation accuracy. Only citation keys are customized as directed. Timeouts result in an error report within the output.
Illustrative Execution
Input Text Snippet:
Our exploration focuses on two types of explanation problems, abductive and contrastive, in local and global contexts (Marques-Silva 2023). Abductive explanations (Ignatiev, Narodytska, and Marques-Silva 2019), corresponding to prime-implicant explanations (Shih, Choi, and Darwiche 2018) and sufficient reason explanations (Darwiche and Ji 2022), clarify specific decision-making instances, while contrastive explanations (Miller 2019; Ignatiev et al. 2020), corresponding to necessary reason explanations (Darwiche and Ji 2022), make explicit the reasons behind the non-selection of alternatives. Conversely, global explanations (Ribeiro, Singh, and Guestrin 2016; Ignatiev, Narodytska, and Marques-Silva 2019) aim to unravel models' decision patterns across various inputs.
Output Text (Citation Reformatted):
Our exploration focuses on two types of explanation problems, abductive and contrastive, in local and global contexts \cite{MarquesSilvaI23}. Abductive explanations \cite{IgnatievNM19}, corresponding to prime-implicant explanations \cite{ShihCD18} and sufficient reason explanations \cite{DarwicheJ22}, clarify specific decision-making instances, while contrastive explanations \cite{Miller19}; \cite{IgnatievNA020}, corresponding to necessary reason explanations \cite{DarwicheJ22}, make explicit the reasons behind the non-selection of alternatives. Conversely, global explanations \cite{Ribeiro0G16}; \cite{IgnatievNM19} aim to unravel models' decision patterns across various inputs.
Export Confirmation and Data:
Citation records were successfully written to BibTeX archive located at: /absolute/path/to/bibtex/20250305_231431.bib
@article{MarquesSilvaI23, author = {Jo{\tilde{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.1007/978-3-030-77091-4_21}, timestamp = {Tue, 07 May 2024 20:23:47 +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{\tilde{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 12:29:24 +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{\hat{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 16:19:08 +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 = {Mon, 04 Sep 2023 16:50:24 +0200}, 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 = {Thu, 25 May 2023 12:52:41 +0200}, 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{\tilde{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 17:23:54 +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 = {Fri, 25 Dec 2020 01:14:16 +0100}, biburl = {https://dblp.org/rec/conf/kdd/Ribeiro0G16.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }
Caveat
This DBLP interface is presently in an experimental release phase. Prudent usage is advised, and deployment in high-stakes operational settings is done at the user's sole discretion.
Licensing Terms
This software is distributed under the terms of the MIT License; refer to the LICENSE file for comprehensive details.
Contextual Note (External Reference on XHR): XMLHttpRequest (XHR) signifies an Application Programming Interface realized as a JavaScript construct, designed to dispatch HTTP transactions between a web client environment and a remote server. Its methods permit client-side applications to initiate server communications subsequent to page rendering, facilitating the reception of asynchronous data payloads. XHR is foundational to Ajax patterns. Historically, server interaction relied predominantly on traditional form submission and hyperlink navigation, necessitating full page reloads. Microsoft Outlook developers pioneered the concept in 2000, leading to its integration into Internet Explorer 5 (1999), though initially using ActiveXObject identifiers (Msxml2.XMLHTTP). By IE7 (2006), the standardized XMLHttpRequest identifier achieved universal browser adoption, including Mozilla's engine (2002), Safari 1.2 (2004), and Opera 8.0 (2005). The W3C formalized the specification starting in 2006, with Level 2 additions (cross-site access, progress monitoring, stream handling) later merged back into the primary specification; development is currently managed by WHATWG as a living standard defined via Web IDL.
XHR Operational Flow: Standard request handling involves object instantiation, calling open() to define method, URI, and synchronicity; for async operations, setting a state change listener; triggering the request via send(); and finally, processing state transitions. Upon reaching state 4 ('done'), the response is typically in responseText. Further control includes setting custom request headers, uploading payload data via send(), parsing responses (e.g., JSON to native objects), or processing data incrementally. Aborting a request or setting a timeout are additional features.
Cross-Domain Constraints: Early web architecture imposed limitations on requests crossing domain boundaries, a security restriction that complicated modern application development, leading to subsequent mechanisms like CORS to carefully relax these restrictions.
