@rotifer/mcp-server
Provides OAuth login integration with GitHub for authenticating users of the Rotifer protocol.
Provides OAuth login integration with GitLab for authenticating users of the Rotifer protocol.
Uses Supabase as the backend for the Rotifer Cloud API, enabling storage and retrieval of gene data, agent registries, and user profiles.
@rotifer/mcp-server
Build, compose, and run AI agents — directly from your IDE.
Search genes, create agents with composable genomes, run pipelines in a WASM sandbox, and compete in the Arena. Zero config. Works with Cursor, Claude Desktop, Windsurf, and any MCP-compatible client.
Quick Start
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"rotifer": {
"command": "npx",
"args": ["@rotifer/mcp-server"]
}
}
}Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"rotifer": {
"command": "npx",
"args": ["@rotifer/mcp-server"]
}
}
}Windsurf / Other MCP Clients
Use the same npx command — any client that supports MCP stdio transport will work.
Related MCP server: aiskillstore
What Can It Do?
Create and run an agent in one conversation
You: "Build me an agent for code security scanning"
AI: → create_agent({ agent_name: "sec-bot", gene_ids: ["security-scanner", "genesis-code-format"],
composition: "Seq" })
Agent 'sec-bot' created with 2-gene Seq genome.
You: "Run it on my project"
AI: → agent_run({ agent_name: "sec-bot", input: "{\"path\":\"./src\"}" })
Pipeline complete — 3 findings, 0 critical.Search, compare, and compose genes
You: "Find the best gene for web search"
AI: → search_genes({ query: "web search" })
Found 8 genes. Top match: genesis-web-search (F(g) = 0.87, Native)
You: "Compare it against the lite version"
AI: → compare_genes({ gene_ids: ["...", "..."] })
Side-by-side: success rate, latency, fitness breakdownFull gene lifecycle from your IDE
You: "Wrap my function as a gene"
AI: → wrap_gene({ gene_name: "my-search", domain: "search.web", fidelity: "Wrapped" })
→ compile_gene({ gene_name: "my-search" })
→ test_gene({ gene_name: "my-search", compliance: true })
→ publish_gene({ gene_name: "my-search", changelog: "Initial release" })Tools (31)
Discovery & Analytics
Tool | Description | Key Parameters |
| Search the Gene ecosystem by name, domain, or description |
|
| Get detailed info about a Gene (phenotype, fitness, metadata) |
|
| Arena rankings for a domain, sorted by F(g) fitness |
|
| Side-by-side fitness comparison of 2–5 Genes |
|
| Download statistics (total, 7d, 30d, 90d) |
|
| Creator reputation leaderboard |
|
| Creator public profile and reputation |
|
| Detailed reputation breakdown (Arena, Usage, Stability) |
|
| Version history chain with changelogs |
|
| Suggest matching domains from the registry |
|
Local Workspace
Tool | Description | Key Parameters |
| Scan local workspace for installed Genes |
|
| List Agents in the local workspace |
|
Gene Lifecycle
Tool | Description | Key Parameters |
| Initialize a new Gene project with starter files |
|
| Scan for candidate functions or SKILL.md files |
|
| Wrap a function/skill as a Gene |
|
| Test a Gene (schema validation + sandbox) |
|
| Compile a Gene to WASM IR |
|
| Check the local TypeScript→WASM toolchain (esbuild / javy) and report what is missing — read-only; use when |
|
| Execute a local Gene |
|
| Publish to Rotifer Cloud |
|
| Install a Gene from Cloud Registry. |
|
| Undo the last overwrite of a local Gene; call with no name to list what can be undone |
|
| V(g) security scan — static analysis for Gene/Skill code safety |
|
| Measure a local Gene in the sandbox and submit the measurement to the Arena. Scores are produced by running the Gene, never supplied by the caller |
|
Agent Composition
Tool | Description | Key Parameters |
| Create an Agent composing multiple Genes |
|
| Run a local Agent by name |
|
Authentication & Analytics
Tool | Description | Key Parameters |
| Check login status | — |
| OAuth login (GitHub/GitLab) |
|
| Clear credentials | — |
| MCP call analytics |
|
| Current user's reputation | — |
Resources (7)
MCP Resources let AI clients reference Rotifer data as context:
URI Template | Description |
| Gene download statistics |
| Gene detail + phenotype |
| Creator profile + reputation |
| Top creators by reputation score |
| Local Gene inventory |
| Local Agent registry |
| MCP Server version and update availability |
Each resource returns what the tool of the same job returns, so a declared tool
set covers both: with --tools=evolve, rotifer://genes/{gene_id}/stats,
rotifer://developers/{username} and rotifer://leaderboard disappear from the
listing and are refused if read directly, because get_gene_stats,
get_developer_profile and get_leaderboard were not asked for.
rotifer://version always answers — it is the server describing itself, not a
capability. Before 0.16.0 these were reachable whatever the tool set said.
Prompts (4)
MCP Prompts give AI clients guided workflows for common tasks:
Prompt | Description | Key Arguments |
| Interactive agent creation — pick a template and run immediately |
|
| Understand Rotifer Protocol — genes, agents, Arena, fidelity model | — |
| Design an Agent — task-driven gene search + composition planning |
|
| Arena evaluation — submit a gene, compare with competitors |
|
Try asking your AI: "Use the rotifer-hello prompt to build me an agent" or "Use rotifer-architect to design an agent for document Q&A".
Architecture
┌─────────────────────────────────────────────────┐
│ AI IDE (Cursor / Claude / Windsurf) │
│ │
│ "Find genes for code formatting" │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ MCP Client │ │
│ │ (stdio transport) │ │
│ └────────┬────────────┘ │
└───────────┼─────────────────────────────────────┘
│ MCP Protocol
▼
┌─────────────────────────────────────────────────┐
│ @rotifer/mcp-server │
│ │
│ 30 Tools 7 Resources 4 Prompts Local Scanner│
│ ┌──────────┐ ┌───────────┐ ┌────────────┐ │
│ │ discover │ │rotifer:// │ │ ./genes/ │ │
│ │ lifecycle│ │genes/stats│ │ phenotype │ │
│ │ agents │ │developers │ │ agents │ │
│ │ auth │ │leaderboard│ └────────────┘ │
│ └────┬─────┘ └─────┬─────┘ │ │
└───────┼──────────────┼────────────────┼─────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────┐
│ Rotifer Cloud API Local File System │
│ (Supabase) (genes/, .rotifer/) │
└─────────────────────────────────────────────────┘Configuration
Zero-config by default — connects to the public Rotifer Cloud API.
To use a custom endpoint, create ~/.rotifer/cloud.json:
{
"endpoint": "https://your-supabase-instance.supabase.co",
"anonKey": "your-anon-key"
}Or set environment variables:
ROTIFER_CLOUD_ENDPOINT=https://your-instance.supabase.co
ROTIFER_CLOUD_ANON_KEY=your-anon-keyChoosing which tools to expose
All thirty-one tools are available by default. ROTIFER_MCP_TOOLS narrows that
to what a given integration actually needs — useful when the server is attached
to an assistant that should not be able to publish or log in on your behalf:
npx @rotifer/mcp-server --tools=evolve # the rank-and-swap preset (10 tools)
npx @rotifer/mcp-server --tools=readonly # nothing that writes (14 tools)
ROTIFER_MCP_TOOLS=search_genes,get_gene_detail # an exact list
ROTIFER_MCP_TOOLS=evolve,vg_scan # a preset plus oneThe flag and the variable do the same thing, and the flag wins if both are set. Both exist because callers differ in what they can reach: a shell user sets the variable, while something launching this server from a manifest controls only the command line.
A declared set covers the whole surface, not just tools/list. Tools outside it
are refused when called by name; resources that duplicate an
excluded tool are dropped from the listing and refused when read; and the
sandbox escape hatches below stay off unless separately declared. A restriction
with an unlisted way around it is not a restriction.
Tools outside the set disappear from listTools and are refused if called
anyway. The refusal says how to add the tool back and, where one exists, the
rotifer CLI command that does the same job — so a narrowed set is a boundary
you can see and cross deliberately, not a dead end.
Leave it unset and nothing changes.
Switching off the sandbox
agent_run and run_gene take no_sandbox, and run_gene also takes
trust_unsigned — options that run Gene code as plain Node.js instead of inside
the WASM sandbox. Narrowing the tool set would mean little if a tool inside the
narrowed set could still do that, so these are refused unless declared at
launch:
npx @rotifer/mcp-server --allow=no-sandbox
npx @rotifer/mcp-server --allow=no-sandbox,trust-unsigned
ROTIFER_MCP_ALLOW=no-sandbox # same thingNothing is removed. The option moves from "any caller can set it" to "someone declared it at launch", and you can always do it yourself:
rotifer agent run <name> --no-sandbox
rotifer run <gene> --trust-unsignedWhat changes is that an assistant can no longer decide to unsandbox on its own.
Passing no_sandbox: false is asking for the safe behaviour and is never
refused.
Undoing an install
install_gene with force used to overwrite a Gene with no way back. It now
moves the old copy into <genes>/.snapshots/ first, and rollback_gene puts it
back:
rollback_gene {} → what can be rolled back
rollback_gene { gene_name: "formatter" } → restore the copy that was replacedOne snapshot per Gene: the next overwrite of that Gene supersedes it, and a
rollback consumes it. This undoes the last upgrade rather than keeping a
history — list_gene_versions already answers what versions exist upstream.
Keeping the server up to date
The server has always told you when it was behind — a line on stderr at startup,
once a day. self-update is the other half:
rotifer-mcp-server self-update # check, verify, install
rotifer-mcp-server self-update --rollback # back to the version it replacedIt refuses any version npm has no provenance
attestation for — this
package publishes from CI with --provenance, so an unattested build is not one
this project released.
Two things worth knowing:
A running server keeps serving the old code. Installing replaces files on disk; it does not replace the process your editor is already talking to. Restart your MCP host afterwards.
If you launch through
npx, there is nothing to update. An unpinnednpx @rotifer/mcp-serverre-resolves the latest published version on every run, soself-updatesays so and stops rather than installing a global copy that would shadow it.
This is a command you run, not a tool the model can call. Updating means a global install, and a tool could not even report the result honestly — the model would say "updated" while still being served by the old process.
Usage reporting
When you are signed in, each tool call reports a usage record to Rotifer
Cloud: the tool's name, the Gene id it acted on, whether it succeeded, how long
it took, and your user id. That is what get_mcp_stats reads back. Running a
Gene also records the invocation, which the protocol's anti-manipulation
metrics depend on.
It does not send the arguments you pass, the contents of any file, your environment variables, or your local configuration.
Signed out, no usage record is sent. One request does go out either way: installing a Gene bumps that Gene's public install counter. It carries the Gene id and nothing else — no user id, no session, no arguments — and it is how the Arena counts installs. Until 0.15.1 nothing stopped it, and this section said "signed out, nothing is reported", which was not true of an install.
ROTIFER_TELEMETRY=0 now stops all three:
ROTIFER_TELEMETRY=0 # also accepts false / offThe three are logMcpCall, logGeneInvocation and the track_download call
inside installGene, all in src/cloud.ts — short enough to
read in full. Nothing else here reports anything on its own: every other
outbound call in this server is a tool you invoked doing its job — a query, a
publish, a sign-in — plus the WASM artifact download and one npm version check
per day.
Requirements
Node.js >= 20
Pair with the CLI
This MCP server works best alongside the Rotifer CLI. The CLI provides the local runtime (WASM sandbox, Arena engine, IR compiler) while the MCP server exposes it all to your AI assistant:
npm install -g @rotifer/playground
rotifer init my-agent && cd my-agent
rotifer hello --template quality-advisor # your first Agent workspace in secondsLinks
Rotifer Protocol — Main site
MCP Setup Guide — Step-by-step setup
Gene Marketplace — Browse and discover Genes
CLI Playground — Build and test Genes locally
Protocol Specification — Formal spec
License
Apache-2.0
Available Tools
31 toolsagent_runA
Run a local Agent by name. Executes via the Rotifer CLI (rotifer agent run ). The Agent must exist in .rotifer/agents/. Returns stdout/stderr from the execution.
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | Input data to pass to the agent (JSON string) | |
| verbose | No | Show intermediate results for each gene step | |
| agent_name | Yes | Agent name (as given during create_agent) | |
| no_sandbox | No | Force Node.js execution, skip WASM sandbox. Refused unless the server was launched with --allow=no-sandbox. | |
| project_root | No | Project root path |
TDQS
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 the CLI invocation mechanism, the required agent location, and that stdout/stderr are returned, but it omits execution side effects, permission requirements, timeout behavior, and sandbox implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and followed by execution details and return behavior. No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for basic invocation: it names the required artifact, execution path, and returned streams. With no annotations and no output schema, it should say more about failure modes, sandbox behavior, and expected side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all five parameters. The description clarifies the required agent_name and return streams but adds no semantics for input, verbose, no_sandbox, or project_root beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: run a local Agent by name. It names the execution mechanism, CLI command, and the required on-disk location, distinguishing it from gene-oriented siblings like run_gene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context and a prerequisite: the Agent must exist in .rotifer/agents/. However, it does not explicitly name alternatives or state when not to use this tool versus run_gene or test_gene.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arena_submitA
Measure a local Gene in the sandbox and submit the measured result to the Arena. Requires authentication (rotifer login) and a Gene that exists locally — use list_local_genes to see them, install_gene to fetch one. The fitness scores are produced by running the Gene, not supplied by the caller: passing fitness_value, safety_score, success_rate, latency_score or resource_efficiency is refused. Runs rotifer arena submit <gene> --cloud.
| Name | Required | Description | Default |
|---|---|---|---|
| gene_name | Yes | Local Gene name to measure and submit (see list_local_genes) | |
| project_root | No | Project root path (defaults to cwd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does well: it discloses the auth requirement, that measurement happens server-side by running the Gene rather than being caller-supplied, that certain arguments are rejected, and even the underlying CLI invocation. It stops short of describing what is returned or whether a submission is reversible/overwrites prior results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and scope, then prerequisites, then the refusal rule. Slightly dense but every clause carries information; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-param tool with no annotations and no output schema, the description covers purpose, prerequisites, alternatives, and the key behavioral constraint. The only real gap is what a successful submission yields (score? URL?), which the agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so gene_name and project_root are already documented (baseline 3). The description adds genuine value by enumerating rejected pseudo-parameters (fitness_value, safety_score, success_rate, latency_score, resource_efficiency), which tells the agent the measurement inputs are off-limits despite not appearing in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (measure, submit) and resource (local Gene -> Arena), which no sibling tool covers. An agent can distinguish this from run_gene, test_gene, or publish_gene without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the prerequisites (rotifer login, Gene existing locally) and routes to named siblings: list_local_genes to discover, install_gene to fetch. Also states a negative condition — supplying fitness_value and friends is refused — so the agent knows what not to do.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auth_statusA
Check current authentication status. Returns whether the user is logged in, their username, provider, and how many minutes until the token expires.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 the shape of what comes back (logged-in flag, username, provider, minutes until token expiry), which is genuinely useful, but it never states that the call is read-only/side-effect free or whether it requires an existing token.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose first and payload second, with no filler or repetition. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema in play, the description adequately documents the return values for a zero-argument status probe. It could add the read-only/auth-free note that annotations would normally supply, but otherwise nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. No input semantics need explaining and the description correctly does not fabricate any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Check current authentication status') and the sibling set makes the contrast with login/logout self-evident. It is clear, though it never explicitly names login/logout as the alternatives it is distinct from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus login or logout, or of any prerequisite (e.g. call before an authenticated operation to decide whether to re-authenticate). Usage must be inferred 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.
compare_genesA
Compare two or more Genes by their F(g) fitness metrics. Returns side-by-side fitness breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| gene_ids | Yes | Array of Gene UUIDs to compare (2-5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the computational basis (F(g) fitness) and the output shape (side-by-side fitness breakdown), which is genuine context, but it says nothing about read-only semantics, permission/auth needs, limits, or error behavior when an ID is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the purpose and the return value are front-loaded and nothing is repeated from the schema. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-oriented comparison tool this is close to sufficient: the description covers what is compared, on what metric, and what comes back. It stops short of noting edge behavior (e.g., invalid/duplicate IDs or whether an aggregate winner is returned), which is a minor gap given the complete schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents gene_ids as an array of 2-5 Gene UUIDs. The description's 'two or more Genes' restates the minimum without adding format, ordering, or constraint detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource (compare Genes) and names the comparison basis (F(g) fitness metrics), so the operation is unambiguous. It does not, however, distinguish itself from nearby siblings like get_gene_detail, get_gene_stats, or get_arena_rankings, leaving the agent to infer why comparison is preferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Compare two or more Genes' signals the multi-gene case, which weakly differentiates it from single-gene tools such as get_gene_detail. There is no explicit when-to-use, when-not-to-use, or named alternative, so the agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compile_geneA
Compile a local Gene to WASM via the Rotifer CLI (rotifer compile). The Gene must exist in the local genes/ directory. Returns compilation output.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Force compilation mode (auto-detected by default) | |
| check | No | Validate only, don't produce artifacts (default: false) | |
| gene_name | Yes | Gene name (directory name under genes/) | |
| wasm_path | No | Path to a pre-compiled .wasm file to wrap as IR | |
| project_root | No | Project root path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It discloses the CLI invocation and the local-directory prerequisite, but says nothing about side effects (artifacts written to disk), where they land, failure behavior for a missing Gene, or the meaning of 'Returns compilation output'. Partial coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the purpose front-loaded, the prerequisite second, and the return noted last. Every sentence carries information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter mutation tool with no annotations and no output schema, the description is adequate but thin. It omits artifact side effects, error modes, and any expansion of what the compilation output contains, leaving the agent to infer behavior from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters including the lang enum and check flag are already documented in the schema. The description adds only the required gene_name precondition, which is a marginal gain over structured data. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Compile') and resource ('a local Gene to WASM') plus the mechanism ('via the Rotifer CLI'), so an agent can distinguish it from run_gene, test_gene, and install_gene. It never explicitly names a sibling it is not, which keeps it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one clear precondition ('The Gene must exist in the local genes/ directory') but offers no guidance on when to reach for this versus test_gene, run_gene, or wrap_gene, nor when-not to use it. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_agentA
Create a new Agent by composing one or more local Genes. The Agent is saved to .rotifer/agents/ in the project. Genes must exist locally (wrap them first with wrap_gene).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Domain tag for the agent (e.g. search.web). Metadata only, does not auto-select genes. | |
| gene_ids | Yes | Array of local gene names to compose (at least one required) | |
| strategy | No | Gene selection strategy (default: greedy) | |
| par_merge | No | Merge strategy for Par composition (default: first) | |
| agent_name | Yes | Agent name | |
| composition | No | Composition strategy (default: Seq for multi-gene, Single for one gene) | |
| project_root | No | Project root path (defaults to cwd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses side effects (creates a file under .rotifer/agents/ in the project) and a dependency on local genes. However, it omits overwrite/conflict behavior, permission or auth requirements, and failure modes for a mutation tool with 7 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, followed by persistence location and the precondition. No filler, though the final sentence could be folded into the first for slightly tighter structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no annotations and no output schema, the description covers the primary mechanics and store location but leaves lifecycle questions unanswered: does creating an existing agent name overwrite or error, and what does a successful call return? Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all seven parameters including enums and defaults. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a new Agent') plus the mechanism ('composing one or more local Genes') and the persistence target. It partially differentiates from siblings by naming wrap_gene as a prerequisite, though it does not explicitly contrast with list_local_agents or agent_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear precondition — 'Genes must exist locally' — and an actionable routing hint to use wrap_gene first. There is no explicit when-not guidance or mention of alternatives, but the prerequisite context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
doctorA
Check the local TypeScript→WASM toolchain (esbuild / javy) and report what is missing or misconfigured. Read-only: inspects the environment and changes nothing. Use this when compile_gene fails — a missing or broken toolchain is the most common cause.
| Name | Required | Description | Default |
|---|---|---|---|
| project_root | No | Project root path |
TDQS
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, and it does disclose the key trait: 'Read-only: inspects the environment and changes nothing.' That safety profile is exactly what an agent needs before invoking a tool with no annotation hints. It stops short of describing the report's shape, but the core behavior is covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences in a logical order: what it checks, its safety property, and the trigger for using it. No sentence is filler, and the trigger routing is front-loaded in the last sentence where it is most actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 must stand alone, and it adequately covers purpose, read-only nature, and invocation trigger. A brief hint about the report's content or exit signaling would close the remaining gap, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter, project_root, and schema description coverage is 100%, so the schema already documents it fully. The description does not add format or defaulting details beyond the schema, which is the expected baseline 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (check the TypeScript→WASM toolchain, esbuild/javy) plus the exact output (what is missing or misconfigured). An agent can distinguish this diagnostic tool from compile_gene and the other gene-management siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names an explicit trigger and the sibling context: 'Use this when compile_gene fails — a missing or broken toolchain is the most common cause.' This gives a clear when-to-use rule with the rationale, though it offers no when-not condition or alternative diagnostic path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_arena_rankingsA
Get Arena rankings for a domain. Each row carries a tier — verified (measured in a sandbox, with enough independent callers to stand), under_evaluation (measured, not yet corroborated), not_evaluated (disqualified, or a number that was estimated rather than measured) — and rank is null wherever the tier grants no rank. Prefer verified when picking a Gene for a capability; an estimated or disqualified number is not a measurement of anything. Also returns F(g) before and after the fidelity discount, safety, success_rate, latency, resource_efficiency, sample size and unique callers.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| domain | No | Capability domain (e.g. search.web) | |
| per_page | No | Results per page (default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It thoroughly explains the tier system, the meaning of a null rank, and the metrics returned (F(g) before/after fidelity discount, safety, success_rate, latency, resource_efficiency, sample size, unique callers). It does not mention pagination behavior or authentication requirements, but for a read-only ranking tool the disclosure is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with its purpose and then uses a compact parenthetical to define the tiers. Every sentence contributes useful context about tier meanings or returned fields. It is dense without being bloated, though the tier definitions make it longer than a minimal one-liner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema or annotations, so the description must explain return values, which it does well by listing the tier semantics and metric fields. It omits pagination details and does not clarify that the domain parameter is optional despite the opening phrase 'for a domain,' which is a minor gap. Overall it is complete enough for an agent to understand and use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents page, domain, and per_page. The description reinforces that results are domain-scoped but adds no syntax or default details beyond what the schema provides. A baseline 3 is appropriate 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get Arena rankings for a domain.' This clearly distinguishes the tool from a general leaderboard or gene search by scoping to a domain. It does not explicitly name a sibling tool as an alternative, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by advising to 'Prefer `verified` when picking a Gene for a capability,' which helps an agent interpret the results. However, it does not say when to call this tool versus siblings like get_leaderboard or search_genes, nor does it mention any exclusions. The guidance is useful but indirect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_developer_profileB
Get a creator's public profile and reputation data by username.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Creator username |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It does convey that the profile is 'public', implying no authentication is required, but says nothing about what happens for an unknown username, rate limits, or what 'reputation data' actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler that states resource and lookup key immediately. It is efficient, though bordering on terse for a tool with no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 this is minimally adequate, and 'profile and reputation data' hints at the return shape. However, with no output schema and no annotations, the description leaves the agent guessing about returned fields, error cases, and auth requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented as 'Creator username', so the schema does the heavy lifting. The description's 'by username' adds no syntax or format detail beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('creator's public profile and reputation data') with the lookup key ('by username'). The 'by username' phrasing implicitly separates it from the sibling get_my_reputation, but it never names that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the 'by username' qualifier suggests use this when you want someone else's profile rather than your own, sitting alongside siblings like get_my_reputation and get_gene_reputation. No explicit when-to-use or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gene_detailA
Get detailed information about a specific Gene by its ID or content_hash, including phenotype, fitness, and metadata. At least one of gene_id or content_hash must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| gene_id | No | Gene UUID (required if content_hash not provided) | |
| content_hash | No | SHA-256 content hash of the gene's phenotype (alternative to gene_id) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. "Get" implies a non-mutating read, and the either/or input requirement is disclosed, but there is no mention of permissions, error behavior for unknown IDs, or result size. Adequate for a simple getter, but thin given 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and followed by the input constraint. Every clause earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 full schema coverage, the description covers purpose, returned fields, and the input precondition. The absence of an output schema is largely compensated by naming phenotype, fitness, and metadata, though not-found behavior and precedence between the two identifiers remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the conditional-requirement note inside the schema itself. The description restates the either/or rule but adds no format hints, validation behavior, or precedence when both values are supplied. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get detailed information about a specific Gene") and enumerates the returned content (phenotype, fitness, metadata). It is clearly a detail-fetch tool rather than a list/search tool, though it never names the sibling tools (search_genes, list_local_genes) that would serve the discovery use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The constraint "at least one of gene_id or content_hash must be provided" gives the caller a concrete precondition. However, there is no guidance on when to use this versus search_genes or list_local_genes, and no note about what happens if the ID does not resolve. Usage is implied rather than fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gene_reputationB
Get detailed reputation breakdown for a Gene (Arena, Usage, Stability scores).
| Name | Required | Description | Default |
|---|---|---|---|
| gene_id | Yes | Gene ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' implies a read-only lookup and the description usefully discloses the returned score dimensions, but it says nothing about authentication requirements, whether reputation is scoped to a user or community, or any caching/rate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the resource and the returned components front-loaded. No wasted words, though it is arguably slightly under-specified rather than truly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 this is close to adequate, and listing the score components partially compensates for the absent output schema. But with no annotations and no output schema, the description should say more about the return shape or any access constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (gene_id) with 100% schema coverage, so the schema already documents it. The description adds nothing about the format or source of the ID, so the baseline of 3 for high schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get detailed reputation breakdown for a Gene') and enumerates the components returned (Arena, Usage, Stability scores). It does not, however, distinguish itself from close siblings like get_gene_stats, get_gene_detail, or get_my_reputation, so an agent must infer which reputation/gene-stats tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no mention of alternatives despite several overlapping siblings (get_gene_stats, get_gene_detail, get_my_reputation, compare_genes). The agent gets no signal about when this tool is preferred over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gene_statsB
Get download statistics for a Gene, broken down by time period (total, last 7 days, 30 days, 90 days).
| Name | Required | Description | Default |
|---|---|---|---|
| gene_id | Yes | Gene UUID |
TDQS
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 that results are broken down into total, 7-day, 30-day, and 90-day periods, but it does not state read-only behavior, authentication needs, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence front-loads the action and resource, then adds the useful period breakdown. There is no redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with 100% schema coverage, the description supplies the key return-value context by naming the time-period breakdown. It does not cover output format or safety characteristics, but no output schema exists and the operation is a straightforward get.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the single gene_id parameter is documented as 'Gene UUID'. The description refers to 'a Gene' but adds no additional semantics beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns download statistics for a Gene, broken down by time period. It is clear, though it does not explicitly distinguish itself from sibling tools such as get_gene_detail or get_gene_reputation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, nor any prerequisites or exclusions. The breakdown of periods implies what it returns, but not when an agent should choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_leaderboardB
Get the creator reputation leaderboard. Shows top creators ranked by reputation score, including their published gene count, total downloads, and arena wins.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of entries to return (default 20, max 100) |
TDQS
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 discloses the returned fields and ranking basis, and 'Get' implies a read-only operation, but it does not mention permissions, rate limits, or whether the result is paginated beyond the limit parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler. The core purpose is front-loaded, and the second sentence efficiently enumerates the relevant metrics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no output schema, the description explains what the leaderboard contains and the fields returned alongside the ranking. It does not explain authentication or error behavior, but those gaps are minor for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single limit parameter is already documented with its default and maximum. The description adds no additional meaning about the parameter, and the baseline of 3 is appropriate when the schema fully covers parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('creator reputation leaderboard'), and explains what the leaderboard shows (top creators ranked by reputation score with associated metrics). It is clear but does not explicitly distinguish this tool from siblings like get_arena_rankings or get_my_reputation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 exclusions, and no mention of alternative tools. It implies the tool is for retrieving a reputation leaderboard, but an agent must infer when this is preferable to get_arena_rankings or get_my_reputation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mcp_statsA
Get MCP Server call analytics for a given time period. Returns total calls, success rate, average latency, top tools, and top genes. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Time window in days (default 7) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It does disclose one important trait ('Requires authentication') and enumerates the returned metrics, which is real behavioral value. However, it omits permissions scope beyond auth, rate limits, and whether the returned window is inclusive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the purpose and followed by the return summary and auth note. No filler, padding, or restated name/title content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, enumerating total calls, success rate, average latency, top tools, and top genes is genuinely useful return-value coverage, and the auth requirement is stated. A simple one-param read tool is adequately described, though permissions/rate-limit context is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter (days) with 100% schema description coverage, so the schema already documents the default of 7. The description adds no format or boundary detail (e.g., max days) beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('MCP Server call analytics') with a scope qualifier ('for a given time period'). It is distinguishable from sibling tools like get_gene_stats or get_arena_rankings by naming MCP server analytics explicitly, though it does not call out those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource ('call analytics'), but there is no explicit when-to-use guidance, no conditions, and no named alternative among the many get_* siblings. An agent can infer the context but must guess at boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_reputationB
Get the current logged-in creator's reputation and stats. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden but only discloses the authentication requirement. It does not describe read-only nature, rate limits, error behavior, or what happens if unauthenticated. The auth disclosure is useful but incomplete 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core purpose followed by the authentication prerequisite. Every sentence earns its place and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read with no parameters, no output schema, and no annotations, the description covers the minimum. However, it does not clarify what 'reputation and stats' returns, and given similar siblings like get_gene_reputation and get_developer_profile, an agent might need more context to choose confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so parameter semantics are trivially satisfied. Per the rubric, a zero-parameter tool receives a baseline of 4; the description has nothing to compensate for and does not mislead about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (reputation and stats) scoped to the current logged-in creator. This distinguishes it from siblings like get_gene_reputation and get_developer_profile by audience, though it does not explicitly name those alternatives. The purpose is clear but the term 'stats' is somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only states a prerequisite ('Requires authentication') and gives no guidance on when to use this tool versus alternatives like get_gene_reputation or get_developer_profile. There is no when-to-use or when-not-to-use information, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
init_geneB
Initialize a new Rotifer Gene project. Creates a directory with phenotype.json template and starter files. Supports Wrapped, Hybrid, and Native fidelity types.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Default gene domain (default: general) | |
| fidelity | No | Gene fidelity type (default: Wrapped) | |
| gene_name | Yes | Gene name (will create genes/<gene_name>/ directory) | |
| no_genesis | No | Skip genesis genes installation (default: false) | |
| project_root | No | Project root path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It usefully discloses the creation side effect (directory, phenotype.json template, starter files), but it does not mention permissions, overwrite behavior, authentication needs, or failure modes for a filesystem-mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core action and followed by concrete details about output and fidelity options. It is efficient and wastes little space, though the final sentence is somewhat parenthetical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a project-creation tool with no annotations and no output schema, the description covers the basic action and generated files, but omits important operational context such as authentication requirements, overwrite behavior, and default project location. It is minimally adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the input schema. The description only repeats the fidelity types and creation target, adding no syntax, constraints, or meaning beyond what the schema provides; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Initialize a new Rotifer Gene project.' It also explains what gets created (directory with phenotype.json template and starter files) and names the supported fidelity types. It does not explicitly differentiate from siblings such as create_agent or install_gene, but the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The wording implies usage for creating a new gene project, but there is no explicit when-to-use guidance, no when-not-to-use condition, and no named alternatives among the many sibling tools. Usage must be inferred from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
install_geneA
Install a Gene from the Rotifer Cloud Registry into the local project. Downloads phenotype, metadata, and the compiled WASM artifact (verified against declared size and sha256) when the gene has one. Requires a valid gene_id from search_genes or get_gene_detail.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Overwrite if gene already exists locally (default: false). The replaced copy is snapshotted first and can be restored with rollback_gene. | |
| gene_id | Yes | Gene UUID to install | |
| project_root | No | Project root path (defaults to cwd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does useful work: it discloses that phenotype, metadata, and a compiled WASM artifact are downloaded, and that the artifact is verified against declared size and sha256. It leaves gaps on auth requirements and failure behavior when verification fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences: the core action and its source lead, the payload/verification detail follows, and the prerequisite closes. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations, so the description must stand alone; it covers purpose, source, payload, integrity verification, and input prerequisite. It omits auth/network requirements and the success/failure response shape, which an install-from-remote tool arguably should mention.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 gene_id, force, and project_root (including the rollback_gene snapshot behavior). The description only adds where a valid gene_id comes from, which the schema does not say.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Install) and resource (a Gene from the Rotifer Cloud Registry) with explicit scope (into the local project), and distinguishes itself from the read-only siblings like search_genes and get_gene_detail that only retrieve metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the prerequisite ('Requires a valid gene_id from search_genes or get_gene_detail'), routing the agent to the right upstream tools. It does not, however, state when NOT to use it or how it relates to compile_gene/run_gene in a workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gene_versionsA
List the version history chain of a Gene by creator and name. Returns all published versions in chronological order with changelog entries and previous_version_id links.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | Gene creator's username | |
| gene_name | Yes | Gene name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does disclose useful behavior: results are limited to published versions, ordered chronologically, and include changelog entries plus previous_version_id links. It still does not state the read-only nature, pagination, or auth requirements, but the return-shape disclosure is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the scope constraint and the return contents are both front-loaded and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read listing with no output schema, the description supplies enough about return contents (ordering, changelog, version links) to call and interpret it. Minor gaps around pagination and permissions keep it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters fully documented as the creator's username and the gene name, so the schema does the heavy lifting. The phrase 'by creator and name' merely echoes that mapping and adds no new syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (version history chain of a Gene), scoped by creator and name. This clearly separates it from mutating siblings like rollback_gene or publish_gene, though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'version history chain' but the description offers no explicit when-to-use guidance, no conditions, and no pointer to related tools such as get_gene_detail or rollback_gene. An agent must infer the scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_local_agentsA
List Agents registered in the local project workspace. Returns each Agent's name, state, genome composition, strategy, and reputation. Agents are local constructs that compose multiple Genes into pipelines.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Filter by agent state (e.g. 'Active', 'Inactive') | |
| project_root | No | Project root path (defaults to current working directory) |
TDQS
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 partially compensates by enumerating the returned fields (name, state, genome composition, strategy, reputation), but omits auth requirements, read-only confirmation, pagination, or error behavior. The 'List' verb implies a read, but this is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the core action, then return contents, then a clarifying definition. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields, which is the main gap it needs to fill for a list tool. It remains slightly thin on when to prefer it over sibling listing tools, but nothing critical to invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the 'state' filter and 'project_root' default. The description adds no filter syntax, valid values, or interaction detail beyond that, making 3 the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource: 'List Agents registered in the local project workspace.' It further defines Agents as 'local constructs that compose multiple Genes into pipelines,' which conceptually separates it from list_local_genes. It stops short of explicitly naming the sibling to defer to, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Scoping to the 'local project workspace' implies when this tool applies, but there is no explicit when-to-use statement and no reference to alternatives such as list_local_genes or get_gene_detail. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_local_genesA
List Genes installed in the local project workspace. Scans the genes/ directory for phenotype.json files and returns metadata, compile status, and cloud origin for each Gene.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Filter by domain prefix (e.g. 'search' matches 'search.web') | |
| fidelity | No | Filter by fidelity type | |
| project_root | No | Project root path (defaults to current working directory) |
TDQS
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 does disclose real behavior: it scans the genes/ directory for phenotype.json files and reports metadata, compile status, and cloud origin. That is meaningful beyond the schema, though it omits whether the operation is strictly read-only and whether large workspaces incur cost or latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero redundancy: the first states the scope, the second the mechanism and return contents. Information is front-loaded and nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 closes most of the gap by naming the directory scanned and the categories of data returned (metadata, compile status, cloud origin). Only the absence of any safety/permission note and of edge-case behavior (empty workspace, missing genes/) 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the enum for fidelity and an example for the domain prefix, so the schema already documents all three parameters. The description adds no filtering semantics beyond what the schema provides — the baseline 3 for full coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List Genes installed in the local project workspace') and adds the mechanism (scanning genes/ for phenotype.json). The 'local' scope distinguishes it from the registry-oriented siblings like search_genes, but the description never names an alternative outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'local project workspace' — an agent can infer this is for inspecting what is already installed rather than discovering new Genes. However, there is no explicit when-to-use/when-not statement and no routing to search_genes or list_gene_versions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginA
Log in to Rotifer Cloud. Opens the browser for OAuth authorization (GitHub or GitLab). After the user authorizes in the browser, credentials are saved locally. This must be done before using arena_submit or publish_gene.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | No | Cloud endpoint URL (uses default if omitted) | |
| provider | No | OAuth provider (default: github) |
TDQS
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, and it does meaningful work: it discloses an interactive browser-based OAuth flow and that credentials are persisted locally afterward. It omits edge behaviors such as what happens if already logged in or whether existing credentials are overwritten, keeping it at 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each earning its place: purpose, mechanism, side effect, and prerequisite. The critical prerequisite is stated last but nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description covers the flow, its side effect, and the downstream tools that depend on it. It leaves minor gaps (post-login state, interaction with auth_status/logout), but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (endpoint, provider) are already documented. The description only restates the providers ("GitHub or GitLab") without adding syntax, defaults, or endpoint guidance, so the baseline 3 for high schema coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Log in to Rotifer Cloud") and explains the mechanism (OAuth via GitHub/GitLab). It does not explicitly distinguish itself from the related siblings auth_status or logout, so an agent gets a clear purpose but no direct routing help against those near-neighbors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite: "This must be done before using arena_submit or publish_gene." That tells the agent when this tool is required. It stops short of stating when NOT to call it (e.g., when already authenticated, check auth_status first), so it is clear context without full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logoutA
Log out from Rotifer Cloud. Clears locally saved credentials.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 one meaningful side effect ('clears locally saved credentials'), which tells the agent this is a state-mutating operation, but it leaves open whether server-side tokens are revoked or only local files removed, and whether other sessions are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the action stated first and the side effect second. Nothing is redundant or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema session tool, the description covers both the action and its local effect, which is enough to invoke it correctly. It is slightly thin on post-condition detail (whether credentials are revoked remotely, what state the agent is left in), but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters (schema coverage 100%), so there is nothing for the description to disambiguate. Baseline of 4 applies — no parameter semantics are needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and target ('Log out from Rotifer Cloud') plus the concrete effect ('clears locally saved credentials'), so the agent knows exactly what the tool does. It does not explicitly name its counterpart sibling (login) or contrast with auth_status, so sibling differentiation is only implied 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb itself — an agent will infer it should call this when ending a session or switching accounts — but there is no explicit when/when-not guidance and no mention of the alternative (login) or of auth_status for checking current session state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_geneA
Publish a Gene to Rotifer Cloud Registry (default destination since v0.8.8). Calling this tool = explicit publish consent. Requires authentication (use login tool first). Validates with V(g) security scan (Grade >= B required), uploads, and optionally submits to Arena. Either gene_name or all=true must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Publish all local genes (default: false) | |
| changelog | No | Changelog entry for this version (max 500 chars) | |
| gene_name | No | Gene name to publish (required unless all=true) | |
| skip_arena | No | Skip automatic Arena submission after publish (default: false) | |
| description | No | Gene description | |
| project_root | No | Project root path | |
| skip_security | No | Skip pre-publish security checks (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it declares the default destination, that invoking equals explicit publish consent, the V(g) security gate with a Grade >= B threshold, and default-off flags for Arena submission and security checks. It doesn't describe failure/rollback behavior or the response, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and destination, then prerequisites, then constraints. Every sentence carries information; it is dense but not padded, at roughly three sentences for a tool with many behaviors to disclose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation with no annotations and no output schema, the description covers auth, consent, validation, upload, and optional submission. Missing only return-value/error expectations and rollback implications, which are secondary for an agent deciding whether to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all 7 parameters. The description restates the gene_name/all=true mutual requirement and adds the Grade >= B context around security, but adds little syntax or meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Publish a Gene to Rotifer Cloud Registry') and enumerates the actual steps: validation, upload, optional Arena submission. An agent can distinguish it from nearby siblings like arena_submit, vg_scan, or install_gene.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides prerequisites ('Requires authentication (use login tool first)') and an input precondition ('Either gene_name or all=true must be provided'). It does not explicitly contrast itself with arena_submit, though the optional-submission phrasing implies the relationship.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rollback_geneA
Undo the last overwrite of a locally installed Gene, restoring the copy that install_gene replaced. Call without gene_name to list what can currently be rolled back. A rollback consumes its snapshot: it undoes one step, not a history.
| Name | Required | Description | Default |
|---|---|---|---|
| gene_name | No | Gene to restore. Omit to list what is restorable. | |
| project_root | No | Project root path (defaults to cwd) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose a critical non-obvious trait: 'a rollback consumes its snapshot: it undoes one step, not a history.' That one-way, single-step semantics is exactly the kind of behavior an agent needs. It omits auth/permission requirements and failure behavior, keeping it shy of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and followed by the invocation mode and the key limitation. No filler; each sentence adds distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-optional-parameter mutation tool with no annotations and no output schema, the description covers purpose, listing mode, and the destructive single-step semantics well. It stops short of describing the return/confirmation or error conditions, which leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 both parameters, establishing a baseline of 3. The description's 'call without gene_name' note largely restates the schema's 'Omit to list what is restorable' rather than adding new syntax or format detail, so it does not lift above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a precise verb (undo/restore) and resource (locally installed Gene overwritten by install_gene), and anchors the operation to the sibling install_gene. An agent can distinguish it from install_gene, list_local_genes, and other gene tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states how to invoke it in listing mode ('Call without gene_name to list what can currently be rolled back') and scopes the operation to a single step. It does not, however, name an alternative tool for broader history recovery or state when a rollback should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_geneA
Execute a local Gene via the Rotifer CLI (rotifer run). The Gene must exist in the local genes/ directory. Returns execution output.
| Name | Required | Description | Default |
|---|---|---|---|
| input | No | Input JSON data to pass to the gene | |
| verbose | No | Show detailed execution output (default: false) | |
| gene_name | Yes | Gene name (directory name under genes/) | |
| no_sandbox | No | Run without WASM sandbox, Node.js only (default: false). Refused unless the server was launched with --allow=no-sandbox. | |
| project_root | No | Project root path | |
| trust_unsigned | No | Allow Node.js execution for Cloud-installed genes (default: false). Refused unless the server was launched with --allow=trust-unsigned. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that execution is local and via rotifer run, but only vaguely states 'Returns execution output' and says nothing about side effects, failure modes, or what the sandbox does. The --allow gating described in the schema is useful but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and CLI, then the prerequisite, then the return. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so the description should characterize the return value, and 'Returns execution output' is thin. For a 6-parameter execution tool with sandbox-bypass options and no annotations, more behavioral context is warranted, though the prerequisite and CLI reference cover the essentials.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented in the schema; baseline 3 applies. The description adds no syntax, format, or defaulting detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Execute) and resource (a local Gene via rotifer run), plus a locating constraint (must exist in genes/). It is largely distinguishable from siblings like compile_gene or test_gene, though it never explicitly names what separates it from test_gene or agent_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one prerequisite ('must exist in the local genes/ directory') but no when-to-use/when-not guidance and no routing to alternatives such as test_gene or compile_gene. Usage is implied by the verb rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_genesB
Scan source files for candidate gene functions or local SKILL.md files that can be wrapped as Genes. Returns discovered candidates with metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Path to scan (defaults to current directory) | |
| skills | No | Scan for SKILL.md files instead of source functions (default: false) | |
| skills_path | No | Directory to scan for skills (default: .cursor/skills) | |
| project_root | No | Project root path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. 'Scan' implies a read-only inspection and it discloses that candidates plus metadata are returned, but it never confirms the absence of side effects, file writes, or the depth/cost of the scan. Adequate but incomplete for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and scope, then the return. No filler, though the second sentence is fairly generic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four optional params and no output schema, the description gives only a vague 'candidates with metadata' return summary and omits any behavioral detail. It is minimally sufficient to invoke the tool but leaves the output shape and scan characteristics undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention of 'source files' vs 'SKILL.md files' loosely mirrors the skills boolean and path params, but adds no format or default detail beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Scan) and resource (source files / SKILL.md files) and the outcome (candidate gene functions wrappable as Genes). It is clearly distinguishable from sibling actions like wrap_gene or list_local_genes, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the scan-for-candidates framing suggests a discovery step preceding wrap_gene, but the description never states when to choose this over wrap_gene or list_local_genes, nor any prerequisites. No exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_genesC
Search the Rotifer Gene ecosystem. Returns a list of Genes matching the query, filterable by domain and fidelity.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| sort | No | Sort order (default: relevance when query is given, newest otherwise) | |
| query | No | Free-text search by gene name or description | |
| domain | No | Filter by capability domain (e.g. search.web, code.format) | |
| fidelity | No | Filter by gene fidelity type | |
| per_page | No | Results per page (default 20, max 50) |
TDQS
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 discloses almost nothing behavioral: no indication whether this searches a remote registry vs. local installs, no pagination cost or rate-limit note, no statement of what an empty result means. 'Returns a list of Genes' is the only behavioral fact offered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, with no filler. It is efficient, though truncating the actual return semantics makes the brevity slightly costly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter, unannotated, output-schema-less search tool, the description is thin: it never explains the paginated return (page/per_page exist but the description implies a flat list) or the relevance-vs-newest default sort behavior that the schema hints at. An agent lacks the context to predict result shape or empty-result behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the six parameters (query, domain, fidelity, page, per_page, sort) are fully documented in the schema; baseline 3 applies. The description adds only a restatement of the domain and fidelity filters and no format details, examples, or interaction rules beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Search) and resource (Gene ecosystem) and states the return shape — a list of Genes — plus the two filter axes. It does not, however, distinguish this from sibling tools like list_local_genes or scan_genes, so an agent can't tell which search surface to pick from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 this is preferable to list_local_genes, scan_genes, or get_gene_detail, and no prerequisites. Usage must be inferred 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.
suggest_domainC
Suggest top matching domains from the domain registry based on a description.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | Description to match against domains |
TDQS
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 not disclose that this is a read-only lookup, how many candidates are returned, how 'top matching' is ranked, or what happens when no match is found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb, resource, and input basis all appear immediately. It is efficient, if a little thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup this is minimally adequate. With no output schema, the description could reasonably say what the suggestions look like (names, IDs, scores), and it omits any behavioral notes, leaving gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single well-documented 'description' parameter, so the baseline is 3. The description restates the parameter's role ('based on a description') without adding format, length, or content guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Suggest') and resource ('top matching domains from the domain registry') plus the matching basis ('based on a description'). It is clearly distinguishable from the gene/agent-oriented siblings, though it does not explicitly name any alternative to route away from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, nor on prerequisites or scope limits. The usage context is only implied by 'based on a description'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_geneB
Test a Gene in the sandbox. Validates phenotype schema, runs input/output tests, and checks compilation.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No | Show detailed output (default: false) | |
| gene_name | Yes | Gene name to test | |
| compliance | No | Run structural compliance checks (default: false) | |
| project_root | No | Project root path |
TDQS
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 does disclose that execution happens 'in the sandbox,' which is a meaningful safety signal, but it says nothing about side effects, whether artifacts are written, what happens on failure, or whether compilation output is persisted. The sandbox note is genuine added value but leaves the behavioral picture incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and scope, followed by the concrete checks performed. Every clause carries information and there is no filler, though the enumeration is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should ideally explain what a test result looks like or what distinguishes a pass from a failure. It covers the inputs checked but not the outcome, and it omits the sibling differentiation an agent needs to route correctly among test_gene, compile_gene, and run_gene.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (gene_name, verbose, compliance, project_root) are already documented in the schema. The description adds no format, default, or interaction detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Test a Gene in the sandbox') and enumerates the three internal checks performed (phenotype schema validation, input/output tests, compilation). It is clear what the tool does, but it does not distinguish itself from overlapping siblings such as compile_gene and run_gene, whose functions are a subset of this one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 compile_gene, run_gene, or the other validation-oriented siblings. The agent must infer from the tool name alone that this is the comprehensive test entry point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vg_scanB
V(g) security scan — static analysis for Gene/Skill code safety. Returns a grade (A/B/C/D/?) and per-finding details with severity, file, line, and snippet.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | Scan all code files, not just src/ | |
| path | No | Path to Gene or Skill directory to scan (default: current project root) | |
| gene_id | No | Gene/Skill identifier for the report | |
| project_root | No | Project root directory (auto-detected if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the return shape (grade A/B/C/D/? plus per-finding severity, file, line, snippet). It omits whether the scan writes a report file, how long it takes on large repos, or whether any auth/permission is required — meaningful gaps for a scan tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler, front-loading what the tool is before describing the return value. Efficient, though the return sentence could be trimmed since it partially duplicates what an agent infers from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 correctly supplies the return shape, and all four parameters are optional and documented in the schema. Still missing are side-effect/permission context and any differentiation from the very similar sibling scan_genes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter already has a clear description, so the baseline is 3. The prose adds nothing about the parameters (e.g. what 'all' changes in the report, or how gene_id is used) beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (static security scan of Gene/Skill code) and even names the V(g) metric, so the purpose is unambiguous. It does not, however, distinguish itself from the sibling tool scan_genes, leaving the agent to guess which scanner to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the sibling scan_genes as an alternative. The only routing hint is the default path behavior implied by the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wrap_geneB
Wrap a function or SKILL.md as a Rotifer Gene. Generates phenotype.json from the source. The target must exist in the project.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Gene functional domain (e.g. search.web, code.format) | |
| fidelity | No | Fidelity level (default: Wrapped) | |
| gene_name | Yes | Name of the function or skill to wrap | |
| from_skill | No | Create gene from a SKILL.md file (path to SKILL.md or its directory) | |
| from_clawhub | No | Create gene from a ClawHub skill (slug, downloads and converts automatically) | |
| project_root | No | Project root path |
TDQS
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 discloses the output file (phenotype.json) but says nothing about whether wrapping overwrites existing genes, whether writes need auth, or what error surfaces when the target is missing — substantial gaps for a filesystem-mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and followed by the artifact and the precondition. No filler, though the second and third sentences could be merged without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description must cover behavior, but it stops at purpose and one precondition. For a 6-parameter write tool in a dense sibling set, the relationship to compile_gene/install_gene and the failure/overwrite behavior are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (domain, fidelity, gene_name, from_skill, from_clawhub, project_root) are already documented in the schema with examples. The description adds only the precondition on the target, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (wrap) and resource (a function or SKILL.md into a Rotifer Gene) plus a concrete artifact produced (phenotype.json). It does not, however, disambiguate itself from siblings like compile_gene, init_gene, or create_agent, which an agent must infer from the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"The target must exist in the project" is a useful precondition, but the description never says when to choose wrap_gene over compile_gene/init_gene or when this step belongs in a workflow. Usage 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
31 tool updates
v0.19.1- First observed
agent_run - First observed
arena_submit - First observed
auth_status - First observed
compare_genes - First observed
compile_gene - First observed
create_agent - First observed
doctor - First observed
get_arena_rankings - First observed
get_developer_profile - First observed
get_gene_detail - First observed
get_gene_reputation - First observed
get_gene_stats - First observed
get_leaderboard - First observed
get_mcp_stats - First observed
get_my_reputation - First observed
init_gene - First observed
install_gene - First observed
list_gene_versions - First observed
list_local_agents - First observed
list_local_genes - First observed
login - First observed
logout - First observed
publish_gene - First observed
rollback_gene - First observed
run_gene - First observed
scan_genes - First observed
search_genes - First observed
suggest_domain - First observed
test_gene - First observed
vg_scan - First observed
wrap_gene
TDQS
Scored across 31 tools
Most tools have clearly distinct purposes (search, install, compile, run, publish, arena, auth). However, the cluster of read-only stats/reputation tools (get_gene_stats, get_gene_reputation, get_my_reputation, get_leaderboard, get_developer_profile) could cause some hesitation, though descriptions differentiate them.
Predominantly snake_case with verb_noun pattern (search_genes, install_gene, compile_gene). Minor deviations like doctor (noun), agent_run/arena_submit (noun_verb order), auth_status (noun_noun) and vg_scan are readable but slightly inconsistent.
31 tools is heavy for the server's scope, exceeding the typical 15-tool threshold. While many operations are distinct, several could be consolidated (e.g., stats/reputation variants, auth group) or exposed as subcommands rather than separate tools.
The surface covers discovery, local lifecycle (init, scan, wrap, compile, run, test, install, rollback, publish), agents (list, create, run), auth, arena, analytics, and security scanning. Missing explicit uninstall/delete or update operations for genes/agents, but core workflows are well-covered.
Maintenance
Related MCP Connectors
Shared, peer-validated knowledge archive for AI agents — search, contribute, and validate via MCP
AI agent registry — search, discover, register, and connect agents via MCP.
AI-to-AI knowledge network. Agents share insights, ask questions, build reputation over MCP.
Agent-to-agent referral network. Discover, recommend, and refer users between AI agents via MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for autonomous agent minting, crossbreeding, and evolution. Mint new AI agents with genetic lineage tracking, cross-breed capabilities between agents, run evolution cycles, and discover complementary agents in the HiveBazaar marketplace.MIT
- AlicenseAqualityFmaintenanceAgent-first skill marketplace MCP server. AI agents discover, install, and share skills across 7 platforms via MCP protocol. 15 tools including skill search, download, upload, and agent discovery.184MIT
- AlicenseAqualityDmaintenanceUnified MCP and skill management gateway for AI agents, enabling tool discovery, installation, and sharing with 99% context token savings.8134 npm90Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA self-improving coding agent MCP server that enables code execution, semantic memory, and reusable skills via sub-agents, turning your AI client into a meta-operating system.2AGPL 3.0