MCP Server Research logo

MCP Server Research

by ckz

This project contains research and demos related to MCP (Message Coordination Protocol) server implementation. It provides a reference implementation and demonstrations of the protocol in action.

View on GitHub

Last updated: N/A

MCP Server Research Project

This project contains research and demos related to MCP (Message Coordination Protocol) server implementation.

Overview

The Message Coordination Protocol (MCP) provides a standardized way for distributed systems to communicate and coordinate actions. This repository includes a reference implementation and demonstrations of the protocol in action.

Project Structure

mcp_server_research/
├── docs/          # Documentation files
├── src/           # Source code
│   └── demo/      # Demo implementations
└── requirements.txt

Getting Started

Prerequisites

  • Python 3.8+
  • Flask
  • Requests

Installation

# Clone the repository
git clone https://github.com/ckz/mcp_server_research.git
cd mcp_server_research

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

# Install dependencies
pip install -r requirements.txt

Running the Demo

To run the MCP server with default settings:

cd src/demo
python simple_mcp_server.py

To run with custom settings using environment variables:

cd src/demo
DEBUG=true PORT=5001 python simple_mcp_server.py

Then visit http://localhost:5001 (or the custom port you specified) to view the dashboard.

To run a client demo in a separate terminal:

cd src/demo
python client_demo.py --server http://localhost:5001 --duration 30 --interval 2

You should see the server accepting connections and the client successfully sending messages.

Demo Features

The simple MCP server demo implements a basic message coordination protocol server that:

  • Registers and tracks connected clients
  • Processes various message types (heartbeat, data, command)
  • Routes messages to appropriate destinations
  • Provides a web dashboard for monitoring system activity
  • Maintains an in-memory message history

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Changelog

2024-02-24

  • Added proper error handling to the client code for connection failures
  • Using sessions in the client for better connection management
  • Added CORS support to the server for cross-origin requests
  • Implemented timeouts for API calls to prevent hanging
  • Made debug mode configurable through environment variables
  • Fixed dependency issues by adding flask-cors and specifying werkzeug version
  • Improved documentation in code comments