richinex/berry-mcp
If you are the rightful owner of berry-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Berry MCP Server is a universal framework designed to facilitate the creation and deployment of custom tool servers for AI assistants using the Model Context Protocol.
add_numbers
Add two numbers together.
greet
Generate a personalized greeting.
generate_random
Generate a random number.
format_text
Format text according to specified parameters.
get_system_info
Retrieve system information.
Berry MCP Server
A universal Model Context Protocol (MCP) server framework that makes it easy to create and deploy custom tool servers for AI assistants like Claude.
✨ Features
- 🔧 Universal Framework: Create MCP servers for any type of tools
- 🎯 Simple Tool Creation: Decorator-based tool registration with automatic JSON schema generation
- 🔌 Plugin Architecture: Load tools from any Python module or package
- 🚀 Multiple Transports: Support for stdio and HTTP/SSE communication
- ⚙️ Flexible Configuration: Environment variables and command-line options
- 📝 Auto-Documentation: Automatic tool discovery and schema generation
- 🔒 Type Safety: Full type annotation support with validation
🚀 Quick Start
Installation
# Install from PyPI (when published)
uv add berry-mcp
# Or install from source
git clone https://github.com/richinex/berry-mcp-server.git
cd berry-mcp-server
uv pip install -e .
Create Your First Tool
# my_tools.py
from berry_mcp.tools.decorators import tool
@tool(description="Add two numbers together")
def add_numbers(a: float, b: float) -> float:
"""Add two numbers and return the result"""
return a + b
@tool(description="Generate a greeting message")
def greet(name: str, title: str = "friend") -> str:
"""Generate a personalized greeting"""
return f"Hello {title} {name}!"
Run Your Server
# Load your custom tools
BERRY_MCP_TOOLS_PATH=my_tools uv run python -m berry_mcp
# Or run with built-in example tools
uv run python -m berry_mcp
VS Code Integration
Add to your .vscode/mcp.json
:
{
"inputs": [],
"servers": {
"my-custom-tools": {
"type": "stdio",
"command": "uv",
"args": ["run", "python", "-m", "berry_mcp"],
"env": {
"BERRY_MCP_TOOLS_PATH": "my_tools"
}
}
}
}
📖 Documentation
- - Complete setup instructions
- - Create custom tools
- - Technical reference
🛠️ Built-in Tools
Berry MCP comes with example tools to get you started:
- Math Operations:
add_numbers
,generate_random
- Text Processing:
format_text
,find_replace_text
,encode_decode_text
- System Info:
get_system_info
,generate_uuid
- Data Tools:
validate_json
,generate_report
- Async Examples:
async_process_text
🔧 Advanced Usage
Multiple Tool Sources
BERRY_MCP_TOOLS_PATH="my_tools,web_tools,data_processors" uv run python -m berry_mcp
HTTP Server Mode
uv run python -m berry_mcp --transport http --port 8080
Environment Configuration
export BERRY_MCP_SERVER_NAME="my-custom-server"
export BERRY_MCP_LOG_LEVEL="DEBUG"
export BERRY_MCP_TOOLS_PATH="my_tools,another_module.tools"
uv run python -m berry_mcp
🏗️ Architecture
Berry MCP follows SOLID principles with a clean, extensible architecture:
- MCPServer: Core server orchestration
- ToolRegistry: Plugin-based tool management
- Transport Layer: Abstracted communication (stdio/HTTP)
- Protocol Handler: JSON-RPC message processing
- Tool Framework: Decorator-based tool creation
📋 Requirements
- Python 3.10+
- MCP protocol support
- Type annotations for automatic schema generation
🤝 Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes following the existing patterns
- Add tests for new functionality
- Run the test suite:
pytest tests/
- Submit a pull request
📝 License
MIT License - see file for details.
🙏 Acknowledgments
- Built on the Model Context Protocol
- Inspired by the need for easy MCP server creation
- Following clean code principles and design patterns
🚀 Start building your custom MCP tools today with Berry MCP Server!