BibTeX Reference Manager MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| parse_bibliographyA | Read BibTeX, RIS or CSL JSON text and return the entries in one normalized shape: lower case field names, tidy whitespace, bare DOIs, the year filled in from a date, and authors split into "Family, Given". Nothing is sent anywhere. Example: text "@article{k1, AUTHOR = {John Smith and Jane Doe}, title={Deep Learning for Graphs}, year={2024}}" returns one entry with authors ["Smith, John", "Doe, Jane"] and lower case field names. Leave format out unless auto picks the wrong one. |
| convert_bibliographyA | Convert a reference list between BibTeX, RIS, CSL JSON and plain text (a simple author, year, title style). The input format is detected unless you pass it. Page ranges, DOIs and names are cleaned on the way. Example: text is a BibTeX entry and to is "ris", and output is the same reference as RIS. Set from only to override detection. |
| dedupe_entriesA | Find duplicate references by matching DOI, by the same cite key, and by similar titles (the years must not clash). Each group says which entry to keep, the one with the most fields, and which to remove. Also returns the list as BibTeX with the extra copies dropped. Example: two entries with the same DOI, one with 3 fields and one with 6, give one group that keeps the entry with 6 fields and lists the other under remove. Your files are not changed. |
| lint_entriesA | Check a reference list for problems: missing required fields for the entry type, bad page ranges, titles that are not capitalized, invalid DOIs, odd years and repeated keys. Each issue names the entry key, the field and a plain message. Example: an @article with no journal field gives an issue with the rule missing-field and the field journal. Pass the whole list as text so repeated keys can be found. |
| generate_cite_keysA | Create consistent cite keys from the first author's family name, the year and the first meaningful word of the title, like smith2024deep. Repeated keys get a letter added. Returns the old and new key for each entry and the list as BibTeX with the new keys. Example: an entry with key old1, author "Smith, John", year 2024 and title "Deep Learning for Graphs" gives old_key old1 and new_key smith2024deep, or smith2024 when include_title_word is false. |
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 5 tools
Parse and convert both accept bibliography text and perform normalization/cleaning, so they could be confused at a glance. However, parse_bibliography is for normalization into one shape, while convert_bibliography is for format conversion, and dedupe/lint/generate_cite_keys are clearly distinct. Descriptions provide enough guidance to select correctly.
All tool names follow a consistent snake_case verb_noun pattern: parse_bibliography, convert_bibliography, dedupe_entries, lint_entries, generate_cite_keys. There are no mixed conventions or vague names.
Five tools is well-scoped for a BibTeX reference manager utility set. Each tool earns its place by covering a distinct operation, with no obvious redundancy.
The set covers parsing, format conversion, duplicate detection, linting, and cite-key generation, which are core reference-list workflows. It lacks search/filter, merge, sorting, or write-back operations, but those are minor gaps that agents can work around given the text-processing focus.