About Simple MCP Server
Simple MCP Server is a minimal FastMCP example for developers building MCP servers. It supports stdio and HTTP transports, with sample tools and token-based HTTP authentication.
Key features
- 01stdio and HTTP transports
- 02HTTP token authentication
- 03Greeting, version, and system tools
- 04Configurable example server
Use cases
- 01Testing MCP client connections
- 02Trying tools over HTTP or stdio
- 03Adapting the example with custom tools
MCP support
It exposes greeting, version, and system information tools to MCP clients. Clients can connect over stdio or HTTP.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMESimple MCP Server
A minimal implementation of the Model Context Protocol (MCP) server using FastMCP. This example demonstrates how to create a simple MCP server that clients like Windsurf IDE and Claude can connect to.
What is MCP?
The Model Context Protocol (MCP) is a standard that connects LLMs with external tools and data sources. MCP servers extend AI capabilities by providing access to specialized tools, external information, and services.
Features
- Dual transport support (HTTP and stdio)
- Simple authentication middleware for HTTP transport
- Example tools implementation
- Compatible with MCP clients like Windsurf IDE and Claude
Prerequisites
Installation
-
Clone this repository:
git clone https://github.com/rjmoggach/simple-mcp-server.git cd simple-mcp-server -
Install dependencies:
uv sync
Usage
You can run the server in three different modes:
Run with both transports (default)
python run_server.py
This will start the HTTP server on port 9876 and the stdio server simultaneously.
HTTP transport only
python run_server.py --http-only
stdio transport only
python run_server.py --stdio-only
Available Tools
The server provides these example tools:
-
hello_world - A simple greeting tool
- Parameters:
name(string, default: "World"): Name to greetdelay(integer, default: 0): Optional delay in seconds
- Returns: A greeting message
- Parameters:
-
get_version - Returns server version information
- Returns: Version details including server name and API version
-
system_info - Returns basic system information
- Returns: Python version and platform details
Connecting to AI Systems
Windsurf IDE Configuration
Add the following configuration to your Windsurf IDE settings:
"simple-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:9876/",
"--allow-http",
"--header",
"Authorization: Bearer SIMPLE_MCP_SERVER"
]
}
Claude Desktop Configuration
Add the following to your Claude Desktop configuration:
{
"mcpServers": {
"simple-mcp": {
"command": "uv",
"args": [
"run",
"--project", "/path/to/simple-mcp-server",
"python", "/path/to/simple-mcp-server/run_server.py",
"--stdio-only"
],
"cwd": "/path/to/simple-mcp-server"
}
}
}
Replace /path/to/simple-mcp-server with the actual path to your project.
Authentication
For HTTP transport, the server uses a simple token-based authentication:
- Token:
SIMPLE_MCP_SERVER(defined inrun_server.py) - Header format:
Authorization: Bearer SIMPLE_MCP_SERVER
Extending the Server
To add your own tools, modify the create_mcp_server() function in run_server.py:
@mcp.tool()
async def your_custom_tool(param1: str, param2: int = 0) -> dict:
"""Your custom tool description."""
# Implementation here
return {"result": "Your output"}
License
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.