Skip to main content
Glama
Gyoungwe

lacewing-digital-library

by Gyoungwe

Lacewing Digital Library MCP

A research-oriented MCP server + Codex skill for the Lacewing Digital Library (LDL) and Neuropterida Species of the World (NSW).

It turns LDL's publicly reachable JSON endpoints into tools that match real taxonomic workflows: accepted-name resolution, historical combinations, nomenclature, type specimens and type-locality coordinates, distribution citations, bibliography, figures, phylogeny, identification keys, and batch reconciliation.

This project is an independent research client. LDL's /api/... endpoints are used by the public web frontend and are not documented as a third-party public API. The server uses conservative request rates and does not bypass contributor-only access controls.

One-line install for Codex

curl -fsSL https://raw.githubusercontent.com/Gyoungwe/lacewing-digital-library-mcp/main/install.sh | bash

The installer clones/updates the project under ~/.local/share/lacewing-digital-library-mcp, creates an isolated Python virtual environment, installs the MCP server, copies the Codex skill into ~/.codex/skills/lacewing-digital-library, and registers the stdio MCP server with codex mcp add.

Verify with:

codex mcp get lacewing-digital-library

Then ask Codex:

Use $lacewing-digital-library to resolve Mantispa styriaca and summarize its accepted name, original combination, type locality, distribution and references.

Related MCP server: usa-npn-mcp-server

MCP tools

Tool

Typical research question

resolve_taxon

What is the accepted/current name and LDL ID for this name?

search_taxa

Which taxa match a genus, family, author, year, or epithet?

name_history

What original/historical combinations are associated with this taxon?

taxon_record

Give me the combined LDL species/epithet/monograph record.

type_info

What is the type, type locality, and georeferenced type-specimen coordinate?

distribution

Where is this species recorded and which references support that distribution?

taxonomic_references

Which nomenclatural/taxonomic sources support this taxon?

figures

Which published figures are associated with this taxon?

phylogeny

Which LDL phylogenetic records/citations include this taxon?

identification_keys

Which identification keys include this taxon?

bibliography

What is LDL reference BibObjID, and which taxa/figures are linked to it?

batch_resolve

Reconcile a tree tip list / CSV taxon list to current LDL taxonomy.

classification

Retrieve the NSW classification data.

raw_public_endpoint

Advanced read-only access to an allowlisted LDL endpoint.

health_check

Can the server reach LDL, and what dataset/version info is visible?

Examples

Resolve a taxon:

Resolve Chrysoperla carnea in LDL. Keep the input name, accepted name, author/year, CombObjID, TaxObjID and original combination.

Reconcile phylogeny tips:

Use LDL to reconcile these 80 Neuropterida tree-tip names. Do not silently replace names: return input_name, accepted_name, status, CombObjID, TaxObjID and notes for ambiguous/unmatched rows.

Type-locality work:

Find the type information and type-locality coordinates for Mantispa styriaca. State clearly whether the coordinates are type-specimen localities or occurrence data.

Bibliography-first workflow:

Look up LDL BibObjID 18355, summarize the reference, and list taxa associated with it.

Manual installation

git clone https://github.com/Gyoungwe/lacewing-digital-library-mcp.git
cd lacewing-digital-library-mcp
python3 -m venv .venv
.venv/bin/pip install -e .
codex mcp add lacewing-digital-library -- "$PWD/.venv/bin/python" -m ldl_mcp
cp -R skill ~/.codex/skills/lacewing-digital-library

For another MCP client, use a stdio configuration whose command is the environment's Python and whose arguments are -m ldl_mcp.

Data interpretation rules

LDL search results can include current combinations, original combinations, historical placements, junior synonyms, invalid names and unavailable names in the same result set. Do not interpret every returned row as a distinct current species or as a synonym. Preserve CombObjID, TaxObjID and status fields so mappings remain auditable.

general/getTypeSpmnCoordinates provides georeferenced type-specimen localities. These coordinates are not a complete species occurrence dataset. The MCP joins them to species using LDL taxonomic identifiers rather than guessing coordinates from locality prose.

Development and tests

python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/python tests/live_smoke.py
.venv/bin/python tests/mcp_smoke.py

live_smoke.py verifies known LDL data for Mantispa styriaca. mcp_smoke.py starts the server over stdio, performs MCP initialization, checks the tool inventory, and calls resolve_taxon through the MCP protocol.

License

MIT. Data returned by LDL remain subject to LDL's own terms, access controls, attribution expectations and underlying source rights.

Available Tools

15 tools
batch_resolveB

Resolve a batch of Neuropterida names for phylogeny/taxon-table reconciliation.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYes
include_type_summaryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description alone must carry behavioral disclosure. It does not explain what 'resolve' entails, whether any side effects or external calls occur, how failures are handled, or any rate/cost considerations. It only paraphrases the tool's basic action.

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, tight sentence with no filler. It front-loads the action and resource, then adds the purpose. Every word contributes meaning.

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

Completeness2/5

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

Although an output schema exists and the tool has only two parameters, the description leaves include_type_summary unexplained and gives no guidance on expected behavior or alternatives. With no annotations and zero parameter coverage, this is insufficient for confident invocation.

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 description coverage is 0%, so the description should compensate. It vaguely covers 'names' by mentioning a batch of names, but it does not explain the expected format, size limits, or the meaning of include_type_summary. The boolean parameter is completely undocumented.

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 verb ('Resolve'), a specific resource ('a batch of Neuropterida names'), and a purpose ('for phylogeny/taxon-table reconciliation'). It also differentiates itself from the sibling tool resolve_taxon by emphasizing the batch aspect.

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

Usage Guidelines3/5

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

The stated purpose gives a clear context for when this tool would be useful, but it does not explicitly say when to use it over resolve_taxon or search_taxa, nor does it mention exclusions. Usage guidance is implied rather than stated.

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

bibliographyC

Look up an LDL Bibliography of the Neuropterida reference by BibObjID.

ParametersJSON Schema
NameRequiredDescriptionDefault
bib_obj_idYes
include_taxaNo
include_figuresNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the lookup action and source, without mentioning what the response contains, how the include_taxa/include_figures flags affect results, error behavior, or any access considerations. This is minimal behavioral transparency.

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 a single efficient sentence with no filler or repetition. It front-loads the core purpose. It is concise rather than simply short, though it sacrifices useful detail for brevity.

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

Completeness2/5

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

For a tool with three parameters, no annotations, and sibling ambiguity, the description is incomplete. The output schema exists, so return-value documentation is not required, but the missing parameter semantics and usage guidance leave an agent under-equipped to choose and configure this tool correctly.

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 description coverage is 0%, so the description must compensate for the three parameters. It only clarifies that lookup is 'by BibObjID', which maps to bib_obj_id, but says nothing about include_taxa or include_figures, leaving their semantics unexplained despite being part of the tool's behavior.

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

Purpose4/5

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

The description names a specific action ('Look up') and a specific resource ('LDL Bibliography of the Neuropterida reference') keyed by BibObjID. It is clear enough to identify what the tool does, though it does not explicitly contrast itself with sibling tools like taxonomic_references.

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

Usage Guidelines2/5

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

No guidance is given for when to use this tool versus alternatives. Sibling tools such as taxonomic_references and figures could plausibly overlap, but the description offers no selection criteria, exclusions, or context about the intended workflow.

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

classificationC

Return LDL/NSW classification data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are available, so the description must provide behavioral transparency itself. It only says 'Return' which implies read-only, but it does not disclose response contents, expected output format, potential side effects, or access considerations.

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 a single, efficient sentence with the verb and resource front-loaded. There is no filler or redundant wording, though brevity comes at the cost of contextual detail.

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

Completeness2/5

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

With no output schema and no annotations, the description leaves too much unexplained: what the classification data looks like, what LDL/NSW means, and when this endpoint should be called instead of siblings. For a zero-parameter endpoint, invocation is simple, but selection confidence is low.

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 input schema has no parameters, so there is no parameter behavior to explain. The baseline of 4 is appropriate because the description does not need to add parameter semantics and does not conflict with the empty schema.

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

Purpose3/5

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

The description states a clear action ('Return') and a specific resource ('LDL/NSW classification data'), but 'LDL/NSW' is opaque and the scope of 'classification data' is vague. It does not sufficiently distinguish this tool from related services like resolve_taxon or taxon_record.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus any sibling tool. The description gives no context about intended use, prerequisites, or selection criteria.

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

distributionC

Get LDL distribution summary and cited geographic records for a taxon.

ParametersJSON Schema
NameRequiredDescriptionDefault
scientific_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what is returned (a summary and records) but does not mention whether the operation is read-only, any authentication requirements, rate limits, or side effects. The term 'LDL' is unexplained, and no details about the nature of the geographic records are given.

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 a single concise sentence that front-loads the verb and resource. It is efficient with no unnecessary words. However, it lacks any structural elements like examples or caveats, but for its length it is appropriately sized.

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

Completeness3/5

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

The tool has a single parameter and an output schema, so return values are covered by the schema. The description is adequate for a simple fetch operation but lacks context on when to use it, what 'LDL' stands for, and any edge cases. It is minimal but not wholly inadequate, given the low complexity and presence of an output schema.

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

Parameters1/5

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

Schema description coverage is 0% (the parameter has no description in the schema), so the description must compensate. It merely says 'for a taxon', which restates the obvious from the parameter name 'scientific_name'. It adds no information about format, constraints, or how the parameter is used. The description fails to add any semantic value beyond the schema.

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

Purpose4/5

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

The description clearly states the tool's action ('Get') and resource ('LDL distribution summary and cited geographic records') for a given taxon. It is specific and distinguishable from siblings by its focus on distribution data, but it does not explicitly differentiate itself from other taxon-related tools like 'taxon_record' or 'classification'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any preconditions, typical use cases, or exclusions. The sibling list includes many related tools, but the description does not help an agent choose this one over them.

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

figuresB

Get figure citations associated with a taxon.

ParametersJSON Schema
NameRequiredDescriptionDefault
scientific_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It only implies a read operation through 'Get', but does not mention side effects, rate limits, output shape, or any caveats. The description adds minimal behavioral context beyond the verb.

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 succinct sentence that is front-loaded and earns its place. No waste, concise yet informative.

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

Completeness3/5

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

For a simple one-parameter read tool, the description conveys the essential purpose but lacks context for choosing this over sibling tools. It also does not mention return details or usage notes, though the output schema may save some gap. Overall, mostly adequate but could be more helpful.

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 description coverage is 0%, so the description must give meaning to the parameter. It states that the scientific_name is the taxon's name via 'associate with a taxon', but does not specify format, validation, or edge cases. This adds moderate meaning beyond the bare schema.

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

Purpose4/5

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

The description 'Get figure citations associated with a taxon' names a specific verb (Get) and resource (figure citations), with a clear scope. It doesn't explicitly differentiate from sibling tools like bibliography or taxonomic_references, but the unique 'figures' resource sets it apart.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as bibliography or taxonomic_references. The description does not mention any conditions, prerequisites, or search context, leaving the agent to infer when 'figures' is appropriate.

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

health_checkA

Check that the MCP server can reach LDL and report dataset/version information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are present, so the description must carry the behavioral burden. It discloses the check action and that it reports dataset/version info, which is minimal but adequate for a no-side-effect health check. It does not mention failure modes or response characteristics.

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?

A single sentence delivers the purpose succinctly with no unnecessary words. It is appropriately front-loaded.

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 zero-parameter nature and the output schema being present, the description is nearly complete. It could benefit from stating that it is read-only or safe to call anytime, but that is minor.

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 tool has zero parameters, so the description doesn't need to explain parameter semantics. The baseline of 4 is appropriate because there is nothing to add beyond the schema.

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 verb 'Check' and the specific resource (MCP server's ability to reach LDL) plus what it reports (dataset/version information). The purpose is unambiguous and distinct from sibling tools that resolve taxa or fetch records.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It is obvious it is a diagnostic tool, but there is no mention of when to invoke it (e.g., before other calls) or that it is not for data retrieval.

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

identification_keysB

Get identification-key terminals associated with a taxon.

ParametersJSON Schema
NameRequiredDescriptionDefault
scientific_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. 'Get' indicates a read operation, but the description does not disclose matching behavior, pagination/limits, or what happens when no terminals exist; it adds little beyond the tool's name.

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?

One sentence that front-loads the verb and resource with no filler. It is concise, though the brevity leaves behavioral and parameter details under-specified.

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

Completeness3/5

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

For a single-parameter read tool, the description conveys the core task and required input. However, absent annotations and schema descriptions, it lacks enough supporting detail to fully ensure correct invocation in edge cases such as invalid names, no matches, or exact vs fuzzy matching.

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 coverage is 0%, so the description must compensate. It clarifies that scientific_name identifies the taxon whose terminals are returned, but it does not add format requirements (e.g., canonical name vs synonym), which matters for correct invocation.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('identification-key terminals') with the association context ('associated with a taxon'). The tool's niche is clear relative to broader siblings like search_taxa or taxon_record, though it doesn't explicitly differentiate from them.

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

Usage Guidelines3/5

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

The phrasing 'associated with a taxon' implies it should be used when a consumer needs the identification-key terminals for a given scientific name. It gives no explicit when-to-use vs alternatives or exclusions, but the use case is reasonably inferable.

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

name_historyC

Return current name, original combination, and matching historical combination rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
scientific_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It only states what is returned and omits whether the operation is read-only, any error conditions, or rate limits. Minimal disclosure leaves the agent unaware of side effects or constraints.

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 a single, concise sentence with no extraneous information. It efficiently conveys the core action, though the brevity sacrifices depth.

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

Completeness2/5

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

Although an output schema exists (which may cover return format), the description does not explain how the input parameter is used or any caveats. For a tool with one parameter, it should at least mention that scientific_name is the query key. The description is incomplete for an agent to invoke it correctly without additional inference.

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

Parameters1/5

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

The only parameter, scientific_name, is not explained in the description. With 0% schema coverage, the description provides zero meaning beyond the parameter's name. It fails to clarify expected format (e.g., full binomial, case sensitivity) or how it is used in matching.

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

Purpose4/5

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

The description states a clear action ('Return') and resource ('current name, original combination, and matching historical combination rows'). It is specific enough to understand the tool's function, though it doesn't explicitly differentiate it from siblings like taxon_record or resolve_taxon. The focus on historical combinations implies a distinct purpose.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention scenarios where a user would need name history over a simpler taxon lookup, nor any exclusions or prerequisites.

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

phylogenyB

Get LDL phylogenetic citations/records associated with a taxon.

ParametersJSON Schema
NameRequiredDescriptionDefault
scientific_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations are absent, so the description must carry full behavioral disclosure. It only says 'Get' which implies a read operation, but it does not state whether the tool is read-only, what 'citations/records' includes, or any side effects or limits. For a tool with no annotations, this is a significant gap.

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?

A single sentence that is front-loaded with the core action and resource, with zero fluff. It is concise and to the point, making efficient use of the character budget.

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

Completeness3/5

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

The tool is simple (one parameter) and has an output schema, so the description doesn't need to explain return values. However, it lacks any mention of data nature, pagination, or limitations. Given no annotations, more context about behavior would be expected, but the low complexity keeps it at a minimally adequate level.

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 schema has one parameter with 0% description coverage, so the description must add meaning. It clarifies that scientific_name refers to the taxon, but it does not specify the expected format (e.g., binomial nomenclature) or any constraints. The parameter name already conveys this, so the added value is minimal.

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

Purpose4/5

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

The description states a clear verb ('Get') and a specific resource ('LDL phylogenetic citations/records') tied to a taxon. It distinguishes from siblings by focusing on 'phylogenetic' content, but it doesn't explicitly contrast with taxonomic_references or bibliography, which are close alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus siblings like taxonomic_references or bibliography. The description implies it's for phylogenetic data but does not state exclusions, prerequisites, or conditions that would route an agent to a different tool.

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

raw_public_endpointC

Advanced read-only access to an allowlisted LDL frontend endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNo
endpointYes

TDQS

C2.9/5.0
Behavior3/5

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

The description explicitly discloses two important behaviors: access is read-only and restricted to allowlisted endpoints. However, with no annotations and no output schema, it does not indicate error behavior, authorization requirements, or what a successful response looks like.

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 concise and puts the key qualifiers ('read-only', 'allowlisted') up front. However, 'advanced' adds little informationaine and the sentence is too terse to carry the semantic weight the tool needs.

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

Completeness2/5

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

The description is too thin to support correct use: it does not enumerate allowed endpoints, define payload expectations, or outline response and error behavior. For a generic raw access tool, this leaves critical operational information missing.

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 coverage is 0%, and the description does not clarify the `endpoint` format or the relationship between `payload` and `endpoint`. An agent has no way to know which endpoint strings are valid or what payload values are expected.

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

Purpose4/5

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

The description states a specific action ('access to an allowlisted LDL frontend endpoint') and a clear safety scope ('read-only'). It is distinguishable from the named sibling tools, which target specific data categories, but 'advanced' and 'LDL frontend endpoint' remain somewhat vague without examples.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this raw endpoint instead of a sibling tool, what endpoint values are allowed, or how to route a request. 'Allowlisted' implies restrictions but the boundary is opaque to the agent.

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

resolve_taxonB

Resolve a Neuropterida scientific name to LDL's current taxon and identifiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_historyNo
scientific_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read-like resolution ('resolve') but does not explicitly state side effects, failure behavior for unrecognized names, or the impact of the include_history parameter. The description does not disclose whether the operation is purely read-only or if it modifies state.

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 sentence with no redundant words. It front-loads the primary purpose and avoids filler, achieving maximum conciseness for the information it does convey.

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

Completeness2/5

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

For a tool with two parameters (one required, one boolean with a default), the description is incomplete. It does not explain the include_history parameter, which is a significant behavioral control, nor does it address error handling or response structure (despite an output schema being present, the description adds no context on what the resolved taxon looks like). The description is too sparse to fully guide an agent in correct usage.

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 description coverage is 0%, so the description must compensate. It implicitly clarifies that scientific_name is the name to resolve, but it completely ignores the include_history parameter. No meaning is added for that boolean beyond what the schema's title and default suggest. The description fails to explain the purpose or effect of include_history.

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 states a specific verb ('resolve'), a resource ('Neuropterida scientific name'), and an outcome ('LDL's current taxon and identifiers'). It clearly differentiates from siblings like batch_resolve (which likely resolves many names) and search_taxa (which suggests broader searching) by focusing on resolution of a single name to the current taxon.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or conditions under which another sibling (e.g., batch_resolve, name_history, search_taxa) would be more appropriate. Usage context is only implied by the verb 'resolve'.

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

search_taxaC

Search LDL species records by common taxonomic fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNo
genusNo
limitNo
authorNo
familyNo
speciesNo
valid_onlyNo
extant_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden. It merely says 'Search...' without stating whether the operation is read-only, how results are paged or limited, what the result set contains, or how filters combine. Basic search behavior is implied but not made explicit.

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

Conciseness3/5

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

A single, grammatically simple sentence that is easy to scan, with no filler. However, the description is too sparse; its brevity approaches under-specification rather than effective conciseness.

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

Completeness2/5

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

For a tool with eight parameters stan lisää output schema is present but the description says nothing about parameter interactions, defaults, valid formats, or filtering behavior. There are also no annotations to convey read-only status. The description leaves a new agent without enough context to call this correctly beyond a guess.

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 description coverage is 0%; the property titles and defaults provide minimal guidance bumps but no semantic definitions. The description's phrase 'common taxonomic fields' hints at genus/species/author/family but does not explain matching behavior, valid formats, or constraints. The tool description must compensate for the low schema coverage but only does so marginally.

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

Purpose4/5

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

The description uses a specific verb ('Search'), identifies the resource precisely ('LDL species records'), and names the search dimensions ('by common taxonomic fields'). It is clear that this tool performs broad record lookup. It does not explicitly distinguish itself from sibling tools like resolve_taxon or taxon_record, but the word 'Search' already implies discovery rather than resolution or retrieval of a single record.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as resolve_taxon, taxon_record, or classification. It is only stated that the tool searches by 'common taxonomic fields', which implies but does not explain the intended use case. No exclusions, prerequisites, or context are provided.

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

taxonomic_referencesB

Get nomenclatural/taxonomic citations for a taxon, with LDL reference IDs where available.

ParametersJSON Schema
NameRequiredDescriptionDefault
scientific_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It signals a read-only retrieval through 'Get' and discloses that LDL reference IDs are only included 'where available,' which is a useful data-completeness caveat. It does not mention failure modes, paging, or other operational 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?

One compact sentence communicates action, resource, scope, and the caveat about LDL IDs. There is no filler or redundant restating of the tool name.

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

Completeness3/5

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

For a one-parameter lookup with an output schema, the description is mostly adequate, and return details need not be restated. However, it omits any comparison with the overlapping bibliography sibling and leaves usage context implicit, so an agent may not know when this citation tool is preferred.

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 coverage is 0%, and the description only loosely maps the parameter to 'a taxon.' It does not specify whether scientific_name expects a binomial, with or without authorship, or exact-match handling. The single parameter's title is self-explanatory, but the description does not compensate for the lack of schema documentation.

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

Purpose4/5

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

The description uses a specific verb ('Get') and a clear resource ('nomenclatural/taxonomic citations for a taxon'), and adds the distinguishing qualifier 'with LDL reference IDs where available.' It does not explicitly differentiate from sibling tools like bibliography or name_history, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this tool instead of siblings such as bibliography, name_history, or taxon_record. The 'where available' caveat hints at data availability, but no selection conditions, prerequisites, or exclusions are stated.

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

taxon_recordC

Get a combined species record with current combination, epithet, and monograph data.

ParametersJSON Schema
NameRequiredDescriptionDefault
scientific_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It says the tool gets a combined record, but it does not disclose matching behavior, assumed name formats, handling of unresolved or non-current names, or any limitations. This is thin for an unannotated tool.

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 sentence with no wasted words and stays focused on the primary action and data focus. It is front-loaded and readable.

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

Completeness3/5

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

The tool is low-complexity, and the output schema exists, so the description does not need to explain return shape in detail. However, the absence of parameter guidance and sibling differentiation leaves enough gaps that this is only minimally complete for a taxon-focused API with many related tools.

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?

There is one required parameter, scientific_name, and schema description coverage is 0%. The description does not explain the format, canonical requirements, or accepted name behavior for scientific_name, so it adds little meaning beyond the parameter label.

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

Purpose4/5

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

The description states a clear action and resource: getting a combined species record with current combination, epithet, and monograph data. It is more specific than just repeating the tool name, and the mention of combined data helps separate it from search/resolve-style siblings, though it does not explicitly name or exclude alternate tools.

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

Usage Guidelines2/5

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

There is no guidance on when to choose this tool over siblings such as resolve_taxon, search_taxa, name_history, or classification. The description gives a purpose but no conditions, exclusions, or alternate tool recommendations.

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

type_infoB

Get primary type summary, type-specimen details, and georeferenced type-locality coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
scientific_nameYes
include_coordinatesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations are absent, so the description carries the behavioral disclosure burden. It does identify the concrete return contents and the georeferenced-coordinate aspect, but it does not explain optional behavior, such as what changes when include_coordinates is false, nor any error or data-source considerations.

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?

A single front-loaded sentence with no filler. Every phrase adds content by listing the three returned components, making the description efficient and easy to parse.

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

Completeness3/5

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

For a two-parameter read tool with an output schema, the core purpose is present, and the schema covers required inputs. However, the completely undocumented parameters and lack of sibling differentiation leave an agent to infer when to use this tool and how the optional coordinate boolean behaves.

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 description coverage is 0%, so the description must compensate for the input schema's lack of explanations. It mentions type-locality coordinates, but it never names or clarifies scientific_name or include_coordinates, leaving the agent to infer meaning solely from the property names and the boolean default.

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

Purpose4/5

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

The description opens with 'Get' and names a specific resource: 'primary type summary, type-specimen details, and georeferenced type-locality coordinates.' This is clear, though it does not explicitly contrast with sibling tools such as taxon_record or resolve_taxon.

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

Usage Guidelines2/5

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

No guidance is given on when to call type_info instead of sibling tools, and no exclusions or alternatives are mentioned. The intended use case must be inferred from the tool name and description.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 15 tool updatesv0.1.0
    • First observedbatch_resolve
    • First observedbibliography
    • First observedclassification
    • First observeddistribution
    • First observedfigures
    • First observedhealth_check
    • First observedidentification_keys
    • First observedname_history
    • First observedphylogeny
    • First observedraw_public_endpoint
    • First observedresolve_taxon
    • First observedsearch_taxa
    • First observedtaxon_record
    • First observedtaxonomic_references
    • First observedtype_info

TDQS

B3.2/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target clearly distinct facets—name resolution, search, history, types, distribution, references, figures, phylogeny, keys—so an agent can usually select correctly. Some minor ambiguity exists among resolve_taxon, search_taxa, name_history, and taxon_record, which all deal with taxon identity and classification, though their descriptions provide enough distinction.

Naming Consistency3/5

All names are lowercase snake_case, which is good, but the pattern is mixed: some tools use verb-first names like resolve_taxon, search_taxa, and batch_resolve, while most data endpoints are bare nouns like distribution, figures, phylogeny, and classification. This is readable but not a disciplined verb_noun or noun-only convention.

Tool Count5/5

Fifteen tools is within the ideal range for a domain-specific digital-library server, and each tool appears to expose a meaningful, separate capability. Health check and raw endpoint are additional system-level utilities that do not feel redundant, so the count is well-scoped.

Completeness4/5

The surface covers core workflows for resolving, viewing, and citing taxa, including types, distributions, figures, phylogeny, and identification keys, with only a few likely gaps. Missing a broader literature/reference search or general specimen-search operation would be workaroundable, but the set is largely complete for a read-only taxonomic library.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Provides access to the Integrated Taxonomic Information System (ITIS) database via a Model Context Protocol server, enabling taxonomic searches by scientific name, TSN, kingdom, and rank, with features like autocomplete and hierarchical data retrieval.
    11
    -
  • A
    license
    A
    quality
    A
    maintenance
    Hosted MCP server for antiquarian first-edition identification and New Mexico book-donation logistics. 12 tools over a CC-BY, DOI-cited dataset of 6,700+ titles and 870 publisher conventions.
    12
    MIT