Skip to main content
Glama

Server Quality Checklist

92%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v2.0.0

  • Disambiguation5/5

    Each tool has a clearly distinct role: search_authors and search_works find identifiers, get_author and get_work retrieve records, list_editions enumerates editions, and find_digitised collects digitised links. No two tools overlap in purpose, and the input/output relationships are well-documented.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using lowercase with underscores. Search and get are paired with singular/plural nouns appropriately (search_authors vs get_author), and list_editions/find_digitised follow the same convention. The pattern is predictable and readable.

    Tool Count5/5

    With six tools, the server is well-scoped for its purpose. Each tool addresses a distinct step in the bibliographic workflow (search, retrieve, list editions, find digitised copies), and none feel redundant or excessive.

    Completeness3/5

    The tools cover search and retrieval for authors and works, plus editions and digitised links, but there is a notable gap: no way to list all works by a given author, since search_works only matches titles and get_author explicitly does not link to works. This is an acknowledged limitation that could block common discovery workflows.

  • Average 4.7/5 across 6 of 6 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • 1 of 2 community issues answered or closed in the last 6 months
    • 38 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • Tools from this server were used 2 times in the last 30 days.

  • This repository includes a glama.json configuration file.

  • This server has been verified by its author.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior5/5

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

    Beyond annotations, it discloses row ordering by 'address' not chronological, absence of a total count, that form codes carry no labels, and that only one catalogue link is reported. It also explains the open-world caveat that missing works do not mean the person didn't write them. This is thorough and adds substantial context.

    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?

    The description is long but front-loaded with a clear purpose in the first sentence. Each subsequent sentence provides valuable caveats and behavioral details without repetition. While verbose, it earns its length through necessary nuance.

    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?

    Even with an output schema and annotations, the description explains row fields, ordering, open-world behavior, form code nuances, and the meaning of missing works. It leaves no major ambiguity about what the tool returns or its limitations, making it highly complete for the tool's complexity.

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

    Parameters2/5

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

    Schema already describes author_id adequately; the description merely restates it. With only 33% schema coverage, the description does not compensate for undocumented page/limit parameters, offering no pagination guidance or parameter-specific details. The added value is minimal.

    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?

    Clearly states it lists works a person is credited with, using a specific identifier from search_authors. Explicitly labeled as 'the tool for what did this person write' and distinguished from a bibliography. This separates it from sibling tools like list_editions and get_work.

    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?

    Provides clear when-to-use context: after search_authors, for finding what a person wrote. Mentions it is not a bibliography and cautions about open-world limitations. However, it does not explicitly name alternative tools or state when not to use it, relying instead on implied context.

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

  • Behavior5/5

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

    Beyond the annotations, the description discloses that digitised editions carry a link that is never opened by the server, so no guarantee is given about readability or reuse. It also reveals that rows are ordered by catalogue address rather than date or importance, which is non-obvious behavior.

    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 compact three sentences. It front-loads the core purpose, then efficiently details the row contents and important caveats without redundancy.

    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 list-with-pagination tool, the description covers purpose, output fields, digitisation caveat, ordering, and identifier provenance. The existing annotations and output schema cover the remaining safety and return structure details, making it contextually complete.

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

    Parameters3/5

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

    The description clarifies that work_id is an identifier returned by search_works or get_work, giving it meaningful context beyond its schema description. However, page and limit are not mentioned in the description, leaving their semantics only in the schema; given the low schema coverage (33%), this is a gap.

    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 a specific action: 'List the published editions of one work' in the BnF catalogue, and specifies the input identifier from search_works or get_work. This differentiates it from sibling tools that list or search for works.

    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?

    It signals that the tool is appropriate when you already have a work identifier from search_works or get_work, and it describes what is returned. However, it does not explicitly mention when not to use it or list alternatives like find_digitised for digitised copies, so it has clear context but no exclusions.

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

  • Behavior5/5

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

    Annotations already show readOnly, openWorld, idempotent, and non-destructive. The description goes far beyond this by disclosing that results are not relevance-ranked, are ordered by record address, may include criticism, and that pagination is tied to a fixed index window with 'has_more' and 'index_window_full' flags. This is rich behavioral context that annotations do not capture.

    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?

    The description is detailed and every sentence adds meaningful nuance, but it is somewhat long and dense. It is logically structured and front-loaded with the core purpose, though the later sentences about index windows could be tightened without losing usefulness.

    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?

    Given the tool's complexity, the description covers ordering, criticism, creator distinction, status, pagination quirks, and differences from sibling tools. The output schema exists, so return values need not be detailed. The description is complete enough for an agent to use the tool correctly and interpret odd results.

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

    Parameters3/5

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

    Schema describes the title parameter well, and the description reinforces it with 'every word given' and 'Add a word to the title to reach further'. However, page and limit parameters are not explicitly explained in the description; their behavior is only indirectly implied through index-window discussion. With low schema coverage (33%), the description should compensate more for these numeric parameters, but it only partially does.

    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 it finds a work by words in its title and returns the identifier used by get_work and list_editions. It also differentiates itself from list_works, which walks from a person to works they created, so it is not merely a generic search description.

    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?

    It gives explicit guidance on when to use this tool versus alternatives: for title-word searches, and specifically says list_works is the tool for finding works by a person's name. It also instructs reading 'creators' to distinguish criticism from the work itself, which is a clear usage hint.

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

  • Behavior5/5

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

    Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds that the server never requests gallica.bnf.fr, does not report whether documents open, what they contain, or reuse terms. It also clarifies the semantic differences between depiction, reproduction, and ocr links, which is beyond the annotations.

    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?

    The description is longer than typical but every sentence serves a distinct purpose: establishing the core action, explaining mechanics, stating limitations, contrasting with a sibling, and defining link types. It is well-structured and free of filler, though it could be tightened by merging some related statements.

    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?

    With annotations and an output schema, the description still adds substantial context: how it handles persons vs works, the role of the kind parameter, and the exact meaning of returned link types. It also covers limitations and alternative tools, leaving no significant ambiguity for an agent.

    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 covers id and kind with descriptions; the description adds that id can be a person or work identifier and the tool auto-detects the record kind. It also explains what the returned 'kind' refers to. Limit is not mentioned, but defaults are straightforward and schema already includes constraints.

    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 opens with a specific verb phrase: 'Gather the digitised documents the Bibliothèque nationale de France catalogue attaches to one person or one work, and return them as links.' It names the resource and distinguishes itself from siblings by essentially stating its purpose as returning links, while pointing to list_editions for edition-specific use.

    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 explicitly says 'Use list_editions when which edition a copy belongs to matters,' giving a clear alternative. It also states what the tool does not do (does not fetch or validate links), setting boundaries and preventing misuse.

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

  • Behavior5/5

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

    The description goes beyond the readOnlyHint annotation by clarifying nuances: forms use a vocabulary with no labels, status indicates provisional vs established, and expression_count does not equal edition count. It also explains the default behavior of include_depictions (left out due to large payloads) and points to find_digitised for images alongside digitised editions.

    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?

    The description is dense but every sentence contributes either to scope, field semantics, or usage caveats. Some phrasing, like 'A record stating none has a form the catalogue does not state,' is awkward but not confusing. It is front-loaded with the purpose and then details.

    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?

    Given the rich schema and output schema, the description provides enough context for an agent to understand the tool's purpose, its data semantics, and its relationship to sibling tools. It covers the main caveats (provisional IDs, form labels, edition count distinction) and is self-contained.

    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?

    The schema already provides descriptions for both parameters (100% coverage). The description reinforces the identifier's origin from search_works and adds guidance about preferring established identifiers, which supplements the schema's example. It does not discuss include_depictions separately since the schema covers it well.

    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 the tool's purpose: 'Read one work's record in the Bibliothèque nationale de France catalogue, by the identifier search_works returns.' It specifies the verb (read), resource (work's record), and source (BnF). It also distinguishes from siblings by explicitly directing users to list_editions for edition counts.

    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 explains that the identifier comes from search_works, implying a search-then-read workflow. It also warns that provisional identifiers are changeable and recommends citing established ones, and explicitly says to use list_editions for published edition counts instead of this tool.

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

  • Behavior5/5

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

    Beyond the annotations (read-only, non-destructive), the description reveals important behavioral caveats: the 'biographical information' is usually just a job title, depictions are external links not images, and the server does not read them. This adds significant value beyond the structured annotations.

    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 long but every sentence earns its place: it lists carried fields, explicit omissions, cautions, and alternatives. It is well-structured, front-loading the core action before caveats, and remains focused despite its 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?

    Given the output schema handles return values, the description fully covers the tool's operational context: what data is included/excluded, how to interpret ambiguous fields, the nature of depictions, and how the record relates to other tools. It is complete for this read-only lookup tool.

    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. The description enriches both parameters: author_id is tied to search_authors, and include_depictions is explained with ambiguity about what depictions represent. This adds useful context, though the schema already provides strong descriptions.

    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 the tool reads one person's record in a specific authority file, using a specific identifier. It also distinguishes itself from sibling tools by explicitly stating it lists no works and that list_works should be used for that purpose.

    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 when-to-use context (after search_authors returns an identifier), what the record includes and excludes, and names alternatives like list_works for works and find_digitised for broader image gathering. This is strong guidance on tool selection.

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

  • Behavior5/5

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

    Beyond the annotations (readOnly, openWorld, idempotent, destructive=false), the description discloses critical behavior: match is letter-for-letter, accents/transliterations matter, multiple records can share a name, results are ordered by record address (not relevance), and pagination behavior is explained via 'index_window_full' and 'has_more'. It even notes that another reading may yield different rows (open-world behavior consistent with the annotation). This far exceeds the baseline and provides rich, non-obvious context.

    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 lengthy but every sentence adds a distinct, essential caveat—scope exclusions, exact matching, multiple records, ordering, pagination. It is front-loaded with purpose and then logically works through constraints. There is no redundancy or fluff; each sentence earns its place, making the length appropriate for the tool's complexity.

    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?

    Given the tool's complexity (fuzzy name matching, ambiguous results, paging quirks), the description covers all essential aspects: what the tool matches, what it excludes, how to disambiguate results ('birth_year', 'death_year', 'role'), how ordering works, and how to interpret pagination flags. An output schema exists, so field details are not required in the description, but the description still explains the meaning of key fields. This is a complete, self-contained guide for an agent.

    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?

    The schema covers only the `name` parameter (33% coverage), and the description compensates heavily for that by explaining accepted formats ('surname, a full name or both names in either order') and the exact matching behavior. For `page` and `limit`, it does not explicitly describe them, but it explains paging semantics ('paging through a search reaches every match once', 'One search reads a fixed window of the index') which indirectly informs how the parameters behave. Given the low schema coverage, this is a strong compensation, though the pagination parameters are not directly mapped to their fields.

    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 opens with a specific verb and resource: 'Find a person in the Bibliothèque nationale de France authority file by name, and get the identifier the other tools take.' It clearly distinguishes from siblings by stating it only searches persons, not organisations, conferences, or places, and explicitly says it does not read biographies. This makes the tool's purpose unambiguous and sets it apart from similar tools like search_works.

    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 tells when to use the tool (to get an identifier for use with other tools) and when not to use it (not for biographies, not for non-persons). It provides actionable alternatives, such as trying different spellings or transliterations a library would use. It also advises the caller to present multiple matches to the user rather than auto-selecting, which is a clear usage guideline.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

mcp-databnf MCP server

Copy to your README.md:

Score Badge

mcp-databnf MCP server

Copy to your README.md:

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/smeet666/mcp-databnf'

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