← All skills
create-tool
95 / 100 · Low risk
Fine to try.
By agentfront/frontmcp (GitHub) · coding · 148 stars · scanned at commit cadd045
ALWAYS use this skill when the user asks to build, modify, or audit a FrontMCP tool.
Covers everything inside `@Tool({...})`: class and function-style tools, Zod input/output
schemas with derived `execute()` types, dependency injection (`this.get` / `this.tryGet`),
error handling (`this.fail`, MCP error classes), throttling (rate-limit / concurrency /
timeout), auth providers (single / multi / vault), availability constraints
(`availableWhen`), elicitation (`this.elicit`), interactive UI widget…
Works with any agent that supports SKILL.md skills.
What this skill can do
Sends data to these websites: api.github.com, api.translate.example, api.market.example, api.weather.example
The author does not mention this.
Found in 24 places.
Show 17 more
- libs/skills/catalog/create-tool/examples/11-tool-with-fetch.md, line 49
const response = await this.fetch(url, { - libs/skills/catalog/create-tool/examples/11-tool-with-fetch.md, line 75
- Using `this.fetch(url, init?)` so trace context propagates to the upstream service - libs/skills/catalog/create-tool/examples/11-tool-with-fetch.md, line 86
const response = await this.fetch(url); - libs/skills/catalog/create-tool/examples/12-tool-with-fetch-and-retries.md, line 52
const response = await this.fetch(`https://api.github.com/repos/${input.repo}/issues`, { - libs/skills/catalog/create-tool/examples/13-tool-with-single-auth-provider.md, line 76
const response = await this.fetch(url, { headers }); - libs/skills/catalog/create-tool/examples/15-tool-with-credential-vault.md, line 47
const response = await this.fetch(webhook.secret, { - libs/skills/catalog/create-tool/examples/16-tool-with-rate-limit.md, line 43
const response = await this.fetch('https://api.translate.example/v1/translate', { - libs/skills/catalog/create-tool/examples/24-tool-with-ui-csp-and-bridge.md, line 36
const res = await this.fetch(`https://api.market.example/quote/${input.symbol}`); - libs/skills/catalog/create-tool/examples/24-tool-with-ui-csp-and-bridge.md, line 105
const res = await this.fetch(`https://api.market.example/quote/${input.symbol}`); - libs/skills/catalog/create-tool/references/auth-providers.md, line 73
const response = await this.fetch('https://api.github.com/repos/.../issues', { - libs/skills/catalog/create-tool/references/auth-providers.md, line 196
const response = await this.fetch(url, { headers }); - libs/skills/catalog/create-tool/references/execution-context.md, line 20
| `this.fetch(input, init?)` | HTTP fetch with context propagation (trace headers, etc.) - libs/skills/catalog/create-tool/references/execution-context.md, line 89
const response = await this.fetch(input.url); - libs/skills/catalog/create-tool/references/execution-context.md, line 100
this.fetch(url, { - libs/skills/catalog/create-tool/references/execution-context.md, line 108
The configured `requestTimeout` (30s by default) applies when you pass no `signal` in the options, and so does the `Request`'s own signal; a `signal` passed in - libs/skills/catalog/create-tool/references/output-schema.md, line 37
const data = await this.fetch(`https://api.weather.example/${input.city}`).then((r) => r.json()); - libs/skills/catalog/create-tool/references/throttling.md, line 95
`this.fetch()` is aborted with `this.signal` on its own, on top of its per-request timeout (default 30s). Pass `this.signal` to any other cancellable work, so a
and 4 more places
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'create-tool' ] || [ -L ~/.agents/skills/'create-tool' ]; then echo 'A skill folder named create-tool already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/agentfront/frontmcp' "$d" && git -C "$d" checkout --quiet 'cadd045f5f9f5a3260c23264ae771b4a1ef4de49' -- 'libs/skills/catalog/create-tool' && mkdir -p ~/.agents/skills && cp -R "$d"/'libs/skills/catalog/create-tool' ~/.agents/skills/'create-tool' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'create-tool' ~/.claude/skills/'create-tool' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for agentfront/frontmcp shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/agentfront/frontmcp/)
Score history
| Date | Version | Score |
|---|
| 2026-11-09 | cadd045 | 95 |
| 2026-11-07 | 4c99d49 | 95 |