Skip to main content
Glama

Format a bibliography (citeproc / any CSL style)

zotero_format_bibliography
Read-only

Format bibliographies from CSL-JSON items or library keys using any citation style, with configurable locale and output format (HTML, text, or RTF).

Instructions

Render a formatted bibliography in any CSL style using citeproc-js — no Zotero library write required. Provide either items (an array of CSL-JSON objects, e.g. from zotero_import or external metadata) or item_keys (library items, which are exported to CSL-JSON first). Choose style (a name like "APA 7th" or a CSL id; default "apa"), locale (default "en-US"), and format (html/text/rtf; default html). The formatted bibliography text is returned. Use this for arbitrary items or styles; for items already in the library you can also use zotero_bibliography (server-rendered).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsNoCSL-JSON items to format.
styleNoStyle name or CSL id (default "apa").
formatNoOutput format (default html).
localeNoLocale (default "en-US").
item_keysNoLibrary item keys (exported to CSL-JSON).
library_idNo
library_typeNo
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint, and the description adds context by stating 'no Zotero library write required' and mentioning it uses citeproc-js, which is client-side rendering. No contradictions.

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?

The description is a single, well-structured paragraph of three sentences. It is front-loaded with the main purpose, covers all key aspects without redundancy, and is highly efficient.

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?

Given the tool's seven parameters and no output schema, the description is quite complete. It explains input methods, main parameters, defaults, and comparison with a sibling. It could mention return format more explicitly, but it's sufficient.

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 71%, and the description adds value by explaining the two input methods (items vs item_keys) with examples, and noting values like style='APA 7th' and default values. It goes beyond the schema definitions.

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?

The description clearly states 'Render a formatted bibliography in any CSL style' and explicitly distinguishes from the sibling tool zotero_bibliography by noting 'no Zotero library write required' and mentioning the alternative for library items.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool vs the sibling: 'Use this for arbitrary items or styles; for items already in the library you can also use zotero_bibliography.' It also explains the two input methods (items vs item_keys).

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/oscardvs/zoteus'

If you have feedback or need assistance with the MCP directory API, please join our Discord server