Skip to main content
Glama
AnonymousOnyx22

BibTeX Reference Manager MCP

Convert a bibliography

convert_bibliography
Read-only

Convert reference lists between BibTeX, RIS, CSL JSON, and plain text, with format auto-detection and cleanup of page ranges, DOIs, and names.

Instructions

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.

Input Schema

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

Output Schema

NameRequiredDescriptionDefault
toYesThe format that was written.
fromYesThe format that was read.
countYesHow many entries were converted.
outputYesThe converted reference list.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered; the description adds real behavioral value by disclosing that page ranges, DOIs and names are normalized during conversion and that source format is auto-detected. It does not state failure behavior on malformed input, leaving a modest gap.

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

Conciseness4/5

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

Compact and front-loaded, with formats named first and the detection caveat last. The example sentence is somewhat awkwardly phrased and restates the obvious mapping, but it does illustrate the required parameters, so it earns its place.

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

Completeness4/5

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

With an output schema present the description needn't explain return values, and parameters are fully documented in the schema; the added normalization note covers the main hidden behavior. Only the plain-text-as-input ambiguity and error handling are unaddressed, which is minor for a stateless read-only converter.

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% and both enums are self-documenting, so the baseline is 3; the description earns the extra point by clarifying that 'from' defaults to detection and that specifying it suppresses auto-detection. Note it describes plain text as a conversion target but the 'from' enum omits it, leaving input-side text handling slightly ambiguous.

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 (convert) and resource (a reference list) plus the exact formats supported, which lets an agent distinguish it from parse_bibliography, dedupe_entries, lint_entries and generate_cite_keys without opening any schema.

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?

Explains the default behavior (input format is auto-detected) and the one override case ('Set from only to override detection'), giving clear context for invocation. It stops short of explicitly routing the agent away from sibling tools such as parse_bibliography, so a 4 rather than a 5.

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