Minimal MCP Server
A minimal MCP server boilerplate in Python for testing client-server communication, providing a simple 'hello' tool to verify connection.
README
Minimal MCP Server Boilerplate
A minimal Model Context Protocol (MCP) server implementation in Python for testing client-server communication.

What This Does
This boilerplate provides the absolute minimum code needed to:
- ✅ Connect with MCP clients (Cursor, Claude Desktop, etc.)
- ✅ Respond to initialization requests
- ✅ List available tools
- ✅ Execute a simple "hello" tool
Quick Start
1. Prerequisites
- Python 3.9 or higher
- No external dependencies required!
2. Test Locally
# Make server executable
chmod +x server.py
# Run the test client
python test_client.py
You should see:
============================================================
Testing MCP Server
============================================================
1. Testing initialize...
✓ Initialize successful
Server: minimal-mcp-server
2. Testing tools/list...
✓ Found 1 tool(s):
- hello: A simple hello tool to test MCP connection
3. Testing tools/call (hello)...
✓ Tool call successful:
Hello, Developer! MCP connection is working! 🎉
============================================================
All tests passed! 🎉
============================================================
Connecting to MCP Clients
Cursor IDE
-
Find your Cursor MCP config file:
- macOS:
~/Library/Application Support/Cursor/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json - Windows:
%APPDATA%\Cursor\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json - Linux:
~/.config/Cursor/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
- macOS:
-
Add this configuration (update paths to match your system):
{ "mcpServers": { "minimal-mcp-server": { "command": "python3", "args": ["/absolute/path/to/mcp-boilerplate/server.py"], "cwd": "/absolute/path/to/mcp-boilerplate" } } } -
Restart Cursor and verify connection in settings
-
Test: Ask Cursor to "Call the hello tool with name 'YourName'"
Claude Desktop
-
Find Claude's config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add the same configuration as above
-
Restart Claude Desktop
-
Test: Ask Claude to use the hello tool
Project Structure
mcp-boilerplate/
├── server.py # Main MCP server implementation
├── test_client.py # Local testing script
├── requirements.txt # Dependencies (empty - uses stdlib)
├── mcp-config.json # Example client configuration
└── README.md # This file
How It Works
MCP Protocol Flow
-
Initialize: Client sends initialization request
{"method": "initialize", "params": {...}} -
List Tools: Client requests available tools
{"method": "tools/list"} -
Call Tool: Client executes a tool
{"method": "tools/call", "params": {"name": "hello", "arguments": {...}}}
Key Components
MinimalMCPServer: Main server classget_tools(): Returns tool definitionscall_tool(): Executes tool logichandle_request(): Routes JSON-RPC requestsrun_stdio(): Main loop reading from stdin, writing to stdout
Extending the Boilerplate
Adding a New Tool
-
Add tool definition in
get_tools():{ "name": "my_tool", "description": "Does something useful", "inputSchema": { "type": "object", "properties": { "param": {"type": "string", "description": "..."} }, "required": ["param"] } } -
Add handler in
call_tool():if name == "my_tool": result = do_something(arguments.get("param")) return {"type": "text", "text": result}
Adding Dependencies
If you need external libraries:
-
Add to
requirements.txt:requests>=2.31.0 -
Install:
pip install -r requirements.txt
Troubleshooting
Server not connecting?
- Verify Python path is correct in config
- Use absolute paths (not relative)
- Check file permissions (
chmod +x server.py)
"Method not found" errors?
- Ensure method names match exactly (case-sensitive)
- Check JSON-RPC format is correct
Server crashes?
- Verify Python 3.9+ is installed
- Check for syntax errors:
python -m py_compile server.py
Next Steps
Once connection is verified:
- Add your custom tools
- Integrate with databases, APIs, or services
- Add error handling and logging
- Implement MCP resources and prompts
Resources
License
MIT License - feel free to use this boilerplate for your projects!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.