jabref-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JABREF_MCP_PDF_ROOT | No | Optional base dir for resolving relative attached paths | |
| JABREF_MCP_BIB_FILES | No | Comma-separated .bib paths | *.bib |
| JABREF_MCP_JABREF_BIN | No | JabRef executable or command prefix (e.g. flatpak-spawn --host jabref) | jabref |
| JABREF_MCP_IMPORT_TIMEOUT | No | Import timeout (seconds) | 90 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_librariesA | List the configured JabRef libraries (the .bib files the server reads) with the number of parsed entries in each. |
| list_entriesA | List entries in the JabRef library (citation key, authors, year, title, venue, DOI), most useful for getting an overview or picking citation keys. |
| searchA | Search the JabRef library. Returns matching entries as 'key | authors | year | title | venue | doi'. Args:
query: space-separated terms; every term must match (AND). Matches case-insensitively across all fields
(title, author, keywords, abstract, ...) unless |
| get_entryA | Get the full record for one citation key: complete BibTeX plus the resolved attached files (needed for summarization). Raises an error if the key does not exist. |
| get_pdfA | Return the absolute file paths of the PDFs attached to an entry, so the assistant can read and summarize them. Only existing files are returned; a key with no PDF raises an error. |
| add_entryA | Add a new entry to the JabRef library - the ONLY supported way of adding entries. This requests an import through JabRef's official CLI API (
Args: bibtex: a complete BibTeX entry, e.g. '@article{key, title={...}, author={...}, year={2024}}'. timeout: optional override of the import timeout in seconds. Returns the canonical BibTeX that was sent to JabRef. A successful return confirms dispatch to JabRef, not that the entry has already been accepted and saved. Workflow after successful dispatch:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a distinct primary purpose: adding, fetching one entry, fetching PDFs, listing entries, listing libraries, and searching. The only mild overlap is between get_entry and get_pdf since get_entry already includes attached file references, but their descriptions clarify that get_pdf returns only existing PDF paths.
Most tools follow a clear verb_noun pattern: add_entry, get_entry, get_pdf, list_entries, list_libraries. The bare verb 'search' is a minor inconsistency because it could be 'search_entries', but the naming is otherwise predictable and readable.
Six tools is a well-scoped set for a reference manager server covering listing, searching, retrieval, and import. Each tool has a clear role without unnecessary duplication or bloat.
The server supports reading, searching, retrieving, and adding entries, which covers the core library workflow. However, there are no tools for updating or deleting entries, and library selection is implicit rather than explicit, so the surface is somewhat one-directional.