Skip to main content
Glama

Import sources bib

import_sources_bib
Destructive

Read a BibTeX file's text against a project's register of sources. Without 'take' nothing is written: each entry comes back as an offer — 'new' (a source to add under the entry's key), 'fill' (the register already has the work by one of its identifiers: 'adds' lists the empty fields the entry would fill; 'unchecks' says a checked source would go back to unchecked), 'same' (nothing to add), 'conflict' ('keyTaken': the key is another work's — take it with 'as', a new key; 'twoSources': its identifiers name two sources; 'twice': it is twice in the file) or 'invalid' (no title, or a key a source cannot have). 'differs' names what the register says otherwise — never overwritten — and 'notes' what of the entry could not be read; 'problems' are places in the file that are not entries. Show the person the offers, then call again with the same 'bib' and 'take' — the entries they chose — to write them; each is written on its own and says 'created', 'filled', 'skipped' or 'refused' with the reason. Members of the project who may write only, for 'take'.

Input Schema

NameRequiredDescriptionDefault
bibYesThe .bib file's text.
takeNoThe entries to write, as a JSON array: [{"key":"GS90"},{"key":"Tah81","as":"Tah81b"}] — 'key' the entry's key in the file, 'as' a new key for an entry whose key the register has for another work. Leave out to only see the offers.
projectYesThe project key, e.g. MATH.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

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

Despite destructiveHint=true in the annotations, the description carries real behavioral weight: it says exactly what is and isn't written without 'take', that 'differs' values are never overwritten, that a 'fill' can revert a checked source to unchecked, and that each taken entry reports created/filled/skipped/refused independently. That is far beyond what the annotations convey.

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?

Front-loaded with the core action and the safety rule, and each clause carries information. It is, however, a single very dense paragraph whose quoted status terms are hard to scan; breaking the offer kinds into a list would improve it without adding length.

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?

No output schema exists, and the description compensates fully by enumerating every result shape (new, fill, same, conflict, invalid) and every write outcome, plus where non-entry file problems surface. An agent has enough to interpret the response and act on it.

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 the operational meaning of the parameters — that 'take' must reuse the same 'bib' and holds the keys of the chosen entries, and that 'as' renames a key collision. That materially helps an agent construct the second call.

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 and resource ('Read a BibTeX file's text against a project's register of sources') and immediately establishes the import direction, which no sibling tool covers — export_sources_bib is its obvious inverse. An agent can identify it without opening the 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?

Gives an explicit two-step procedure (show offers, then call again with the same 'bib' plus 'take') and states the permission precondition ('Members of the project who may write only, for 'take''). It never names an alternative tool for single-source edits, so it stops short of full when-not guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources