CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

fastmcp

Provides up-to-date FastMCP API patterns for tools, resources, prompts, server composition, authentication, and deployment. Use when the user asks to "create an MCP server", "build an MCP tool", "add an MCP resource", "define MCP prompts", "set up FastMCP", "run an MCP server", "expose tools via MCP", "mount MCP sub-servers", "configure MCP transport", "add authentication to MCP", "test an MCP server", "use the MCP client", or when writing any Python code that uses the fastmcp package. Does not cover the MCP protocol spec, the TypeScript MCP SDK, or configuring MCP servers in Claude Code settings.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

86%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured API skill: executable examples for every core FastMCP concept, a logical section flow, and clean two-file progressive disclosure with real, well-scoped references. Its only weaknesses are mild internal redundancy (inline guidance repeated in the table and Key Rules) and the absence of any inline test/verify step despite 'test an MCP server' being an advertised trigger.

Suggestions

Collapse redundancy: drop either the 'Key Rules' section or the 'Common Patterns Quick Reference' table, or merge them into one — rules like type-annotation, Pydantic, and namespace guidance are currently stated twice each.

Add a short inline verification step (e.g., a 3-line in-process client example from references/patterns.md's Testing section) so the 'test an MCP server' trigger has a body-level answer.

Mention the Client/testing content in the file descriptions under 'Additional Resources' so the testing pathway is discoverable from the overview.

DimensionReasoningScore

Conciseness

The body is code-first with minimal prose ("Tools are functions that the client can invoke.", "FastMCP auto-generates the JSON schema from the function signature and docstring."), but there is noticeable redundancy: the 'Common Patterns Quick Reference' table and the 'Key Rules' section restate guidance already given inline (e.g., Pydantic advice appears both as "Use Pydantic models when a tool has more than 3-4 parameters" and "Prefer Pydantic models for tools with 4+ parameters"; the namespace advice is given under Server Composition and again as Key Rule 5). This matches anchor 4 ("Efficient; minor instances of over-explanation that could be trimmed") rather than 5, because the duplication could be collapsed; it is clearly above 3 since no space is wasted explaining concepts Claude already knows.

4 / 5

Actionability

Every section gives complete, copy-paste-ready code: installation ("uv add \"fastmcp>=4\""), typed tool decorators, an async httpx tool, a Pydantic input model, Context logging/progress with try/except, resource URIs and templates, prompt functions, both transports ("mcp.run(transport=\"http\", host=\"0.0.0.0\", port=8000)"), and mounting with namespaces. Specific examples cover the common cases, matching anchor 5 ("Fully executable; copy-paste ready code or commands; specific examples cover the common cases"); the only placeholder is a justified "# process file..." stub inside an illustrative Context example, which keeps it above any lower anchor concern.

5 / 5

Workflow Clarity

Sections form a coherent build sequence (install → initialize → tools/resources/prompts → run → compose), and the Context example embeds an error-handling checkpoint ("except Exception as e: await ctx.error(...)"). However, there is no explicit verification step in the body despite "test an MCP server" being a declared trigger — testing/in-process client guidance is only in the reference files, and the body's file descriptions omit it. This fits anchor 4 ("Clear sequence with most checkpoints present; minor validation gaps") rather than 5, and there are no destructive/batch operations that would trigger the cap at 3.

4 / 5

Progressive Disclosure

The body keeps core patterns inline while bulk detail (auth, lifespan, proxy servers, deployment, OpenAPI import) is pushed to two real, one-level-deep files, each clearly signaled with its scope: "references/api-reference.md — Tool decorator options, resource MIME types, prompt patterns, Context API, authentication (JWT/OAuth2), server configuration" and "references/patterns.md — Server composition, lifespan management, ... deployment". Both files exist in the bundle with no orphans or nesting, and the quick-reference table aids navigation — a clean match for anchor 5 ("Clear overview with well-signaled one-level-deep references; content appropriately split; easy navigation").

5 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: it states the package and its full capability surface in third person, provides a dozen natural trigger phrases plus a package-name catch-all, and closes with explicit scope exclusions that prevent overlap with the MCP protocol spec, TypeScript SDK, and Claude Code configuration. No changes needed.

DimensionReasoningScore

Specificity

The what-clause names the exact package and comprehensively enumerates its capability areas: "Provides up-to-date FastMCP API patterns for tools, resources, prompts, server composition, authentication, and deployment" — six concrete areas covering the library's whole surface, in third-person voice. This matches anchor 5 ("Lists multiple specific concrete actions; comprehensive coverage") rather than 4, because there are no material gaps; anchor 4 would require a noticeably missing capability area.

5 / 5

Completeness

Both what and when are explicit and concrete: the what is the opening capability sentence, and the when is an explicit "Use when the user asks to '...'" clause with a dozen concrete trigger phrases and a package-name catch-all. This is a direct match for anchor 5 ("Clearly and explicitly answers both what AND when with concrete trigger phrases"); anchor 4 would require the 'when' to be less explicit or specific, which it is not.

5 / 5

Trigger Term Quality

Twelve natural user phrases ("create an MCP server", "build an MCP tool", "set up FastMCP", "mount MCP sub-servers", "configure MCP transport", "test an MCP server", "use the MCP client") plus the catch-all "when writing any Python code that uses the fastmcp package" give comprehensive coverage including the package name itself. This matches anchor 5 ("Comprehensive coverage of natural terms including synonyms") rather than 4, since no common phrasing for this domain is obviously missing.

5 / 5

Distinctiveness Conflict Risk

The description carves a clear niche (the Python fastmcp package) and actively disambiguates with explicit exclusions: "Does not cover the MCP protocol spec, the TypeScript MCP SDK, or configuring MCP servers in Claude Code settings." This matches anchor 5 ("Clear niche with distinct triggers; minimal conflict risk") rather than 4, because the negative boundary explicitly prevents the most likely cross-trigger scenarios.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

provectus/awos-recruitment

Path

.claude/skills/fastmcp/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.