Borrowing it
Nothing to install: this file belongs to Lelemon-studio/mcify. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Lelemon-studio/mcify/main/.claude/commands/add-tool.mdgit clone --depth 1 https://github.com/Lelemon-studio/mcifyWrote 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.
[](https://agentmods.dev/commands/lelemon-studio/mcify/add-tool)<a href="https://agentmods.dev/commands/lelemon-studio/mcify/add-tool"><img src="https://agentmods.dev/badge/commands/lelemon-studio/mcify/add-tool/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/lelemon-studio/mcify/add-tool"><img src="https://agentmods.dev/badge/commands/lelemon-studio/mcify/add-tool.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00015 | $0.00584 |
| Opus 5.5 | $0.00006 | $0.00234 |
| Sonnet 5.5 | $0.00003 | $0.00117 |
| Haiku 4.5 | $0.00002 | $0.00058 |
Grade A, and why
add-tool 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 2mo 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.
What it actually says
Scaffold a new MCP tool — either in an example connector or in the user's own project.
Required input from the user: the tool name (e.g., khipu_create_payment).
-
Validate the name against
/^[a-zA-Z0-9_-]{1,64}$/. Reject if it doesn't match (this is the same regexdefineToolenforces at runtime). -
Find the right home for the tool. Ask the user only if it's not obvious:
- In a
packages/examples/<connector>/example: add to that connector'stools/directory. - In a user project: add to
tools/next tomcify.config.ts.
- In a
-
Write the tool file as
<name>.ts:import { defineTool, schema } from '@mcify/core'; import { z } from 'zod'; export const <camelName> = defineTool({ name: '<name>', description: '<one sentence, present tense>', input: z.object({ // schema.id(), schema.url(), schema.money(), etc. for common shapes }), output: z.object({ // ... }), handler: async (input, ctx) => { throw new Error('not implemented'); }, });Suggest sensible Zod helpers from
@mcify/core'sschemanamespace where applicable (schema.id,schema.url,schema.httpUrl,schema.money,schema.timestamp,schema.paginated). -
Register it in
mcify.config.ts:import { <camelName> } from './tools/<name>.js'; export default defineConfig({ // ... tools: [<camelName>, /* ... existing ... */], }); -
Add a basic test as
tools/<name>.test.ts:import { describe, it, expect } from 'vitest'; import { <camelName> } from './<name>.js'; describe('<name>', () => { it('rejects invalid input', () => { const result = <camelName>.input.safeParse({}); expect(result.success).toBe(false); }); // Add a happy-path test once the handler is implemented. }); -
Verify: run
pnpm typecheckandpnpm testfor the affected package. Don't write the actual handler logic — the developer fills that in. -
Don't add a changeset unless the tool ships in a published example. User-project tools never get changesets.
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.
- 2mo ago First seen · 68 lines · 15 tokens per session scan A 6829de0a0954
add-tool is a command published in the GitHub repository Lelemon-studio/mcify (2 stars, last pushed 4mo ago), licensed Apache-2.0. It adds 15 tokens to every session and 584 once invoked, about $0.0001 per session on Opus 5.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-31.
add-tool compared with commands from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| add-toolLelemon-studio/mcify | Command | 2 | 4mo ago | Apache-2.0 | A | 15 | Claude Code |
| initfcakyon/claude-codex-settings | Command | 1.2k | yesterday | Apache-2.0 | A | 0 | Claude Code |
| http-serviceMadAppGang/magus | Command | 14 | yesterday | MIT | A | 27 | Claude Code |
| buildAzure/ai-gateway | Command | 5 | 10d ago | MIT | A | 0 | Claude Code |
| api-contract-reviewMozurok/fhorja.dev | Command | 10 | 28d ago | MIT | A | 64 | Claude Code |
| start-10-1minicoohei/ai-agent-camp | Command | 347 | 1mo ago | none | A | 2 | Claude Code |
| fastapimfmezger/ai_agent_dotfiles | Command | 7 | 3mo ago | MIT | A | 84 | Claude Code, Gemini CLI |