About Python Fastmcp Tpl
Python Fastmcp Tpl is an MCP server in the AI category: template project with FastMCP.
Install
git clone https://github.com/m4tice/python-fastmcp-tplThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Python Fastmcp Tpl
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
Python FastMCP Template
A template for creating Model Context Protocol (MCP) servers using Python and FastMCP.
Overview
This template provides a foundation for building MCP servers with support for two transport protocols:
- STDIO (default) - Standard input/output communication
- SSE - Server-Sent Events over HTTP
Features
- Easy configuration switching between STDIO and SSE protocols
- Automatic
mcp.jsonconfiguration generation - Example tool implementation (
mcp_get_precise_time) - Clean project structure with modular components
File Structure
├── mcp_server.py # Main MCP server application
├── mcp_settings.py # Configuration settings
├── mcp_transport_configurator.py # Auto-configures mcp.json
├── mcp_util.py # Utility functions (add your tools here)
├── requirements.txt # Python dependencies
└── README.md # This file
Setup
-
Install dependencies:
pip install -r requirements.txt -
Configure transport protocol: Edit
mcp_settings.pyto choose your transport protocol:SETTINGS = { PROTOCOL : STDIO, # or SSE PORT : "5500" # only used for SSE }
Transport Protocols
STDIO (Default)
- Uses standard input/output for communication
- Suitable for direct integration with clients that support process spawning
- Configuration is automatically generated for VS Code MCP extension
SSE (Server-Sent Events)
- HTTP-based communication using Server-Sent Events
- Runs on configurable port (default: 5500)
- Suitable for web-based integrations or when firewall restrictions apply
Running the Server
Method 1: Direct execution (Recommended)
python mcp_server.py
This will:
- Automatically configure the appropriate
mcp.jsonfile - Start the server with the selected transport protocol
Method 2: Configuration only
To just update the mcp.json configuration without starting the server:
python mcp_transport_configurator.py
Configuration Files
The server automatically generates .vscode/mcp.json based on your protocol choice.
Notes about generated configuration
- The configurator writes
.vscode/mcp.jsoninto the current working directory (cwd). The generated configuration embeds the VS Code placeholder${workspaceFolder}(not${cwd}) in command/args/env entries so VS Code resolves paths relative to the workspace when the MCP extension runs the agent. - For STDIO mode the configurator picks an OS-appropriate Python executable
inside
.venv:- Windows:
.venv\\Scripts\\python.exe - macOS/Linux:
.venv/bin/python
- Windows:
Path-separator note
- The configurator uses Python path utilities when constructing the
placeholder-containing strings. On Windows this results in backslashes
(\) inside the generated JSON values; on POSIX systems it uses
forward slashes (/). Because VS Code expands
${workspaceFolder}at runtime, mixed or platform-specific separators may appear after expansion. If you need perfectly normalized paths in your workspace configuration, consider either:- Using forward slashes in the JSON (e.g.
${workspaceFolder}/.venv/...), or - Using the per-platform overrides in
launch.json/configuration blocks.
- Using forward slashes in the JSON (e.g.
STDIO Configuration (examples)
Windows (what the configurator may produce when run on Windows):
{
"servers": {
"my-mcp-server": {
"command": "${workspaceFolder}\\.venv\\Scripts\\python.exe",
"args": ["${workspaceFolder}\\agent_tpl\\mcp_server.py"],
"env": {
"PYTHONPATH": "${workspaceFolder}"
}
}
}
}
macOS / Linux (what the configurator may produce when run on POSIX):
{
"servers": {
"my-mcp-server": {
"command": "${workspaceFolder}/.venv/bin/python",
"args": ["${workspaceFolder}/agent_tpl/mcp_server.py"],
"env": {
"PYTHONPATH": "${workspaceFolder}"
}
}
}
}
SSE Configuration (example)
{
"servers": {
"my-sse-mcp-server": {
"type": "sse",
"url": "http://127.0.0.1:5500/sse"
}
}
}
Adding Your Own Tools
- Implement your functions in
mcp_util.py - Add MCP tool wrappers in
mcp_server.pyusing the@app.tool()decorator
Example:
# In mcp_util.py
def my_custom_function(param1, param2):
"""Your custom logic here"""
return f"Result: {param1} + {param2}"
# In mcp_server.py
@app.tool()
def my_custom_tool(param1: str, param2: str):
"""
Description of what this tool does
"""
return my_custom_function(param1, param2)
Troubleshooting
Common Issues
-
Port already in use (SSE mode):
- Change the port in
mcp_settings.py - Check if another service is using the port
- Change the port in
-
Python path issues (STDIO mode):
- Ensure you're using a virtual environment
- Verify the Python path in the generated
mcp.json
-
Module import errors:
- Check that all dependencies are installed
- Verify PYTHONPATH is set correctly
Logs and Debugging
- STDIO mode: Check VS Code MCP extension logs
- SSE mode: Server logs are printed to console
Sample prompt
Tell me the precise time (using MCP Tools).
License
This template is provided as-is for educational and development purposes.
Author
GUU8HC
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.
