MCP Echo Server
by chrishayuk
The MCP Echo Server is a lightweight Python-based microservice designed to provide simple echo functionality. It receives messages and returns them back to the client, serving as a basic diagnostic and testing tool within the MCP framework.
View on GitHub
Last updated: N/A
MCP Echo Server
Overview
The MCP Echo Server is a lightweight Python-based microservice designed to provide simple echo functionality. It receives messages and returns them back to the client, serving as a basic diagnostic and testing tool within the MCP framework.
Project Details
- Version: 0.1.0
- Python Compatibility: Python 3.11+
Features
- Message Echo: Returns any message sent to the server
- Comprehensive Validation: Robust input validation using Pydantic models
- Async Server Architecture: Built with asyncio for efficient performance
- Flexible Configuration: Configurable through environment variables and config files
Dependencies
Core dependencies:
- mcp (>=1.6.0)
- pydantic (>=2.11.2)
- PyYAML (>=6.0.2)
Development dependencies:
- pytest (>=8.3.5)
Installation
Prerequisites
- Python 3.11 or higher
- pip
- (Optional) Virtual environment recommended
Install from PyPI
pip install chuk-mcp-echo-server
Install from Source
- Clone the repository:
git clone <repository-url>
cd chuk-mcp-echo-server
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
- Install the package:
pip install . # Installs the package in editable mode
Development Installation
To set up for development:
pip install .[dev] # Installs package with development dependencies
Running the Server
Command-Line Interface
chuk-mcp-echo-server
Programmatic Usage
from chuk_mcp_echo_server.main import main
if __name__ == "__main__":
main()
Environment Variables
NO_BOOTSTRAP
: Set to disable component bootstrapping- Other configuration options can be set in the configuration files
Available Tools
Echo
Input:
message
: The string message to echo back
Example:
echo("Hello, world!")
Returns:
- The original message in an EchoResult object
Development
Code Formatting
- Black is used for code formatting
- isort is used for import sorting
- Line length is set to 88 characters
Running Tests
pytest
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Ensure code passes formatting and testing
- Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request