Skip to main content
Glama

SeqCode MCP 服务器

English | 中文

版本 0.1.0

一个用于 SeqCode Registry 数据库的 Model Context Protocol (MCP) 服务器


目录


Related MCP server: KEGG REST MCP

简介

⚠️ 免责声明: 本项目是一个非官方的社区驱动的 Model Context Protocol (MCP) 服务器,与 SeqCode Registry 官方组织没有隶属关系。SeqCode 和 SeqCode Registry 是其各自所有者的商标/项目名称。

SeqCode MCP 是一个基于 Model Context Protocol 的服务器,使 AI 助手(如 Claude)能够直接查询和检索 SeqCode Registry 数据库中的微生物命名信息。

SeqCode Registry 是原核生物(细菌和古菌)基于序列数据命名的中央存储库。本 MCP 服务器封装了 SeqCode Registry 的全部公开 REST API 端点,提供 18 个工具函数,涵盖名称检索、基因组查询、出版物浏览、作者/期刊/主题浏览、注册列表查询、菌株查询和全文搜索等功能。

工作原理

┌──────────────┐     stdio      ┌──────────────────┐     HTTPS     ┌─────────────────────┐
│  AI 助手      │ ◄──────────► │  SeqCode MCP     │ ◄──────────► │  SeqCode Registry   │
│  (Claude等)  │                │  服务器          │               │  REST API           │
└──────────────┘                └──────────────────┘               └─────────────────────┘

关于 SeqCode Registry

SeqCode Registry 是 SeqCode 倡议 的一部分,旨在为未培养的原核生物(通过基因组数据描述的微生物)建立一个正式的命名法规体系。

关键数据

数据类型

数量(截至 2026 年 10 月)

已注册名称

48,431

SeqCode 有效发表名称

3,373

验证注册列表

264

数据许可

SeqCode Registry 中的所有信息均在 CC BY 4.0 许可下发布。


功能特性

  • 18 个 MCP 工具:覆盖 SeqCode Registry REST API 的所有公开端点

  • 异步 HTTP 客户端:基于 httpx 的高性能异步请求

  • 全文搜索:支持按名称、基因组、出版物、作者、主题搜索

  • 分页支持:所有列表端点均支持分页查询

  • 状态过滤:名称列表支持按 SeqCode、ICNP、valid 等状态过滤

  • 错误处理:完善的错误处理和友好的错误信息

  • 零配置:安装后即可使用,无需认证或 API Key


安装

前提条件

  • Python ≥ 3.10

  • pip 或 uv

从源码安装

# 克隆项目
git clone https://github.com/ZengZichao/SeqCode-MCP.git
cd SeqCode-MCP

# 安装(推荐使用虚拟环境)
pip install -e .

# 或者使用 uv
uv pip install -e .

依赖项

依赖

最低版本

说明

mcp

≥ 1.0.0

Model Context Protocol SDK

httpx

≥ 0.27.0

异步 HTTP 客户端

anyio

≥ 4.0.0

异步兼容层


配置与使用

在 Claude Desktop 中配置

在 Claude Desktop 的配置文件中添加以下内容:

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "seqcode": {
      "command": "python",
      "args": ["-m", "seqcode_mcp.server"],
      "cwd": "/path/to/seqcode-mcp"
    }
  }
}

如果已通过 pip install -e . 安装,可直接使用:

{
  "mcpServers": {
    "seqcode": {
      "command": "seqcode-mcp"
    }
  }
}

在其他 MCP 客户端中配置

本服务器使用标准 stdio 传输协议,兼容所有支持 MCP 的客户端。

直接运行

# 方式一:命令行入口
seqcode-mcp

# 方式二:Python 模块
python -m seqcode_mcp.server

可用工具

下表列出本 MCP 服务器提供的全部 18 个工具:

#

工具名称

说明

类别

1

check_api_status

检查 API 是否可访问

通用

2

list_names

获取名称列表(支持状态过滤和分页)

名称

3

get_name

根据 ID 获取名称详细信息

名称

4

list_genomes

获取基因组列表

基因组

5

get_genome

根据 ID 获取基因组详细信息

基因组

6

list_type_genomes

获取有效发表名称的模式基因组列表

基因组

7

list_registers

获取验证注册列表

注册列表

8

get_register

根据登录号获取注册列表详情

注册列表

9

list_publications

获取出版物列表

出版物

10

get_publication

根据 ID 获取出版物详情

出版物

11

list_authors

获取作者列表

作者

12

get_author

根据 ID 获取作者详情及其出版物

作者

13

list_journals

获取期刊列表

期刊

14

get_journal

根据名称获取期刊详情及其出版物

期刊

15

list_subjects

获取出版物主题列表

主题

16

get_subject

根据 ID 获取主题详情及其出版物

主题

17

get_strain

根据 ID 获取菌株详情

菌株

18

search_seqcode

全文搜索(支持名称/基因组/出版物/作者/主题)

搜索


工具详解

通用

check_api_status

检查 SeqCode REST API 是否可访问。

  • 参数:无

  • 返回示例:

{"status": "ok"}

名称

list_names

获取名称列表,支持分页和状态过滤。

  • 参数:

    • page (int, 可选, 默认 1):页码

    • status (str, 可选):状态过滤,可选值:public, automated, SeqCode, ICNP, ICNafp, valid

  • 返回:分页的名称列表,每项包含 id、name、url、uri

get_name

根据 ID 获取名称详细信息。

  • 参数:

    • name_id (int, 必需):名称 ID

  • 返回:包含以下字段:

    • rank:分类等级(domain, phylum, class, order, family, genus, species 等)

    • status_name:命名状态(如 Valid (SeqCode), Valid (ICNP) 等)

    • syllabication:音节划分

    • etymology:词源说明

    • description:描述文本(含 raw 和 html 格式)

    • formal_styling:正式引文格式

    • nomenclatural_type:模式类型(基因组、名称或菌株)

    • classification:分类层级(从域到种)

    • proposed_in:提出该名称的出版物

    • register:所属注册列表

    • priority_date:优先日期

    • children:子级名称列表

    • qc_warnings:质量检查警告

基因组

get_genome

根据 ID 获取基因组详细信息。

  • 参数:

    • genome_id (int, 必需):基因组 ID

  • 返回:包含以下字段:

    • database / accession:数据库及登录号(如 NCBI Assembly: GCA_988280555.1)

    • kind:基因组类型(isolate, mag, sag, enrichment)

    • genomic_features:基因组特征

      • 完整度、污染度、GC含量

      • 16S/23S rRNA 基因数量和完整度

      • tRNA 数量、编码密度、密码子表

      • N50、contigs 数、最大 contig、组装长度

    • names:关联的名称列表

    • strain:关联的菌株信息

注册列表

get_register

根据登录号获取注册列表详情。

  • 参数:

    • acc (str, 必需):注册列表登录号(如 r:0w5t6dud,可带或不带 r: 前缀)

    • page (int, 可选, 默认 1):名称列表页码

  • 返回:

    • 注册列表信息(标题、DOI、优先日期)

    • 提交者和作者列表

    • 有效出版物

    • 包含的名称列表

出版物

get_publication

根据 ID 获取出版物详情。

  • 参数:

    • publication_id (int, 必需):出版物 ID

  • 返回:

    • 引文、DOI、标题、期刊、期刊位置和日期

    • 出版物类型、摘要

    • 作者列表

    • 关联的名称列表

    • 主题列表

搜索

search_seqcode

全文搜索 SeqCode Registry。

  • 参数:

    • query (str, 必需):搜索关键词

    • what (str, 可选, 默认 names):搜索类型,可选值:names, genomes, publications, authors, subjects

  • 返回:匹配项列表,每项包含:

    • id:结果 ID

    • name:结果名称/标题

    • url:Registry 页面链接

    • api_url:API JSON 端点


API 数据模型

本服务器封装的 SeqCode Registry REST API 的公开端点位于 https://api.seqco.de/v1/。以下是主要数据模型概览:

name_item

{
  "id": 49702,
  "name": "Spongiamicus weybensis",
  "url": "https://api.seqco.de/v1/names/49702.json",
  "uri": "https://seqco.de/i:49702"
}

genome_item

{
  "id": 6326,
  "database": "assembly",
  "accession": "GCA_988280555.1",
  "kind": "mag",
  "url": "https://api.seqco.de/v1/genomes/6326.json",
  "uri": "https://seqco.de/g:6326"
}

publication_item

{
  "id": 3944,
  "citation": "Sun et al., 2025, Microbial Genomics",
  "doi": "10.1099/mgen.0.001351",
  "url": "https://api.seqco.de/v1/publications/3944.json"
}

register_item

{
  "acc_url": "seqco.de/r:0w5t6dud",
  "title": "Register list for Spongiamicus weybensis gen. nov. sp. nov. ...",
  "priority_date": "2026-09-23T09:58:21.630Z",
  "url": "https://api.seqco.de/v1/registers/r:0w5t6dud.json",
  "uri": "https://seqco.de/r:0w5t6dud"
}

classification(分类层级)

分类层级是一个从高到低排列的数组,第一个元素通常是 domain 级别的名称:

[
  {"id": 753, "name": "Bacteria", "rank": "domain", "status_name": "Valid (ICNP)", ...},
  {"id": 49701, "name": "Spongiamicota", "rank": "phylum", ...},
  {"id": 49703, "name": "Spongiamicia", "rank": "class", ...},
  {"id": 49704, "name": "Spongiamicales", "rank": "order", ...},
  {"id": 49705, "name": "Spongiamicaceae", "rank": "family", ...},
  {"id": 49706, "name": "Spongiamicus", "rank": "genus", ...},
  {"id": 49702, "name": "Spongiamicus weybensis", "rank": "species", ...}
]

分页响应

所有列表端点返回分页结构:

{
  "response": {
    "status": "ok",
    "message_type": "name",
    "count": 48431,
    "current_page": 1,
    "total_pages": 2422,
    "next": "https://api.seqco.de/v1/names.json?page=2"
  },
  "values": [...]
}

开发指南

项目结构

seqcode-mcp/
├── pyproject.toml              # 项目配置和依赖
├── README.md                  # 中文文档(本文件)
├── README_en.md               # 英文文档
├── LICENSE                    # MIT 许可证
├── .gitignore
└── src/
    └── seqcode_mcp/
        ├── __init__.py         # 包初始化
        ├── client.py           # SeqCode REST API 异步客户端
        └── server.py           # MCP 服务器实现

本地开发

# 安装开发依赖
pip install -e ".[dev]"

# 运行代码检查
ruff check src/

# 运行测试
pytest

添加新工具

  1. 在 client.py 中添加对应的 API 调用方法

  2. 在 server.py 的 ALL_TOOLS 列表中添加工具定义

  3. 在 server.py 的 _dispatch_tool 函数中添加路由分支

SeqCode REST API 参考

完整的 API 文档请参见:https://registry.seqco.de/page/api

API 基础地址:https://api.seqco.de/v1/


许可证

本项目采用 MIT 许可证。

SeqCode Registry 数据采用 CC BY 4.0 许可证发布。


© 2026 SeqCode-MCP Contributors

Available Tools

18 tools
check_api_statusB

Check that the SeqCode Registry REST API is accessible.

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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 behavioral burden. 'Check' implies a safe, side-effect-free read, but the description says nothing about authentication requirements, rate limits, or how failure is surfaced (exception vs. status flag) — significant gaps for a tool whose whole purpose is reporting a binary state.

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?

A single well-formed sentence with no filler, and the resource being checked is front-loaded after the verb. It is efficient, though bordering on under-specified rather than optimally concise.

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?

There is no output schema, so the description is the only place return semantics could live — and it omits them. An agent cannot tell whether a successful check yields a boolean, a status code, or a descriptive payload, nor what an unreachable API produces.

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 takes zero parameters, so the baseline is 4. The empty object schema is fully self-explanatory and there is no parameter semantics for the description to add.

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 verb ('Check') and resource ('SeqCode Registry REST API') with a clear scope ('is accessible'). It is self-evidently distinct from the list_*/get_*/search_* siblings, but it never explicitly frames itself as a health/connectivity probe relative to them, so it falls just 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 call this versus the data-retrieval siblings, nor any mention of using it as a prerequisite connectivity check. The agent must infer its role entirely from the name and one-sentence purpose.

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

get_authorA

Retrieve detailed information about a specific author by their numeric ID, including their list of publications.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for the publications list (1-based). Default: 1.
author_idYesThe numeric ID of the author (e.g. 1).

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the return content ('detailed information ... including their list of publications'), but says nothing about pagination of that publication list, permission requirements, or behavior for an unknown ID.

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?

A single front-loaded sentence with no wasted words; the resource and key return content come first. It is efficient, though it is also short enough that it leaves gaps rather than being notably well-structured.

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

Completeness4/5

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

With no output schema and no annotations, the description responsibly states the primary return content (author details plus publications). The gap is that it does not mention that the publication list is paged, even though the schema exposes a page parameter.

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 100%, so both author_id and page are already documented in the schema. The description only restates that the ID is numeric, adding no semantics beyond the schema, which is the baseline-3 case.

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 (Retrieve) and resource (author) with a clear scoping constraint (by their numeric ID), which implicitly separates it from the sibling list_authors. It does not explicitly name the sibling it contrasts with, so it falls just 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 Guidelines3/5

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

The phrase 'a specific author by their numeric ID' implies this is the single-entity lookup as opposed to list_authors, but no when-to-use condition, prerequisite, or alternative is stated. Usage is inferred rather than guided.

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

get_genomeA

Retrieve detailed information about a specific genome by its numeric ID. Includes accession, kind (isolate/MAG/SAG/enrichment), genomic features (completeness, contamination, GC content, rRNA genes, tRNAs, N50, contigs, assembly length, etc.), associated names, and strain info.

ParametersJSON Schema
NameRequiredDescriptionDefault
genome_idYesThe numeric ID of the genome (e.g. 6326).

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses a detailed list of returned data (accession, kind, genomic features, names, strain info), which compensates for the missing output schema, and 'Retrieve' implies a read-only operation. It does not explicitly state error behavior or authentication needs, but for a simple getter the output disclosure is substantial.

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?

Two concise sentences with zero waste. The purpose is front-loaded in the first sentence, and the second sentence efficiently enumerates the returned fields, earning its place.

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

Completeness4/5

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

Given the low complexity (one required parameter, no output schema, no annotations), the description is nearly complete: it explains the tool's purpose and describes the return content. The main gap is the absence of any usage guidance or sibling differentiation, which would be beneficial for an agent choosing among the many get/list tools.

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 100%, so the parameter's type, minimum, and example are already fully documented in the schema. The description restates 'numeric ID' but adds no new syntax or format details beyond what the schema provides, making the baseline 3 appropriate.

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 (Retrieve) and resource (genome) with an identifier type (numeric ID), and 'specific genome' implicitly distinguishes it from list_genomes. However, it does not explicitly name any sibling alternative, so full 5-point differentiation is absent.

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?

It gives no guidance on when to use this tool versus alternatives like list_genomes or get_strain. The only implied usage is that a numeric ID is required, which is already clear from the required parameter and its schema description.

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

get_journalA

Retrieve detailed information about a specific journal by name, including its list of publications.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe journal name (e.g. 'Microbial Genomics').
pageNoPage number for the publications list (1-based). Default: 1.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. 'Retrieve' implies a read-only, non-destructive operation and it discloses that the response embeds a publications list, but it says nothing about permissions, pagination of that embedded list, or error behavior when a name is unknown.

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, front-loaded with the verb+resource and ending on the noteworthy return detail. Nothing is padded, though it is terse enough that a routing hint could have been added at little cost.

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?

For a simple two-parameter read tool with fully covered schema descriptions and no output schema, the description covers purpose and the notable return content. The main gap is not telling the agent how this relates to list_journals.

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 100%, so both 'name' and 'page' are already fully documented with an example and default. The description's 'by name' and 'including its list of publications' add only a light topical echo of those two parameters. Baseline 3 applies when the schema does the heavy lifting.

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 verb and resource: 'Retrieve detailed information about a specific journal by name.' The phrase 'a specific journal' implicitly separates it from list_journals, but the sibling is never named, so the differentiation is inferred rather than explicit.

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?

Usage is implied: fetch one journal's details when you have its name. There is no explicit statement of when to prefer this over list_journals or get_publication, and no prerequisites or exclusions are given.

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

get_nameA

Retrieve detailed information about a specific name by its numeric ID. Returns rank, status, etymology, description, classification, nomenclatural type, proposed_in publication, and more.

ParametersJSON Schema
NameRequiredDescriptionDefault
name_idYesThe numeric ID of the name (e.g. 49702).

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden; 'Retrieve' implies a safe read, and the enumeration of returned fields (rank, status, etymology, classification, nomenclatural type, proposed_in) is genuinely useful since there is no output schema. It omits any statement about permissions, errors for invalid IDs, or whether results are cached.

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?

Two sentences, front-loaded with the operation and key, and the second sentence earns its place by previewing the return payload in the absence of an output schema. No filler.

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?

For a simple single-parameter read tool with no annotations or output schema, the definition covers purpose, input key and the shape of the response, which is close to sufficient. It stops short of describing failure behavior or how an agent should obtain a valid name_id.

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 coverage is 100% and the single name_id parameter is documented with type, minimum and an example (49702), so the schema does the heavy lifting. The description adds only the word 'numeric', matching the baseline 3 for a one-parameter tool.

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 ('Retrieve detailed information') and resource ('a specific name'), plus the lookup key ('by its numeric ID'), which cleanly separates it from the sibling list_names. It never names an alternative explicitly, so it falls just short of the top mark.

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?

Usage is only implied: 'by its numeric ID' signals the precondition that the agent must already hold an ID, which in turn implies the list_/search_ siblings are the way to obtain one. There is no explicit when-to-use statement or exclusion.

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

get_publicationA

Retrieve detailed information about a specific publication by its numeric ID. Includes citation, DOI, title, journal, type, abstract, authors, associated names, and subjects.

ParametersJSON Schema
NameRequiredDescriptionDefault
publication_idYesThe numeric ID of the publication (e.g. 3944).

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Retrieve' and the returned-field list make the read-only nature clear, but it says nothing about permissions, error handling for missing IDs, rate limits, or pagination — the remaining gaps a caller would care about.

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?

Two sentences, zero filler, and the core action plus scope is front-loaded before the return-field enumeration. Every clause earns its place, especially the field list which substitutes for a missing output schema.

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

Completeness4/5

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

With no output schema, enumerating the returned fields (citation, DOI, title, journal, authors, subjects) is genuinely useful and covers the return contract. It is nearly complete for a simple read tool, though error behavior for an invalid or nonexistent ID is left unstated.

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 100% and the single parameter is fully documented in the schema with type, minimum, and an example. The description only reinforces that the ID is numeric, adding no syntax or format detail beyond the schema; baseline 3 applies.

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 ('Retrieve') and resource ('publication') scoped to a single record fetched by numeric ID, which implicitly separates it from the list_publications sibling. It stops short of naming the sibling explicitly, so the differentiation is inferable rather than stated.

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 phrase 'by its numeric ID' implies the precondition for use (you already have an ID), but there is no explicit when-to-use guidance, no statement of when to prefer list_publications or search_seqcode instead, and no mention of behavior for an unknown ID.

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

get_registerB

Retrieve detailed information about a specific register list by its accession. Includes submitter, authors, DOI, effective publication, and the list of names in the register.

ParametersJSON Schema
NameRequiredDescriptionDefault
accYesRegister accession, e.g. 'r:0w5t6dud'. Can be given with or without the 'r:' prefix.
pageNoPage number for the names list (1-based). Default: 1.

TDQS

B3.2/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 full behavioral burden. 'Retrieve' implies a read-only operation, but the description does not disclose permissions, rate limits, error behavior, or pagination details beyond what the page parameter schema already states.

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?

Two compact sentences with the core purpose front-loaded. The second sentence usefully enumerates return contents without waste.

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?

For a simple read-by-id tool with a fully documented 2-param schema and no output schema, the description is mostly complete. It states the identifying input and the main return fields, though it omits error and permission context.

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 100%, so the schema already documents acc and page fully. The description mentions accession and the names list, but adds no syntax or format meaning beyond the schema's own descriptions.

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 ('Retrieve') and resource ('register list') with the identifying key ('by its accession'), which implicitly distinguishes it from the list_registers sibling. However, it does not explicitly name alternatives or contrast with list_registers.

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 explicit when-to-use guidance or prerequisites. It implies use when you have a register accession, but never states when to choose it over list_registers or get_name, nor what happens if the accession is invalid.

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

get_strainB

Retrieve detailed information about a specific strain by its numeric ID. Includes strain numbers, typified names, genomes, and strain info DOIs.

ParametersJSON Schema
NameRequiredDescriptionDefault
strain_idYesThe numeric ID of the strain (e.g. 42239).

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations present, the description carries the full burden. It does disclose the shape of the returned data (strain numbers, typified names, genomes, strain info DOIs), which is genuinely useful since there is no output schema, but it says nothing about permissions, error behavior for an invalid or unknown ID, or response size.

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?

Two tight sentences, with the core action front-loaded in the first and the payload description second. No filler or redundant restatement of the tool name.

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?

For a simple one-parameter read tool with no output schema, the description covers the action and enumerates the returned field categories, which compensates well for the absent output schema. Only the lack of any usage or error context keeps it from being fully 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?

There is a single required parameter at 100% schema description coverage, so the schema already documents the type, minimum, and an example value. The description adds nothing beyond restating 'numeric ID', which is the expected baseline here.

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 and resource ('Retrieve detailed information about a specific strain') and scopes it to lookup by numeric ID, so the read-by-identifier pattern is unambiguous. It does not explicitly contrast itself with sibling get_* tools (get_name, get_genome, get_register), but the resource noun is distinct enough to separate them.

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 use this tool versus alternatives, no mention of a list/predecessor tool, and no prerequisites such as needing an ID from a prior lookup. The agent must infer usage from the name alone.

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

get_subjectA

Retrieve detailed information about a specific publication subject by its numeric ID, including associated publications.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for the publications list (1-based). Default: 1.
subject_idYesThe numeric ID of the subject (e.g. 1).

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Retrieve' implies a read-only lookup, and it usefully discloses that the response bundles associated publications, but it says nothing about authentication, invalid-ID behavior, or the fact that the publications portion is paginated.

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?

A single front-loaded sentence with the purpose first and the key payload detail ('including associated publications') second; nothing is wasted. It is slightly terse for a tool with no annotations, but structurally 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?

For a simple two-parameter read with no output schema, the description covers both the subject detail and the accompanying publications, which substitutes for the missing return-value documentation. It stops short of explaining pagination of the publications list, which the page parameter implies.

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 100%, so both parameters (subject_id, page) are already documented in the schema and the baseline is 3. The description confirms subject_id is numeric and hints that the publications list is part of the result, but adds no format or constraint detail 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?

States a specific verb and resource ('Retrieve detailed information about a specific publication subject by its numeric ID') and adds the scope detail that associated publications are included. It is clearly distinguishable from list_subjects by the singular 'a specific subject' plus ID-based lookup, though it never names the sibling explicitly.

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?

Usage is only implied: 'by its numeric ID' signals the prerequisite of already having an ID, and the singular retrieval contrasts with the list_* siblings. There is no explicit when-to-use vs get_publication/get_name/get_journal guidance and no exclusions or error conditions.

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

list_authorsC

Retrieve a paginated list of publication authors from the SeqCode Registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default: 1.

TDQS

C2.9/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 and delivers very little: it notes the result is paginated but says nothing about page size, total counts, ordering, auth requirements, or what an empty result means. 'Paginated' is a useful trait, but most behavioral context is absent.

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 clean, front-loaded sentence with zero filler. It is efficient, though its brevity is partly under-specification rather than compression of rich content.

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 minimal one-optional-parameter list tool with no output schema and no annotations, the description covers the essentials. However, an agent still cannot tell result size, ordering, or how this list relates to get_author, so it is only minimally adequate.

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 coverage is 100% and the single 'page' parameter is fully documented in the schema with its default and 1-based indexing. The description adds no meaning beyond that, which matches the baseline 3 for high-coverage schemas.

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 ('Retrieve') and resource ('paginated list of publication authors') scoped to the SeqCode Registry. It is clearly the collection counterpart to the sibling get_author, but it never names that distinction explicitly.

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 when-to-use guidance, no mention of when to prefer get_author over this list, and no stated prerequisites. The agent must infer usage entirely from the name.

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

list_genomesB

Retrieve a paginated list of genomes registered in the SeqCode Registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default: 1.

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 carries the full behavioral-disclosure burden. It implies a read operation via 'Retrieve' and notes pagination, but it does not disclose authentication requirements, rate limits, page size, sorting, or the shape of returned genome records.

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, front-loaded sentence with no wasted words. It states the core operation and pagination trait immediately.

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 paginated list tool, the description covers the basic purpose and pagination behavior. However, it leaves gaps around when to choose this tool over siblings and gives no indication of return fields despite there being no output schema.

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 input schema has 100% description coverage and fully documents the sole 'page' parameter. The description adds no parameter details beyond what the schema already provides, so the baseline of 3 is appropriate.

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 gives a specific verb and resource: 'Retrieve a paginated list of genomes registered in the SeqCode Registry.' It clearly distinguishes list behavior from retrieval of a single genome by verb choice, but it does not explicitly name or differentiate from siblings like list_type_genomes or get_genome.

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 explicit when-to-use guidance, no when-not-to-use guidance, and no mention of alternatives such as list_type_genomes for a filtered subset or get_genome for a specific genome. The description only states the operation, leaving selection context entirely to inference.

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

list_journalsA

Retrieve a paginated list of publication journals from the SeqCode Registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default: 1.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose pagination, which is a useful behavioral trait, but says nothing about ordering, total counts, permissions, or rate limits. For a read-only list tool this is adequate but thin.

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 zero filler. Every word earns its place and the resource and scope are stated immediately.

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?

There is no output schema, so the description could helpfully sketch the returned journal shape or list ordering, neither of which it does. For a one-parameter read-only listing tool it is minimally complete but leaves return-value understanding entirely to inference.

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 100% and the single page parameter is fully documented in the schema (including default and minimum). The description adds no meaning beyond it, so the baseline of 3 applies.

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 (Retrieve/list) and resource (publication journals) with clear scope ('from the SeqCode Registry'). The 'list' prefix and plural resource implicitly distinguish it from the singular get_journal sibling, but the description never explicitly names that distinction.

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?

Usage is implied by the listing semantics, but there is no explicit when-to-use guidance and no mention of get_journal as the alternative for fetching a single journal. An agent can infer intent but must rely on the name to route correctly.

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

list_namesA

Retrieve a paginated list of names from the SeqCode Registry. Each entry contains id, name, url and uri. Optionally filter by status: 'public', 'automated', 'SeqCode', 'ICNP', 'ICNafp', or 'valid'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default: 1.
statusNoFilter names by status. One of: 'public', 'automated', 'SeqCode', 'ICNP', 'ICNafp', 'valid'.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses pagination and the shape of returned entries (id, name, url, uri), which is useful, but says nothing about page size, total counts, ordering, or whether results are filtered by default — gaps for a paginated list.

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?

Two tight sentences, front-loaded with purpose then the return fields and filter. Every clause earns its place with no redundancy.

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

Completeness4/5

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

With no output schema, the description helpfully enumerates the returned fields, which compensates well for a simple 2-param read tool. It falls short only on pagination mechanics (page size, total pages), which an agent would need for reliable iteration.

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 100%, so both parameters are already fully documented, including the status enum and the 1-based page default. The description merely restates the enum values, adding no syntax or behavioral meaning 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?

States a specific verb and resource ('Retrieve a paginated list of names from the SeqCode Registry') and enumerates the entry fields. The list-vs-single distinction against get_name is implied by the name and description, but no sibling is named explicitly.

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?

'Optionally filter by status' gives implied usage, and the enum values tell the agent what filters exist. However, there is no guidance on when to prefer this over search_seqcode or get_name, and no exclusions or prerequisites.

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

list_publicationsB

Retrieve a paginated list of publications referenced in the SeqCode Registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default: 1.

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden, and it only discloses that results are paginated. It does not state ordering, default/max page size, total-count behavior, or that this is a safe read-only operation, leaving real gaps for a tool with zero annotation coverage.

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 short sentence with the resource and the pagination trait front-loaded and no filler. It is efficient, though it could have used a few more words to cover boundaries without bloat.

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 with no output schema, the description is minimally sufficient, but with no annotations and no output schema it should say more about read-only safety, page size limits, and result contents. Notably it does not clarify that publications are distinct from names/journals referenced by SeqCode.

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?

There is a single parameter with 100% schema description coverage, so the schema already documents 'page' fully. The description's 'paginated' wording corroborates the page param but adds no syntax, bounds, or format detail 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 gives a specific verb ('Retrieve') and resource ('list of publications') scoped to the SeqCode Registry, and the 'paginated list' framing distinguishes it from the singular sibling get_publication. It stops short of explicitly naming siblings like list_names or search_seqcode, so 4 rather than 5.

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?

Usage is only implied by the list-vs-get naming convention and the 'paginated' qualifier; there is no explicit statement of when to use this over get_publication or search_seqcode, nor any prerequisite or exclusion. Adequate but clearly thin.

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

list_registersB

Retrieve a paginated list of validated register lists from the SeqCode Registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default: 1.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosure. It does convey that results are paginated and restricted to 'validated' registers, which is useful filtering context, but it says nothing about page-size limits, total counts, or the shape of returned register entries.

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?

A single front-loaded sentence with no filler; the key resource and pagination constraint come immediately. It is efficient for such a simple tool.

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 minimal single-parameter list tool this is nearly adequate, but with no annotations and no output schema, the description could clarify what a register list entry contains or how paging terminates. A small but real gap remains.

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?

There is only one parameter (page) and the schema documents it fully at 100% coverage, including its 1-based default. The description's reference to pagination aligns with and reinforces the schema, so no additional parameter explanation is needed.

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 ('Retrieve') and resource ('validated register lists from the SeqCode Registry'), making the read-only listing purpose unmistakable. It does not explicitly name how it differs from get_register, though the list/get naming convention among siblings makes the distinction reasonably inferable.

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 use this tool versus get_register or the other list_* siblings, and no prerequisites or exclusions are mentioned. The agent must infer usage purely from the verb 'list'.

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

list_subjectsC

Retrieve a paginated list of publication subjects from the SeqCode Registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default: 1.

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 full behavioral burden. It does disclose pagination, which is genuinely useful, but says nothing about authentication requirements, ordering, page size, or total-count behavior for a registry API call.

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 front-loaded sentence with no filler; the resource and pagination qualifier appear immediately. It is efficient, though the single sentence leaves little room for routing or behavioral content.

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 list tool with full schema coverage and no output schema, the description is minimally adequate. It omits what a 'subject' record contains and how pagination metadata is returned, which an agent calling this cold would benefit from knowing.

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?

There is a single optional parameter and the schema documents it at 100% coverage, including its 1-based nature and default. The description adds no parameter detail beyond the schema, so the baseline of 3 applies.

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 (Retrieve/list) plus resource (publication subjects) and the owning registry, so the agent knows exactly what it fetches. It does not explicitly contrast itself with the sibling get_subject or list_publications, so it falls 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?

The description gives no when-to-use guidance, no prerequisites, and never names an alternative among the many siblings (get_subject, list_publications, list_names). The only implied usage is 'when you want a list of subjects,' which the name already conveys.

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

list_type_genomesC

Retrieve a list of type genomes from validly published names and their corresponding names.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Default: 1.

TDQS

C2.5/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 full burden of behavioral disclosure, and it says nothing about result ordering, pagination behavior, result size, or authentication needs. The only behavioral hint (paging) lives in the schema, not the description.

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?

It is a single front-loaded sentence, which is appropriately sized, but the trailing phrase about 'validly published names and their corresponding names' is muddled and reads as filler rather than earning its place.

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 simple paginated list tool this is thin: with no output schema, no annotations, and 17 siblings including list_genomes, the description leaves the agent unable to disambiguate scope or predict what comes back.

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 100% for the single 'page' parameter, so the schema already documents it fully. The description adds no parameter meaning, which meets the baseline for high-coverage schemas.

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 verb 'Retrieve a list' and resource 'type genomes' are identifiable, but the qualifier 'from validly published names and their corresponding names' is awkward and doesn't explain what a 'type genome' is. With a sibling named list_genomes, the description never establishes how this tool differs from it.

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 indication of when to use this tool versus the obvious alternative list_genomes, nor any prerequisites or context for when type genomes are relevant. The agent must infer the distinction from the name alone.

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

search_seqcodeB

Search the SeqCode Registry for names, genomes, publications, authors, or subjects. Returns a list of matching items with id, name, url, and api_url for each result. Use the specific 'get_*' tools for detailed information about individual results.

ParametersJSON Schema
NameRequiredDescriptionDefault
whatNoWhat to search for. Default: 'names'.names
queryYesThe search query string.

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It helpfully discloses the return shape (id, name, url, api_url), which partially offsets the missing output schema, but says nothing about pagination, result limits, total counts, or empty-result behavior — all material for a search tool.

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?

Three short sentences, front-loaded with the core action and cleanly separated into purpose, return shape, and alternative-tool guidance. Slightly expensive on the enumeration of entity types that duplicates the schema enum, but no sentence is wasted.

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 two-parameter search tool with no output schema, the description covers purpose and result fields adequately. It is missing pagination/limit semantics and any distinction from the list_* tools, so an agent can invoke it but cannot confidently predict result volume or scope.

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 100%, so both `what` (with its enum and default) and `query` are already documented by the schema. The description's enumeration of the five search targets merely restates the enum and adds no syntax, matching, or formatting guidance for `query`. Baseline 3 applies when the schema does the heavy lifting.

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 (Search) and resource (SeqCode Registry) and enumerates the five entity types, mirroring the `what` enum. It routes the agent away from `get_*` tools, but does not distinguish itself from the many `list_*` siblings (list_names, list_genomes, list_publications, etc.), leaving a real ambiguity for an agent at selection time.

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 final sentence gives one clear when-to-use rule: prefer get_* for details on an individual result. However, it never explains when to use search with a query versus browsing via the list_* siblings, which is the more likely selection conflict given the sibling set. Usage is implied rather than fully resolved.

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. 18 tool updatesv0.1.0
    • First observedcheck_api_status
    • First observedget_author
    • First observedget_genome
    • First observedget_journal
    • First observedget_name
    • First observedget_publication
    • First observedget_register
    • First observedget_strain
    • First observedget_subject
    • First observedlist_authors
    • First observedlist_genomes
    • First observedlist_journals
    • First observedlist_names
    • First observedlist_publications
    • First observedlist_registers
    • First observedlist_subjects
    • First observedlist_type_genomes
    • First observedsearch_seqcode

TDQS

B3.4/5.0

Scored across 18 tools

Disambiguation4/5

The list_/get_ pairs for each entity are clearly distinct, and the search tool is explicitly scoped as cross-entity text search. Minor overlap exists because search_seqcode can return names, genomes, etc. that also have dedicated list tools, and list_type_genomes is a specialized subset of list_genomes/list_names, but descriptions clarify the boundaries.

Naming Consistency5/5

All tools follow a predictable snake_case verb_noun pattern: list_publications/get_publication, list_names/get_name, etc. The few non-paired tools (list_type_genomes, search_seqcode, check_api_status) still conform to the same style. No mixed conventions or confusing variations.

Tool Count4/5

With 18 tools, the set is slightly above the ideal 3-15 range, but the count is justified by the registry's breadth: eight entity types each need a list and get operation, plus search and status checks. No tool feels redundant or purely filler.

Completeness4/5

The server provides comprehensive read-only coverage for names, genomes, publications, authors, journals, subjects, and registers via list+get pairs. However, strains only have get_strain without a list_strains, limiting discoverability, and type genomes lack a dedicated get tool (though get_genome covers them). These are minor gaps for a read-only registry API.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to resolve scientific names to Taxonomic Serial Numbers, traverse complete taxonomic lineages from kingdom to children, and retrieve vernacular names in all languages from an authoritative US-government taxonomy.
    9 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to search and retrieve compounds, drugs, diseases, pathways, genes, enzymes, glycans, modules, and KO entries; fetch full parsed flat-file entries by ID; and list database contents through keyless REST tools.
    9 npm
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI assistants to search and retrieve global biodiversity data — species taxonomy, occurrence records, datasets, map tiles, literature citations and controlled vocabularies — through a standard tool interface. It exposes the source's API as dozens of typed, paginated tools that any MCP client can call.
    58
    51 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables LLM-powered applications to look up bacterial and archaeal taxonomy, search genomes, browse and navigate the taxonomic tree, and compare genomes or find phylogenetic paths between taxa. It works out of the box with a built-in reference dataset covering major phyla and can be pointed at full Genome Taxonomy Database TSV files for comprehensive queries.
    12
    1
    MIT