@rotifer/mcp-server
This MCP server exposes the Rotifer Gene ecosystem to MCP-compatible IDEs, letting you discover, build, run, publish, and compose Genes and Agents without leaving your assistant.
Discover Genes — full-text/domain/fidelity search, detailed phenotype and fitness lookup, download stats, version history, reputation, and domain suggestions.
Compare and rank — side-by-side fitness comparison of 2–5 Genes, Arena rankings (with tier/verification data), and creator leaderboards and profiles.
Inspect local workspace — list installed Genes and registered Agents in a project, with compile status and metadata.
Build Genes — initialize projects, scan source or SKILL.md files for candidates, wrap functions/skills, test schema and sandbox behavior, compile to WASM, and diagnose the toolchain with
doctor.Run Genes safely — execute locally in the WASM sandbox, with opt-in escape hatches (
no_sandbox,trust_unsigned) only when enabled at launch.Publish and install — push Genes to Rotifer Cloud (with V(g) security scanning and optional Arena submission), install from the registry, and roll back overwritten installs via snapshots.
Measure in the Arena — sandbox-measure a local Gene and submit real results (caller-supplied scores are refused).
Compose and run Agents — create Agents from local Genes with Seq/Par/Cond/Try/TryPool composition and strategies, then execute them with JSON input.
Security scanning — run static V(g) analysis on Gene/Skill code for a safety grade and findings.
Manage authentication and analytics — OAuth login/logout (GitHub/GitLab) and status checks, plus MCP call analytics and personal reputation.
Scope and serve deliberately — narrow exposed tools via presets or explicit lists, and serve over stdio or secured Streamable HTTP (token, allowed hosts, request size cap).
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). Not available over HTTP |
|
| Clear credentials. Not available over HTTP | — |
| 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 │
│ │
│ 31 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-keyThe login MCP tool always signs in to the configured endpoint and refuses an endpoint argument: an assistant can be steered by what it reads, and sign-in sends credentials to that address. To sign in to another instance yourself, run rotifer-mcp-server login --endpoint <url>, which accepts only http:// or https:// addresses.
Choosing 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 oneA name that is neither a preset nor a tool here is ignored, with a note on stderr. If none of the names are, the server does not start: it lists the presets and exits with code 2, rather than running with no tools at all.
The 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.
Serving over HTTP
The server normally talks over stdio to the MCP host that launched it. To expose it over Streamable HTTP instead:
rotifer-mcp-server serve # http://127.0.0.1:3000/mcp
rotifer-mcp-server serve --port 8080
# Reachable from other machines: needs a list of names and an access token
openssl rand -hex 32 > mcp-token
chmod 600 mcp-token
rotifer-mcp-server serve --host 0.0.0.0 --allowed-hosts mcp.example.com --token-file mcp-tokenIt listens on
127.0.0.1unless you pass--host. Its tools act with your signed-in Rotifer account, so it is not reachable from other machines by default. If you pass a non-loopback--host, the server says so on stderr when it starts. Earlier versions listened on every interface.A non-loopback
--hostneeds--allowed-hosts. List the host names or IP addresses clients will use, separated by commas, with no scheme, port, path or wildcard. Without the list,serveexits with status 2. Earlier versions started anyway.A non-loopback
--hostalso needs an access token. Pass--token-file <path>or setROTIFER_MCP_HTTP_TOKEN, not both. A line break at the end of the file is ignored. The token is not accepted as a command-line value, because other programs on the machine can read those. Without a token,serveexits with status 2. On loopback a token is optional, and is enforced if you set one. Earlier versions had no token.Every path except
/healthonly answers requests addressed to a name it knows. TheHostheader, and theOriginheader when a browser sends one, must be loopback or an entry in--allowed-hosts; anything else gets403. Listening on loopback alone does not stop a web page from reaching the server through DNS rebinding.With a token set, every path except
/healthalso needsAuthorization: Bearer <token>. A missing or wrong token gets401. CORS preflight (OPTIONS) is exempt, because browsers cannot attach the header to it; it still has to pass theHostandOrigincheck, and it never reaches a tool.--allowed-hostsand the token do different jobs, and a request must pass both.--allowed-hostsdecides which names the server may be addressed by, which stops DNS rebinding. It says nothing about who is calling. The token decides who may call.Everyone holding the token acts as the account signed in on the server. There are no per-user tokens or permission levels. To revoke access, change the token and restart the server.
The server speaks plain HTTP. The token travels with every request, so a server reachable from other machines belongs behind an HTTPS reverse proxy or tunnel.
loginandlogoutare not available over HTTP. They are not listed, and calling them returns an error, because they act on the credentials of the machine running the server. On that machine, runrotifer-mcp-server loginorrotifer-mcp-server logout.Request bodies are capped at 256 KiB. A larger request is answered
413with a JSON-RPC error before it is parsed. MCP messages are far smaller than this; the cap exists because the SDK's default (4 MiB) is the bound GHSA-46jr-4wx8-v453 describes, where a single request can exhaust the server's memory.GET /healthanswers{"status":"ok","transport":"streamable-http"}for liveness checks.
To send the token from a client, each of these reads it at connection time, so it stays out of the configuration file.
Claude Code, in .mcp.json:
{
"mcpServers": {
"rotifer": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"headers": { "Authorization": "Bearer ${ROTIFER_MCP_HTTP_TOKEN}" }
}
}
}Cursor, in mcp.json:
{
"mcpServers": {
"rotifer": {
"url": "https://mcp.example.com/mcp",
"headers": { "Authorization": "Bearer ${env:ROTIFER_MCP_HTTP_TOKEN}" }
}
}
}VS Code, in mcp.json:
{
"inputs": [
{ "type": "promptString", "id": "rotifer-token", "description": "Rotifer MCP access token", "password": true }
],
"servers": {
"rotifer": {
"type": "http",
"url": "https://mcp.example.com/mcp",
"headers": { "Authorization": "Bearer ${input:rotifer-token}" }
}
}
}Claude Desktop uses stdio by default.
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.
Inputs: agent_name (required), input, verbose, no_sandbox, +1 more.
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.
Inputs: gene_name (required), project_root.
auth_statusA
Check current authentication status. Returns whether the user is logged in, their username, provider, and how many minutes until the token expires.
Inputs: no named parameters.
compare_genesA
Compare two or more Genes by their F(g) fitness metrics. Returns side-by-side fitness breakdown.
Inputs: gene_ids (required).
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.
Inputs: gene_name (required), lang, check, wasm_path, +1 more.
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).
Inputs: gene_ids (required), agent_name (required), domain, strategy, +3 more.
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.
Inputs: project_root.
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.
Inputs: page, domain, per_page.
get_developer_profileB
Get a creator's public profile and reputation data by username.
Inputs: username (required).
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.
Inputs: gene_id, content_hash.
get_gene_reputationB
Get detailed reputation breakdown for a Gene (Arena, Usage, Stability scores).
Inputs: gene_id (required).
get_gene_statsB
Get download statistics for a Gene, broken down by time period (total, last 7 days, 30 days, 90 days).
Inputs: gene_id (required).
get_leaderboardB
Get the creator reputation leaderboard. Shows top creators ranked by reputation score, including their published gene count, total downloads, and arena wins.
Inputs: limit.
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.
Inputs: days.
get_my_reputationB
Get the current logged-in creator's reputation and stats. Requires authentication.
Inputs: no named parameters.
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.
Inputs: gene_name (required), domain, fidelity, no_genesis, +1 more.
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.
Inputs: gene_id (required), force, project_root.
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.
Inputs: owner (required), gene_name (required).
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.
Inputs: state, project_root.
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.
Inputs: domain, fidelity, project_root.
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.
Inputs: provider.
logoutA
Log out from Rotifer Cloud. Clears locally saved credentials.
Inputs: no named parameters.
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.
Inputs: all, changelog, gene_name, skip_arena, +3 more.
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.
Inputs: gene_name, project_root.
run_geneA
Execute a local Gene via the Rotifer CLI (rotifer run). The Gene must exist in the local genes/ directory. Returns execution output.
Inputs: gene_name (required), input, verbose, no_sandbox, +2 more.
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.
Inputs: path, skills, skills_path, project_root.
search_genesC
Search the Rotifer Gene ecosystem. Returns a list of Genes matching the query, filterable by domain and fidelity.
Inputs: page, sort, query, domain, +2 more.
suggest_domainC
Suggest top matching domains from the domain registry based on a description.
Inputs: description (required).
test_geneB
Test a Gene in the sandbox. Validates phenotype schema, runs input/output tests, and checks compilation.
Inputs: gene_name (required), verbose, compliance, project_root.
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.
Inputs: all, path, gene_id, project_root.
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.
Inputs: gene_name (required), domain, fidelity, from_skill, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 31 tools
Most tools have clearly distinct resource+action targets across local genes, agents, cloud registry, arena, auth, and analytics. Minor overlap exists around test_gene vs compile_gene/run_gene, publish_gene's optional arena submission vs arena_submit, and the trio get_gene_detail/get_gene_stats/get_gene_reputation, but descriptions make the boundaries workable.
Casing is consistently snake_case and most names are verb_noun (list_local_genes, install_gene, create_agent). However, ordering is mixed: arena_submit, agent_run, and vg_scan are noun-first, while doctor, login, and logout are bare verbs/nouns, so the pattern is readable but not fully predictable.
At 31 tools, the surface is heavy for one server and several could be consolidated (e.g., gene detail/stats/reputation, and test/compile/run checks). Each tool is individually meaningful, but the count exceeds a well-scoped set.
The lifecycle is well covered: scan/wrap/init, compile/run/test, publish, install/rollback, arena ranking/submission, plus agent creation and execution, auth, and analytics. Gaps are minor but real—no uninstall/delete Gene, no update/delete Agent, and no local Gene detail operation.
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
- AlicenseAqualityDmaintenanceAgent-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.847 npm91Apache 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