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 imports the BibTeX 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. |
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
The tools are largely distinct: list_* covers overviews, get_* retrieves full records/PDFs, search is filtered discovery, and add_entry is creation. The only mild overlap is list_entries vs search, since both return similar entry rows, but the unfiltered-vs-filtered purpose is clear from the descriptions.
Names follow a mostly consistent list_/get_ verb pattern plus add_entry and search, with clear nouns. The only deviation is plain search instead of something like search_entries, but it remains predictable.
Six tools cover the core interaction model of a JabRef library assistant without bloat. Each tool is non-redundant and earns a place in the set.
The read/add surface is solid: libraries, entries, full records, search, and PDF retrieval are covered. However, typical CRUD expectations are incomplete because there are no update or delete entry operations, and no way to manage attachments or libraries beyond adding BibTeX.