Content
# Tool List
A powerful interface for extending AI capabilities through remote control, calculations, email operations, knowledge search, and more.
## Overview
MCP (Model Context Protocol) is a protocol that allows servers to expose tools that can be invoked by language models. Tools enable models to interact with external systems, such as querying databases, calling APIs, or performing computations. Each tool is uniquely identified by a name and includes metadata describing its schema.
## Features
- 🔌 Bidirectional communication between AI and external tools
- 🔄 Automatic reconnection with exponential backoff
- 📊 Real-time data streaming
- 🛠️ Easy-to-use tool creation interface
- 🔒 Secure WebSocket communication
- ⚙️ Multiple transport types support (stdio/sse/http)
## Quick Start
1. Install dependencies:
```bash
pip install -r requirements.txt
```
2. Set up environment variables:
```bash
export MCP_ENDPOINT=<your_mcp_endpoint>
```
3. Run the calculator example:
```bash
python mcp_pipe.py calculator.py
```
Or run all configured servers:
```bash
python mcp_pipe.py
```
*Requires `mcp_config.json` configuration file with server definitions (supports stdio/sse/http transport types)*
## Project Structure
- `mcp_pipe.py`: Main communication pipe that handles WebSocket connections and process management
- `calculator.py`: Example MCP tool implementation for mathematical calculations
- `requirements.txt`: Project dependencies
## Config-driven Servers
Edit the `mcp_config.json` file to configure the server list (you can also set the `MCP_CONFIG` environment variable to point to another configuration file).
Configuration instructions:
- Start all configured services without parameters (automatically skip entries with `disabled: true`)
- Run a single local script file with parameters
- `type=stdio` starts directly; `type=sse/http` is proxied through `python -m mcp_proxy`
## Creating Your Own MCP Tools
Here's a simple example of creating an MCP tool:
```python
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("YourToolName")
@mcp.tool()
def your_tool(parameter: str) -> dict:
"""Tool description here"""
# Your implementation
return {"success": True, "result": result}
if __name__ == "__main__":
mcp.run(transport="stdio")
```
## Use Cases
- Mathematical calculations
- Email operations
- Knowledge base search
- Remote device control
- Data processing
- Custom tool integration
## Requirements
- Python 3.7+
- websockets>=11.0.3
- python-dotenv>=1.0.0
- mcp>=1.8.1
- pydantic>=2.11.4
- mcp-proxy>=0.8.2
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgments
- Thanks to all contributors who have helped shape this project
- Inspired by the need for extensible AI capabilities
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.