Skip to main content
Glama

MCP Boilerplate Server

by shazaaly
README.md6.62 kB
# 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](https://docs.astral.sh/uv/getting-started/installation/) (recommended) or pip ## Installation Options ### Option 1: Install from PyPI (Recommended) ```bash # Install with uv (recommended) uv add mcp-server-boilerplate # Or install with pip pip install mcp-server-boilerplate # not published , this is boilerplate ``` After installation, you can run the server directly: ```bash mcp-server-boilerplate ``` ### Option 2: Install from GitHub (Development) 1. **Clone the repository**: ```bash git clone <YOUR_GITHUB_REPO_URL> cd mcp_server ``` 2. **Install uv** (if not already installed): ```bash # On macOS and Linux curl -LsSf https://astral.sh/uv/install.sh | sh # On Windows powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" ``` 3. **Install dependencies**: ```bash uv sync ``` **Alternative with pip**: ```bash pip install fastmcp>=2.11.3 ``` 4. **Test the server**: ```bash uv run python main.py ``` You should see the FastMCP banner and server startup message. Press `Ctrl+C` to stop. ## Available Tools - `greet(name: str)` - Greet a person by name - `add(a: int, b: int)` - Add two numbers together - `multiply(a: int, b: int)` - Multiply two numbers together - `get_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: ```bash # Find uv installation path which uv # Get your current directory pwd ``` ### 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): ```json { "mcpServers": { "mcp-server-boilerplate": { "command": "mcp-server-boilerplate" } } } ``` #### If Installed from GitHub (Development) ```json { "mcpServers": { "mcp-server-boilerplate": { "command": "/path/to/uv", "args": [ "run", "python", "main.py" ], "cwd": "/path/to/your/mcp_server" } } } ``` **Important**: Replace the paths with your actual values: - Replace `/path/to/uv` with the output from `which 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: 1. Start the server in one terminal: ```bash uv run python main.py ``` 2. In MCP Inspector, use these connection settings: - **Connection Type**: Local Command - **Command**: `/home/shaza/.local/bin/uv` (use `which 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'"** ```bash # Install dependencies uv sync # or pip install fastmcp>=2.11.3 ``` **2. "python: command not found"** - Use `python3` instead of `python` - 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 1. Test the server manually: `uv run python main.py` 2. Check your paths with `which uv` and `pwd` 3. Validate your JSON config at [jsonlint.com](https://jsonlint.com/) 4. Check Claude Desktop logs for error messages ## Development ### Project Structure - `main.py` - Entry point that starts the MCP server - `server.py` - Main server code with tools, resources, and prompts - `pyproject.toml` - Python project configuration and dependencies ### Adding New Features - **Tools**: Add functions decorated with `@mcp.tool` in `server.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 1. **Install build tools**: ```bash uv add --dev build twine ``` 2. **Create PyPI account** at [pypi.org](https://pypi.org/account/register/) 3. **Configure authentication**: ```bash # Create API token at https://pypi.org/manage/account/token/ # Store it securely - you'll use it as password with username '__token__' ``` ### Publishing Process 1. **Update version** in `pyproject.toml` and `mcp_server_boilerplate/__init__.py` 2. **Build the package**: ```bash uv run python -m build ``` 3. **Test upload to TestPyPI** (recommended first time): ```bash uv run twine upload --repository testpypi dist/* ``` 4. **Upload to PyPI**: ```bash uv run twine upload dist/* ``` ### Updating the Package 1. **Update version numbers** in: - `pyproject.toml` - `mcp_server_boilerplate/__init__.py` 2. **Clean previous builds**: ```bash rm -rf dist/ build/ *.egg-info/ ``` 3. **Build and upload**: ```bash uv run python -m build uv run twine upload dist/* ``` ### 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

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/shazaaly/mcp-boilerplate'

If you have feedback or need assistance with the MCP directory API, please join our Discord server