mcp-tool-author

mcp-tool-author is an agent for coding agents from Goldziher/basemind. It costs 45 tokens per session (1,217 once invoked), scanned A, original, MIT.

An agent for adding one new mode to an existing basemind MCP tool and its command-line group. A mode is a named operation selected through a required option.

In plain words
What is it for?
Use it to add a capability to an existing domain, including its types, dispatch logic, CLI command, smoke test, and documentation.
Why use it?
It preserves basemind's fixed nine-tool structure and checks that the new operation is wired through every required layer.

Agent

Part of the basemind plugin — 15 skills, 10 commands, 6 agents, 2 hooks, 1 MCP server shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/goldziher/basemind/mcp-tool-author
Clone the repo
git clone --depth 1 https://github.com/Goldziher/basemind

Or install basemind, the plugin that ships this one along with the rest of its 15 skills, 10 commands, 6 agents, 2 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for mcp-tool-author

README.md
[![agentmods](https://agentmods.dev/badge/agents/goldziher/basemind/mcp-tool-author.svg)](https://agentmods.dev/agents/goldziher/basemind/mcp-tool-author)
Your own site
<a href="https://agentmods.dev/agents/goldziher/basemind/mcp-tool-author"><img src="https://agentmods.dev/badge/agents/goldziher/basemind/mcp-tool-author.svg" alt="Measured on agentmods" height="20"></a>
Per session 45 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,217 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00045 $0.01217
Opus 5 $0.00023 $0.00609
Sonnet 5 $0.00009 $0.00243
Haiku 4.5 $0.00005 $0.00122

Measured 5d ago against content hash 183b112c36e9, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

mcp-tool-author scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.ai-rulez/agents/mcp-tool-author.md · 88 lines

How it starts

The opening of the file, as written. The whole thing — 88 lines — stays where its author put it; the contents beside it link to each section on GitHub.

mcp-tool-author

basemind's MCP surface is fixed at 9 domainscode, graph, git, memory, web, agents, workspace, shell, admin — each one MCP tool plus one CLI group, dispatching on a required, non-defaulted mode enum. Adding capability means adding a mode to an existing domain, not adding a tool.

A brand-new top-level tool requires an ADR. If the request cannot be expressed as a mode on one of the nine, stop and say so: the surface size is a deliberate decision (see docs/adr/, GH #50 — deferred retrieval dilutes, and one bad schema drops the whole registry). Propose the ADR; do not grow the surface unilaterally.

Before you write

  1. Name the domain the request belongs to. If two fit, pick the one whose question matches, not the one whose data source matches.
  2. Check whether an existing mode should be extended with a parameter instead. Forking a mode when a parameter would do is the most common bug here.
  3. Read src/mcp/mode.rs — the define_mode! macro, the reject_unsupported validator, and the module docs explaining why the schema is hand-written — then your domain's types_<domain>.rs and the Visibility impl in src/mcp/types_memory.rs, the canonical hand-written flat enum.

Steps

  1. src/mcp/types_<domain>.rs — add the variant to the domain's mode enum via define_mode!, and any per-mode parameters as optional sibling fields on the existing params struct. Never a nested union. RelPath for paths; limits default to 100, cap at 1000.
  2. src/mcp/tools_<domain>.rs — add one match arm to the domain's single #[tool] shim, and extend the description string with a clause for the new mode. Thin wrapper only.
  3. src/mcp/helpers_<domain>.rs — implement run_<mode>. Validate here: reject the parameters the mode does not accept with mode::reject_unsupported, and name the offending pair on the ones it requires — mode="blame" requires path``. Apply scan_cap = limit * 8 on any index scan.
  4. src/cli/<domain>.rs — add the matching clap subcommand (basemind git blame …), never a --mode flag. Every mode has a CLI command; tests/cli_parity.rs enforces the bijection.
  5. tests/mcp_smoke.rs — one end-to-end call against the synthetic fixture, asserting a structural field, plus the negative case (mode omitted → error, required parameter missing → named error).
  6. README.md — extend the domain's row with the new mode. One line, ≤ 120 chars.

Read the full file on GitHub · 88 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 88 lines · 45 tokens per session scan A 183b112c36e9

Subscribe to this mod's changes

mcp-tool-author is an agent published in the GitHub repository Goldziher/basemind (98 stars, last pushed 3d ago), licensed MIT. It adds 45 tokens to every session and 1,217 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

sverklo-explore

Drop-in replacement for Claude Code's built-in Explore subagent. Uses sverklo's hybrid-retrieval MCP tools (BM25 + ONNX embeddings + PageRank, 36 tools) to answer file-discovery and code-search questions with 60% fewer tokens than naive grep. Use this when you need to locate definitions, trace references, understand…

sverklo/sverklo · 96 tokens

cursor

Agent "cursor" from mareurs/codescout, covering cursor, one-time setup, register codescout as an mcp server, add workflow skills and add the code-reviewer agent.

mareurs/codescout · 0 tokens

task-plan-architect

Uses the smartest available Claude model to expand one broad GitHub issue into a bounded set of implementation-ready subtasks, choosing the preferred LLM/model for each subtask and linking the resulting task tree in comments.

MercurieVV/ScalaSemantic · 47 tokens

triage

Cheap sequential classifier. Reads one GitHub issue, decides whether it is a standard coding task or an analytic task, routes it to the right engine+model (or marks it for step-by-step analytic planning), and emits a compact JSON routing decision. Use before dispatching work to the parallel pool.

MercurieVV/ScalaSemantic · 63 tokens

lesson-learner

Use proactively when the user asks to encode insights or guidelines into CLAUDE.md. Triggers include phrases like "update your memory", "remember to do this", "learn from this", or "add this to the guidelines". Extracts generalizable principles from context and proposes targeted improvements to project documentation.

CRJFisher/ariadne · 66 tokens

codesage-feature-reviewer

Review one CodeSage feature slice and return strict JSON findings.

iliaal/codesage · 19 tokens