usefastmcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@usefastmcpRoll a die for me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
usefastmcp
A simple Model Context Protocol (MCP) server built with FastMCP.
This project demonstrates how to expose custom tools as MCP servers over two different transports — stdio (local, default) and HTTP (remote).
Project Structure
usefastmcp/
├── pyproject.toml # Project config & dependencies (fastmcp)
├── uv.lock # Locked dependency versions
├── .python-version # Python 3.13
├── servers/
│ ├── stdioserver.py # MCP server over stdio transport
│ └── httpserver.py # MCP server over HTTP transport
└── .vscode/
└── mcp.json # VS Code Copilot MCP configurationRelated MCP server: mcp-stdio
Requirements
Python 3.13+
uv package manager
Setup
uv syncThis creates the virtual environment and installs all dependencies (including fastmcp).
Available Tools
Both servers expose the same tools:
Tool | Signature | Description |
|
| Returns a random integer between 1 and 6 |
|
| Adds two integers and returns the sum |
Running the Server
1. Stdio Transport (default)
Runs over standard input/output — ideal for local host applications that launch the process directly.
uv run servers/stdioserver.py2. HTTP Transport
Runs as an HTTP server on http://127.0.0.1:8000 — useful for remote clients and web-based access.
uv run servers/httpserver.pyNote: The FastMCP CLI (
fastmcp run <file>) always forces stdio transport and ignores thetransport="http"option in your code. Runuv run servers/httpserver.pydirectly to use HTTP transport.
VS Code Integration
This project includes .vscode/mcp.json for use with VS Code Copilot. The config launches the stdio server automatically.
Open the project in VS Code
Restart VS Code (or reload the window) so the MCP server is picked up
The
roll_diceandadd_numberstools become available to the Copilot agent

Available Tools
2 toolsadd_numberA
Add 2 numbers and returns result
| Name | Required | Description | Default |
|---|---|---|---|
| first | Yes | ||
| second | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the core behavior (arithmetic addition) and that a result is returned, but it does not specify return type, edge-case behavior, or the absence of side effects beyond what is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that front-loads the action and contains no unnecessary words. Every phrase contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial pure function, this is nearly sufficient, but without an output schema it does not explicitly state that the returned result is the numeric sum or what type it is. It is adequate but leaves minor ambiguity about return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only says '2 numbers' and does not explain the roles of the first and second parameters, their constraints, or ordering, leaving the agent to infer from parameter names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Add'), a clear target resource ('2 numbers'), and an outcome ('returns result'). It is unambiguous and clearly distinct from the sibling tool roll_dice, which involves randomness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: an agent would choose this when needing the sum of two integer inputs. However, there is no explicit when-to-use or when-not-to-use guidance, and no mention of alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roll_diceA
This method will return number between 1 to 6, when asked to roll a dice.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It discloses the output range and the context, but does not explicitly state that the result is random, which is a meaningful behavioral trait for a dice-roll tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no unnecessary content beyond a minor filler phrase. The key purpose and trigger are front-loaded and immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers the essential return range and use case. It is sufficient for simple invocation, though explicitly mentioning randomness would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly focuses on behavior rather than parameters, and no parameter documentation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource: returns a number between 1 and 6 when rolling a dice. This clearly distinguishes it from the sibling add_number, which has a completely different purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'when asked to roll a dice' gives a clear usage condition. It does not explicitly mention alternatives or exclusions, but the sibling tool is unrelated and the intended trigger is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
roll_dice and add_number are completely distinct in purpose and behavior. There is no ambiguity about which tool to select for a given task.
Both tool names follow a consistent verb_noun pattern: roll_dice and add_number. The naming style is uniform and predictable.
With only two tools, the server feels quite thin. While each tool has a basic utility purpose, the set is minimal and barely provides enough surface to be considered a coherent collection.
There is no clear domain or lifecycle being covered; the tools are unrelated utilities. Obvious complementary operations (e.g., subtract, multiply, or dice with custom sides) are absent, leaving the surface feeling arbitrary and incomplete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Remote MCP server exposing SMI Aware tools, resources, and skills over Streamable HTTP.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceExposes all CLI commands as MCP tools over stdio or HTTP transport.19Apache 2.0
- AlicenseNot gradedqualityCmaintenanceA minimal, zero-dependency MCP server that enables defining and running tools over stdio transport, without extra features like HTTP or resources.151MIT
- FlicenseNot gradedqualityDmaintenanceExposes app-registered tools as an MCP server for OpenClaw, forwarding actual tool execution back to the app over a WebSocket bridge.
- FlicenseNot gradedqualityCmaintenanceA minimal MCP server that exposes tools for addition, echoing text, time lookup, and URL fetching, with support for HTTP and stdio transports.
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/VinodNallavade/FastMCPServer-Examples'
If you have feedback or need assistance with the MCP directory API, please join our Discord server