MCP Server
A Model Context Protocol (MCP) server built with FastMCP that provides tools, resources, and prompts for greeting, math operations, user management, and system monitoring.
Features
Tools: Greeting, math operations (add/multiply), user information lookup
Resources: Server info, user data, configuration settings
Prompts: User analysis, report generation, system health checks, troubleshooting
Quick Start
Prerequisites
Python 3.12 or higher
uv (recommended) or pip
Installation Options
Option 1: Install from PyPI (Recommended)
After installation, you can run the server directly:
Option 2: Install from GitHub (Development)
Clone the repository:
Install uv (if not already installed):
Install dependencies:
Alternative with pip:
Test the server:
You should see the FastMCP banner and server startup message. Press Ctrl+C
to stop.
Available Tools
greet(name: str)
- Greet a person by nameadd(a: int, b: int)
- Add two numbers togethermultiply(a: int, b: int)
- Multiply two numbers togetherget_user_info(user_id: int)
- Get user information by ID
Connecting to Claude Desktop
To use this MCP server with Claude Desktop, you need to add it to your configuration file.
Step 1: Find Your Config File
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
%APPDATA%/Claude/claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
Step 2: Find Your Paths
First, find the required paths for your system:
Step 3: Add Server Configuration
If Installed from PyPI
Add this to your claude_desktop_config.json
(create the file if it doesn't exist):
If Installed from GitHub (Development)
Important: Replace the paths with your actual values:
Replace
/path/to/uv
with the output fromwhich uv
Replace
/path/to/your/mcp_server
with your project directory path
After adding the configuration, restart Claude Desktop to load the MCP server.
Testing with MCP Inspector
To test your server with MCP Inspector:
Start the server in one terminal:
In MCP Inspector, use these connection settings:
Connection Type: Local Command
Command:
/home/shaza/.local/bin/uv
(usewhich uv
to find your path)Arguments:
run python main.py
Working Directory:
/home/shaza/shaza/mcp_server
Or alternatively, if using direct python:
Command:
python3
Arguments:
main.py
Working Directory:
/home/shaza/shaza/mcp_server
Troubleshooting
Common Issues
1. "ModuleNotFoundError: No module named 'fastmcp'"
2. "python: command not found"
Use
python3
instead ofpython
Make sure Python 3.12+ is installed
3. "uv: command not found"
Install uv following the installation instructions above
Or use the direct Python configuration in Claude Desktop
4. Claude Desktop connection issues
Verify all paths in your config are absolute (not relative)
Restart Claude Desktop after config changes
Check that the config file is valid JSON (no trailing commas)
Test the server runs manually first:
uv run python main.py
5. MCP Inspector connection errors
Make sure the server isn't already running in another terminal
Use absolute paths for command and working directory
Verify uv is in your PATH
Getting Help
Test the server manually:
uv run python main.py
Check your paths with
which uv
andpwd
Validate your JSON config at jsonlint.com
Check Claude Desktop logs for error messages
Development
Project Structure
main.py
- Entry point that starts the MCP serverserver.py
- Main server code with tools, resources, and promptspyproject.toml
- Python project configuration and dependencies
Adding New Features
Tools: Add functions decorated with
@mcp.tool
inserver.py
Resources: Add functions decorated with
@mcp.resource("uri")
Prompts: Add functions decorated with
@mcp.prompt
All functions should include proper type hints and docstrings for the best experience.
Publishing to PyPI (For Maintainers)
First Time Setup
Install build tools:
Create PyPI account at pypi.org
Configure authentication:
Publishing Process
Update version in
pyproject.toml
andmcp_server_boilerplate/__init__.py
Build the package:
Test upload to TestPyPI (recommended first time):
Upload to PyPI:
Updating the Package
Update version numbers in:
pyproject.toml
mcp_server_boilerplate/__init__.py
Clean previous builds:
Build and upload:
Before You Publish
Update GitHub URLs in
pyproject.toml
Test the package locally:
uv run mcp-server-boilerplate
Add your email to
pyproject.toml
authors sectionEnsure all sensitive information is removed
local-only server
The server can only run on the client's local machine because it depends on local resources.
A basic MCP server template built with FastMCP that provides simple tools for greeting users, performing math operations, and managing user information. Serves as a starting point for building custom MCP servers with essential functionality examples.
Related MCP Servers
- AsecurityAlicenseAqualityA starter template for building MCP servers with FastMCP, providing testing, linting, formatting, and NPM publishing setup.Last updated -10MIT License
- -securityAlicense-qualityA simple MCP server built with FastMCP for experimentation and learning purposes. Includes basic web tools like article fetching and serves as a human-readable template for building custom MCP servers.Last updated -AGPL 3.0
- -securityFlicense-qualityA comprehensive template for building Model Context Protocol servers with FastMCP framework, featuring modular architecture, auto-discovery registry, and support for multiple transport methods. Includes example arithmetic and weather tools to help developers quickly create custom MCP servers.Last updated -
- -securityFlicense-qualityA demonstration MCP server built with FastMCP v2.0 that provides basic mathematical calculations and greeting functionality. Features Docker containerization, comprehensive testing, and CI/CD automation for learning MCP development patterns.Last updated -2