FastMCP Development Assistant
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Most tools have distinct purposes, but 'analyze-npm-types' and 'fetch-npm-types' could cause confusion as both involve NPM package TypeScript definitions. The former analyzes and recommends, while the latter simply fetches, but the overlap in naming and domain might lead to misselection without careful reading of descriptions.
Naming Consistency5/5All tool names follow a consistent verb-noun pattern with kebab-case (e.g., 'analyze-npm-types', 'fetch-fastmcp-readme'). The verbs are clear and descriptive, and there are no deviations in style or convention throughout the set.
Tool Count4/5With 6 tools, the count is reasonable for a development assistant focused on FastMCP and NPM types. It covers key areas like fetching documentation, analyzing types, and cache stats, though it might be slightly lean for broader development tasks, but well-scoped for its stated purpose.
Completeness3/5The tool set covers fetching and analyzing NPM types and FastMCP resources, but there are notable gaps. For a 'Development Assistant', it lacks tools for actions like installing packages, running tests, or managing projects, which could limit agent workflows. However, within its narrow focus on types and documentation, it provides basic coverage.
Average 3.5/5 across 6 of 6 tools scored.
See the Tool Scores section below for per-tool breakdowns.
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
This server has been verified by its author.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, indicating this is a safe read operation that may return incomplete data. The description adds value by specifying what the analysis includes (type definition status, recommendations, alternatives), which goes beyond the annotations. However, it doesn't mention behavioral aspects like rate limits, authentication needs, or what 'comprehensive' entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that clearly states the purpose and outputs. It's appropriately sized and front-loaded with the core functionality, with no wasted words or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analysis tool with good annotations (readOnlyHint, openWorldHint) and 100% schema coverage, the description provides adequate context about what the analysis includes. However, with no output schema, the description doesn't explain the format or structure of the analysis results, leaving some ambiguity about what 'comprehensive analysis' returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters clearly documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema (packageName and version). The baseline score of 3 is appropriate since the schema does the heavy lifting for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'comprehensive analysis of TypeScript type definitions for specified NPM packages' with specific outputs (type definition status, recommended approaches, alternatives). However, it doesn't explicitly distinguish this analysis tool from sibling tools like 'fetch-npm-types' which presumably fetches type definitions rather than analyzing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'fetch-npm-types' or explain scenarios where analysis is needed versus fetching raw type definitions. The context is implied (when you need analysis) but no explicit usage boundaries are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true (safe read operation) and openWorldHint=true (accesses external data), so the description doesn't need to repeat these. It adds value by specifying the exact resource (README file) and source (FastMCP GitHub repository), but doesn't disclose additional behavioral traits like rate limits, authentication needs, or response format details beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Japanese that directly states what the tool does without any wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, read-only operation with annotations), the description is adequate but minimal. It lacks output schema information (not provided) and doesn't explain return values or potential errors, which could be helpful for an agent. However, for a basic fetch tool with good annotations, it meets minimum viability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, so no parameter semantics are needed. The description appropriately focuses on the tool's purpose without unnecessary parameter details, aligning with the high schema description coverage (100%) and absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('fetch'/'取得します') and resource ('README file from FastMCP GitHub repository'/'FastMCPのGitHubリポジトリからREADMEファイル'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'fetch-fastmcp-versions' or 'fetch-mcp-architecture-doc', which also fetch from similar sources but different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'fetch-fastmcp-versions' (for version data) or 'fetch-mcp-architecture-doc' (for architecture documentation), leaving the agent to infer usage based on resource names alone without explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true and openWorldHint=true, indicating this is a safe read operation that may return incomplete data. The description adds context by specifying it fetches from npm and includes both all versions and latest version, which is useful beyond annotations. However, it doesn't disclose rate limits, authentication needs, or response format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence in Japanese that directly states the tool's function. It's front-loaded with the core action and resource, with no wasted words or redundant information. Every part of the sentence contributes to understanding the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, annotations provide safety hints, but no output schema exists. The description adequately explains what the tool fetches, but doesn't detail the return format (e.g., JSON structure, error handling). For a read-only tool with open-world hint, more behavioral context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, and schema description coverage is 100%. The description doesn't need to explain parameters, and it appropriately focuses on the tool's purpose without redundant parameter information. Baseline for 0 parameters is 4, as it efficiently describes what the tool does without unnecessary details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '取得します' (fetch/get) and the resource 'FastMCPパッケージのnpm上の全バージョンと最新バージョン情報' (all versions and latest version information of FastMCP package on npm). It doesn't explicitly distinguish from sibling tools like 'fetch-npm-types' or 'analyze-npm-types', but the purpose is specific enough to understand what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, context, or exclusions. With sibling tools like 'fetch-fastmcp-readme' and 'fetch-npm-types', some usage differentiation would be helpful but is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true, indicating this is a safe read operation with potentially open-ended results. The description adds minimal behavioral context beyond this - it specifies the source ('MCP公式サイト') but doesn't mention rate limits, authentication needs, or what format the document returns in. With annotations covering the safety profile, a baseline 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient Japanese sentence that clearly states the tool's purpose without any wasted words. It's appropriately sized for a simple fetch operation and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a simple read operation with annotations covering safety (readOnlyHint) and scope (openWorldHint), and no parameters to explain, the description is minimally adequate. However, it lacks information about what format the architecture document returns in (HTML, PDF, etc.) or any error conditions, which would be helpful context for a fetch operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage. The description doesn't need to explain any parameters, and it appropriately doesn't attempt to do so. A baseline of 4 is correct for zero-parameter tools where the schema fully documents the (empty) input requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('取得します' - fetch/retrieve) and the resource ('MCP公式サイトからアーキテクチャドキュメント' - MCP official site architecture document). It's specific about what it retrieves, though it doesn't explicitly differentiate from sibling tools like 'fetch-fastmcp-readme' or 'fetch-fastmcp-versions' which also fetch documentation from similar sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this specific architecture document is needed versus other documentation tools like 'fetch-fastmcp-readme' or 'analyze-npm-types', nor does it provide any context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context about what information is displayed (statistics and settings), which goes beyond the annotations that only indicate read-only operation. However, it doesn't detail behavioral traits like rate limits, error conditions, or output format, which would be helpful given the lack of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without any unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, read-only operation) and lack of an output schema, the description is adequate but has gaps. It doesn't explain what specific statistics or settings are returned, which could hinder the agent's understanding of the tool's output, especially without an output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the inputs. The description doesn't need to add parameter information, and it appropriately focuses on the tool's purpose without redundancy, earning a baseline score of 4 for no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool displays statistical information and settings for an NPM-type definition cache, which provides a general purpose. However, it's somewhat vague about what specific statistics or settings are included, and it doesn't clearly differentiate from sibling tools like 'analyze-npm-types' or 'fetch-npm-types' that might also relate to NPM types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention any context, prerequisites, or exclusions, leaving the agent with no usage instructions beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, indicating this is a safe read operation that may access external resources. The description adds valuable context beyond annotations by specifying the two sources it fetches from (main package vs @types/ packages) and the search behavior. This provides practical implementation details that help the agent understand how the tool works, though it doesn't mention rate limits or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences that directly state the tool's purpose and approach. Every word earns its place - the first sentence establishes the core functionality, the second explains the sourcing strategy. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with good annotations (readOnlyHint, openWorldHint) and 100% schema coverage, the description provides adequate context. It explains what the tool does and where it sources from. The main gap is the lack of output schema, so the description doesn't clarify what format the type definitions are returned in (e.g., file paths, raw content, structured data). However, given the annotations cover safety and external access, and the schema documents parameters well, it's reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the schema. The description doesn't add any parameter-specific information beyond what's already in the schema descriptions. It mentions the general approach (fetching from main or @types packages) which relates to the searchMode parameter, but doesn't provide additional semantic context. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '指定されたNPMパッケージのTypeScript型定義を取得します' (fetches TypeScript type definitions for specified NPM packages). It specifies both the action ('取得します' - fetches) and resource ('TypeScript型定義' - TypeScript type definitions), and distinguishes from siblings by focusing specifically on type definitions rather than package analysis, documentation, or cache statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context by mentioning it fetches from 'メインパッケージの型定義または@types/パッケージ' (main package type definitions or @types/ packages), which suggests when different sources might be used. However, it doesn't explicitly state when to use this tool versus alternatives like 'analyze-npm-types' or provide clear exclusions. The guidance is present but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kongyo2/My-FastMCP-Development-Assistant-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server