Skip to main content

A simple MCP (Model Context Protocol) Server example

Project description

MCP Server Example

A simple Python-based MCP (Model Context Protocol) Server that demonstrates the basic capabilities of an MCP server.

Features

This MCP server provides:

Tools

  • greeting: Generate personalized greetings with different styles
  • calculator: Perform basic arithmetic operations (add, subtract, multiply, divide)

Resources

  • sample://users: A list of sample user data
  • sample://products: A list of sample product data

Prompts

  • code_review: Generate code review checklists for different programming languages and complexity levels

Installation

From PyPI

pip install mcp-server-poc-rahmac

From Source

git clone https://github.com/rahmac/mcp_poc.git
cd mcp_poc
pip install -e .

Development Installation

git clone https://github.com/rahmac/mcp_poc.git
cd mcp_poc
pip install -e ".[dev]"

Usage

Running the Server

The server can be run directly:

mcp-server-poc-rahmac

Or using Python:

python -m mcp_server_example.server

Using with MCP Clients

This server implements the MCP protocol and can be used with any MCP-compatible client. The server communicates via stdio.

Example Configuration

For MCP clients that use configuration files:

{
  "servers": {
    "example": {
      "command": "mcp-server-poc-rahmac",
      "args": []
    }
  }
}

API Reference

Tools

greeting

Generate a personalized greeting.

Parameters:

  • name (string, required): The name of the person to greet
  • greeting_type (string, optional): Type of greeting - "hello", "hi", or "howdy" (default: "hello")

Example:

{
  "name": "greeting",
  "arguments": {
    "name": "Alice",
    "greeting_type": "hi"
  }
}

calculator

Perform basic arithmetic operations.

Parameters:

  • operation (string, required): The operation - "add", "subtract", "multiply", or "divide"
  • a (number, required): First number
  • b (number, required): Second number

Example:

{
  "name": "calculator",
  "arguments": {
    "operation": "add",
    "a": 5,
    "b": 3
  }
}

Resources

sample://users

Returns a JSON array of sample user objects with id, name, and email fields.

sample://products

Returns a JSON array of sample product objects with id, name, and price fields.

Prompts

code_review

Generate a code review checklist.

Parameters:

  • language (string, required): Programming language
  • complexity (string, optional): Complexity level - "basic", "intermediate", or "advanced" (default: "intermediate")

Development

Setting up Development Environment

# Clone the repository
git clone https://github.com/rahmac/mcp_poc.git
cd mcp_poc

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install in development mode
pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

# Format code
black src/ tests/

# Sort imports
isort src/ tests/

# Type checking
mypy src/

Building for PyPI

# Build the package
python -m build

# Upload to PyPI (requires credentials)
twine upload dist/*

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Run the test suite
  6. Submit a pull request

Changelog

0.1.0 (2024-06-10)

  • Initial release
  • Basic MCP server implementation
  • Greeting and calculator tools
  • Sample resources
  • Code review prompt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_poc_rahmac-0.1.1.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_poc_rahmac-0.1.1-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_poc_rahmac-0.1.1.tar.gz.

File metadata

  • Download URL: mcp_server_poc_rahmac-0.1.1.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.0

File hashes

Hashes for mcp_server_poc_rahmac-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7a02f5200fa733ce1138446e4e168be5f51512d0f924201ac24e00af250c62a5
MD5 a477af9584b0ba8846f27923efb4bbeb
BLAKE2b-256 d8de7cdde852b4b85f6959bb9ac65fa861ba4b4a7c00528a10e0dc9aca080e3d

See more details on using hashes here.

File details

Details for the file mcp_server_poc_rahmac-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_poc_rahmac-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1943234da2397bb1d9ea4b3e4ab46c208d5a0635cc414c46da5e61740946b645
MD5 cdd29ce34d738c8484136aaec37b6fbe
BLAKE2b-256 54aef7aab5e89c505aa2c4a9eee710f1e4d51a2d2282e7276dc59e3e5330e405

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page