Jester MCP Server
April 19, 2025 ยท View on GitHub
A simple implementation of a Model Context Protocol (MCP) server using Python. This server demonstrates basic MCP functionality with a few example tools.
Overview
Jester is a basic MCP server that implements a few example tools to demonstrate the Model Context Protocol. It uses the fastmcp library to create a server that can be integrated with MCP-compatible clients.
Features
- Simple greeting tool (
hello_jester) - Version information tool (
get_jester_version) - Example of a dangerous tool (for educational purposes)
Prerequisites
- Python 3.10 or higher
uvpackage manager
Installation
- Clone the repository:
git clone <your-repo-url>
cd jester
- Create and activate a virtual environment:
uv venv
source .venv/bin/activate # On Unix/macOS
# or
.venv\Scripts\activate # On Windows
- Install dependencies:
uv pip install -e .
Usage
Run the server:
uv run jester.py
The server will start and listen for MCP connections using Server-Sent Events (SSE) transport.
MCP Client Configuration
To connect to this MCP server from a client (like Cursor), you need to configure your MCP client settings. Create or update your mcp config file in the appropriate location:
Add the following:
{
"mcpServers": {
"jester": {
"url": "http://localhost:8000/sse"
}
}
}
This configuration tells your MCP client to connect to the Jester server running on localhost port 8000 using SSE transport.
List of existing MCP clients https://modelcontextprotocol.io/clients
Available Tools
hello_jester
- Description: Get a response from Jester to a user greeting
- Input:
user_input(string) - Output: A greeting message from Jester
get_jester_version
- Description: Get the current version of Jester
- Input: None
- Output: Version string (e.g., "1.0.0")
Development
This project uses:
fastmcpfor MCP server implementationhttpxfor HTTP client functionalityuvfor package management
Security Note
The repository includes an example of a dangerous tool (delete_entire_filesystem) for educational purposes. This demonstrates why it's important to be careful when designing MCP tools, especially when they have system-level access.