Skip to main content
Glama
AnonymousOnyx22

BibTeX Reference Manager MCP

Lint entries

lint_entries
Read-only

Check BibTeX, RIS, or CSL JSON reference lists for missing fields, invalid DOIs, bad page ranges, odd years, capitalization errors, and repeated keys, with field-specific issues per entry.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
textYesThe reference list as text: BibTeX, RIS or CSL JSON.
formatNoThe format of the text. Defaults to auto, which looks at the text to decide.

Output Schema

NameRequiredDescriptionDefault
countYesHow many entries were checked.
errorsYes
issuesYes
warningsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true and openWorldHint=false, and the description adds substantial behavioral detail beyond that: it names the issue categories, explains that each issue reports the entry key, field, and message, and gives a concrete missing-field example. This tells the agent both what is checked and the shape of the findings.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, followed by output semantics and a compact example. Every sentence contributes useful information and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only linting tool with two well-documented parameters and an output schema, the description supplies everything needed: the scope of checks, the issue-reporting shape, and the key usage constraint about passing the full list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning by explaining why the entire list should be passed as text: repeated-key detection requires the full document. The format parameter is not discussed, but its schema description and enum already make its behavior clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (check/lint) and resource (reference list) and enumerates the exact problem classes it detects. An agent can distinguish it from parse_bibliography, convert_bibliography, dedupe_entries, and generate_cite_keys because those do not diagnose field, page, capitalization, DOI, year, or key issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes clear that this is the diagnostic tool for a reference list and adds the practical instruction to pass the whole list as text so repeated keys can be found. It does not explicitly name when to choose it over each sibling, but the intended context is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.