Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JABREF_MCP_PDF_ROOTNoOptional base dir for resolving relative attached paths
JABREF_MCP_BIB_FILESNoComma-separated .bib paths*.bib
JABREF_MCP_JABREF_BINNoJabRef executable or command prefix (e.g. flatpak-spawn --host jabref)jabref
JABREF_MCP_IMPORT_TIMEOUTNoImport 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

CapabilityDetails
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

NameDescription
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 field is given. field: restrict the search to a single BibTeX field, e.g. "title", "author", "year", "doi", "abstract". author: only entries whose author field contains this substring. year: exact year match (single entry year). year_from / year_to: inclusive year range. tag: only entries whose keywords/tags contain this substring. limit: maximum number of results (0 = no limit).

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 (jabref --importBibtex), which means:

  • the entry is sent to the library that is OPEN in JabRef, with JabRef's own duplicate detection;

  • JabRef may ask you to accept the import before you save the library;

  • the .bib file is never modified by this server. Requires JabRef to be running with 'Listen to remote operation on port' enabled (Preferences -> Network), same as for the official browser extension.

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:

  • Ask the user to accept and save the import in JabRef if prompted, and to confirm when the library has been saved before attempting verification.

  • Do not claim that the entry is persisted yet.

  • After the user confirms saving, verify with search using stable metadata such as title, DOI, or author, rather than relying only on the submitted citation key.

  • JabRef may replace the submitted citation key; use the key returned by search when calling get_entry or get_pdf.

  • Read tools automatically detect the saved file. Do not ask for an MCP restart.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 6 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness3/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues