Skip to main content
Glama
kongyo2

FastMCP Development Assistant

My-FastMCP-Development-Assistant-MCP

A comprehensive development assistance MCP server built with FastMCP.

Ask DeepWiki

This MCP server provides development tools for working with FastMCP projects, including documentation access, package version management, and TypeScript type definitions retrieval.

Features

  • Documentation Access: Fetch FastMCP README and MCP architecture documentation

  • Version Management: Retrieve NPM version information for packages

  • Type Definitions: Access TypeScript type definitions from NPM packages

  • Development Tools: Comprehensive analysis and search capabilities

Related MCP server: Memory Bank MCP

Development

To get started, clone the repository and install the dependencies.

git clone <this-repository>
cd My-FastMCP-Development-Assistant-MCP
npm install
npm run dev

Usage

Start the server

If you simply want to start the server, you can use the start script.

npm run start

However, you can also interact with the server using the dev script.

npm run dev

This will start the server and allow you to interact with it using CLI.

Available Tools

The server provides the following tools:

  • fetch-fastmcp-readme: Retrieves README file from FastMCP GitHub repository

  • fetch-fastmcp-versions: Gets all versions and latest version info for FastMCP package on NPM

  • fetch-mcp-architecture-doc: Fetches MCP architecture documentation from official site

  • fetch-npm-types: Retrieves TypeScript type definitions for specified NPM packages

  • analyze-npm-types: Performs comprehensive TypeScript type analysis for NPM packages

  • get-npm-types-cache-stats: Shows cache statistics for type definition retrieval

Testing

npm run test

The tests verify that all modules can be properly imported and the main functionality works correctly.

Linting

Having a good linting setup reduces the friction for other developers to contribute to your project.

npm run lint

This project uses Prettier, ESLint and TypeScript ESLint to lint the code.

Formatting

Use npm run format to format the code.

npm run format

Configuration

The server is designed to work out of the box with no configuration required. It dynamically fetches content from GitHub API, NPM registry, and MCP official documentation using caching strategies for optimal performance.

Claude Desktop Integration

To use this server with Claude Desktop, add the following configuration to your Claude Desktop settings:

{
  "mcpServers": {
    "my-mcp-server": {
      "command": "npx",
      "args": ["tsx", "/PATH/TO/YOUR_PROJECT/src/server.ts"]
    }
  }
}

Replace /PATH/TO/YOUR_PROJECT with the actual path to your project directory.

Available Tools

6 tools
analyze-npm-typesB
Read-only

指定されたNPMパッケージのTypeScript型定義の包括的な分析を実行します。パッケージの型定義状態、おすすめのアプローチ、代替手段を提示します。

ParametersJSON Schema
NameRequiredDescriptionDefault
packageNameYesNPMパッケージ名(例: 'express', 'react')
versionNoバージョン(デフォルト: 'latest')latest

TDQS

B3.3/5.0
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/5

Is 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/5

Given 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/5

Does 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/5

Does 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/5

Does 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.

fetch-fastmcp-readmeB
Read-only

FastMCPのGitHubリポジトリからREADMEファイルを取得します

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
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/5

Is 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/5

Given 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/5

Does 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/5

Does 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/5

Does 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.

fetch-fastmcp-versionsB
Read-only

FastMCPパッケージのnpm上の全バージョンと最新バージョン情報を取得します

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
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/5

Is 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/5

Given 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/5

Does 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/5

Does 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/5

Does 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.

fetch-mcp-architecture-docB
Read-only

MCP公式サイトからアーキテクチャドキュメントを取得します

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
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/5

Is 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/5

Given 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/5

Does 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/5

Does 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/5

Does 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.

fetch-npm-typesA
Read-only

指定されたNPMパッケージのTypeScript型定義を取得します。メインパッケージの型定義または@types/パッケージから取得します。

ParametersJSON Schema
NameRequiredDescriptionDefault
packageNameYesNPMパッケージ名(例: 'express', 'react')
searchModeNo検索モード: 'main'=メインパッケージのみ, 'types-package'=@types/パッケージのみ, 'search'=両方を検索main
versionNoバージョン(デフォルト: 'latest')latest

TDQS

A4/5.0
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/5

Is 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/5

Given 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/5

Does 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/5

Does 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/5

Does 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.

get-cache-statsB
Read-only

NPM型定義キャッシュの統計情報と設定を表示します。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
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/5

Is 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/5

Given 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/5

Does 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/5

Does 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/5

Does 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.

TDQS

A3.6/5.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/5

All 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/5

With 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/5

The 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.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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