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 section - Ensure 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 -11MIT 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