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
  • uv package manager

Installation

  1. Clone the repository:
git clone <your-repo-url>
cd jester
  1. Create and activate a virtual environment:
uv venv
source .venv/bin/activate  # On Unix/macOS
# or
.venv\Scripts\activate  # On Windows
  1. 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:

  • fastmcp for MCP server implementation
  • httpx for HTTP client functionality
  • uv for 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.