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_poc_rahmac.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.2.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.2-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_server_poc_rahmac-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 67c520d57bd5baea38636b44a82c3fed3f3e8d1abd948781f0300556afeaad8e
MD5 220eb56899ba8eff69911bf63962ff03
BLAKE2b-256 f3e56f48c630ef81b06a4d21030daced73c21c40ff174b989abc03a7851c7da3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mcp_server_poc_rahmac-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6beba7f39f94af7da3955addbb21d0138d24b186e2d1a92171a4550be60b8639
MD5 4670a29aea78688850517c865166b7d3
BLAKE2b-256 0405fe374cc743d1ad9964f116e89ca5456b3daca54f4908fbc6a8f912a4061f

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