Install
$ agentstack add mcp-satyamsingh8306-mcp-arena ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
mcp_arena
[](https://badge.fury.io/py/mcp-arena) [](https://www.python.org/downloads/) [](https://opensource.org/licenses/MIT) [](https://github.com/psf/black) [](https://pepy.tech/projects/mcp-arena)
mcp_arena is a production-ready Python library for building MCP (Model Context Protocol) servers with intelligent agent orchestration and domain-specific presets.
✨ Features
- 🚀 Ready-to-use MCP servers for popular platforms (GitHub, Slack, Notion, AWS, etc.)
- 🤖 Intelligent agents with reflection, planning, and routing capabilities
- 🔧 Zero-configuration setup for common use cases
- 🏗️ Extensible architecture built on SOLID principles
- 📦 Modular design - use only what you need
🚀 Quick Start
Installation
# Core library
pip install mcp-arena
# With specific presets
pip install mcp-arena[github,slack,notion]
# All presets
pip install mcp-arena[all]
Basic Usage
from mcp_arena.presents.github import GithubMCPServer
# Zero-config GitHub MCP server
mcp_server = GithubMCPServer(token="your_github_token")
mcp_server.run()
Using Tools Directly
from mcp_arena.tools.github import GithubTools
from mcp_arena.presents.github import GithubMCPServer
# Create GitHub MCP server first
mcp_server = GithubMCPServer(token="your_token")
# Create tools wrapper
tool = GithubTools(server=mcp_server)
tools = tool.get_list_of_tools()
@mcp_server.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp_servevr.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
@mcp_server.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
"""Generate a greeting prompt"""
styles = {
"friendly": "Please write a warm, friendly greeting",
"formal": "Please write a formal, professional greeting",
"casual": "Please write a casual, relaxed greeting",
}
return f"{styles.get(style, styles['friendly'])} for someone named {name}."
Advance Documentation
from mcp.server.fastmcp import Icon
from mcp_arena.presents.github import GithubMCPServer
# Create an icon from a file path or URL
icon = Icon(
src="icon.png",
mimeType="image/png",
sizes="64x64"
)
# Add icons to server
mcp = GithubMCPServer(
"My Server",
website_url="https://example.com",
token="*******",
icons=[icon]
)
# Add icons to tools, resources, and prompts
@mcp.tool(icons=[icon])
def my_tool():
"""Tool with an icon."""
return "result"
@mcp.resource("demo://resource", icons=[icon])
def my_resource():
"""Resource with an icon."""
return "content"
With Agent Orchestration
from mcp_arena.presents.github import GithubMCPServer
from mcp_arena.agent.react_agent import ReactAgent
# Create MCP server
mcp_server = GithubMCPServer(token="your_token")
# Create agent separately
agent = ReactAgent(llm=None, memory_type="conversation")
# Run the server
mcp_server.run()
LangChain Integration
Using MCP Arena Wrapper
from mcp_arena.wrapper.langchain_wrapper import MCPLangChainWrapper
from mcp_arena.presents.github import GithubMCPServer
# Create MCP server
github_server = GithubMCPServer(token="your_token")
# Wrap with LangChain
wrapper = MCPLangChainWrapper(
servers={"github": github_server},
auto_start=True
)
# Connect and create agent
await wrapper.connect()
agent = wrapper.create_agent(
llm="gpt-4-turbo",
system_prompt="You are a GitHub assistant"
)
Direct langchainmcpadapters Usage
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain.agents import create_agent
from mcp_arena.presents.github import GithubMCPServer
# Start GitHub MCP server in background
github_server = GithubMCPServer(token="your_token", transport="stdio")
github_server.run()
# Create client with multiple servers
client = MultiServerMCPClient(
{
"github": {
"transport": "stdio",
"command": "python",
"args": ["/path/to/github_server_script.py"],
},
"math": {
"transport": "http",
"url": "http://localhost:8001/mcp",
}
}
)
tools = await client.get_tools()
agent = create_agent(
"claude-sonnet-4-5-20250929",
tools
)
# Use the agent
github_response = await agent.ainvoke(
{"messages": [{"role": "user", "content": "List my GitHub repositories"}]}
)
math_response = await agent.ainvoke(
{"messages": [{"role": "user", "content": "what's (3 + 5) x 12?"}]}
)
📚 Available Presets
Browser & Automation
- Browser - Browser automation with Playwright (navigate, screenshot, forms, extract data)
- Screen Capture - Take screenshots and screen recordings with PyAutoGUI
Video & Media
- Video - Video editing (trim, merge, effects, format conversion) with FFmpeg
- PDF - PDF processing (extract text/images, merge, split, watermark, encrypt)
- QR Code - Generate and decode QR codes
Data & Files
- Spreadsheet - Excel/CSV read/write with pandas and openpyxl
- Web Scraping - Extract data from websites with requests and BeautifulSoup
Communication
- Slack - Channels, messages, workflows
- WhatsApp - Messaging via Twilio API
- Gmail - Email management and sending
- Outlook - Microsoft 365 email and calendar
- Discord - Servers and channels
- Teams - Microsoft Teams integration
- Notification - Multi-platform notifications (Email, Slack, webhooks)
Development Platforms
- GitHub - Repositories, issues, PRs, workflows
- GitLab - Projects, CI/CD, issues
- Bitbucket - Repositories and pipelines
Productivity
- Notion - Databases, pages, blocks
- Confluence - Spaces and pages
- Jira - Projects, issues, workflows
Cloud Services
- AWS S3 - Storage operations
- Azure Blob - Azure storage
- Google Cloud Storage - GCP storage
System Operations
- Local Operations - File system and system ops
- Docker - Container management
- Kubernetes - Cluster operations
🤖 Agent Types
Reflection Agent
Self-improving agent that refines responses through iterative refinement.
from mcp_arena.agent.reflection_agent import ReflectionAgent
agent = ReflectionAgent(
llm=None,
memory_type="conversation"
)
ReAct Agent
Systematic reasoning and acting cycle for complex problem-solving.
from mcp_arena.agent.react_agent import ReactAgent
agent = ReactAgent(
llm=None,
memory_type="conversation"
)
Planning Agent
Goal decomposition and step-by-step execution for complex tasks.
from mcp_arena.agent.planning_agent import PlanningAgent
agent = PlanningAgent(
llm=None,
memory_type="conversation"
)
Router Agent
Dynamic agent selection based on task requirements.
from mcp_arena.agent.router import AgentRouter
router = AgentRouter()
# Add routing rules
router.add_route(
condition=lambda input_text: "github" in input_text.lower(),
agent_type="react",
config={"llm": your_llm}
)
router.add_route(
condition=lambda input_text: "reflect" in input_text.lower(),
agent_type="reflection",
config={"llm": your_llm}
)
🔧 Custom Tools
Extend any preset with custom tools:
from mcp_arena.presents.github import GithubMCPServer
from mcp_arena.tools.base import tool
@tool(description="Custom repository analyzer")
def analyze_repo(repo: str) -> str:
return f"Analysis for {repo}"
server = GithubMCPServer(
token="your_token",
extra_tools=[analyze_repo]
)
🤖 LangChain Integration
Integrate mcp_arena MCP servers with LangChain agents for powerful multi-service automation:
from langchain_openai import ChatOpenAI
from mcp_arena.wrapper.langchain_wrapper import MCPLangChainWrapper
from mcp_arena.presents.browser import BrowserMCPServer
# Initialize LLM
llm = ChatOpenAI(model="gpt-4-turbo")
# Create wrapper with browser server
wrapper = MCPLangChainWrapper(
servers={"browser": BrowserMCPServer(headless=True)},
auto_start=True
)
# Connect and create agent
await wrapper.connect()
agent = wrapper.create_agent(
llm=llm,
system_prompt="You are a helpful browser automation assistant"
)
# Use the agent
response = await wrapper.invoke_agent(
agent,
"Go to example.com and tell me the page title"
)
Multi-Server Agent Example
from langchain_openai import ChatOpenAI
from mcp_arena.wrapper.langchain_wrapper import MCPLangChainWrapper
from mcp_arena.presents.browser import BrowserMCPServer
from mcp_arena.presents.pdf import PDFMCPServer
from mcp_arena.presents.web_scraping import WebScrapingMCPServer
# Initialize LLM
llm = ChatOpenAI(model="gpt-4-turbo")
# Create wrapper with multiple servers
wrapper = MCPLangChainWrapper(
servers={
"browser": BrowserMCPServer(headless=True),
"pdf": PDFMCPServer(),
"web": WebScrapingMCPServer()
},
auto_start=True
)
# Connect and create agent with all tools
await wrapper.connect()
agent = wrapper.create_agent(
llm=llm,
system_prompt="""You are a powerful research assistant with access to:
- Browser automation (navigate websites, take screenshots)
- PDF processing (extract text, merge, split)
- Web scraping (extract data from websites)
"""
)
# Use the agent
response = await wrapper.invoke_agent(
agent,
"Research climate change: find a Wikipedia article, take a screenshot, and extract key facts to a PDF"
)
Installation:
pip install langchain-openai langchain-mcp-adapters
pip install "mcp-arena[browser,video,pdf,webscraping]"
📖 [Full Documentation](docs/LANGCHAININTEGRATION.md) 📖 [Agent Examples](mcparena/examples/mcpserveragent_examples.py)
🏗️ Custom MCP Server
Build from scratch for full control:
from mcp_arena.mcp.server import BaseMCPServer
from mcp_arena.tools.base import tool
@tool(description="Search internal docs")
def search_docs(query: str) -> str:
return f"Results for {query}"
class CustomMCPServer(BaseMCPServer):
def _register_tools(self):
self.add_tool(search_docs)
server = CustomMCPServer(
name="custom-server",
description="Custom MCP server"
)
server.run()
📖 Documentation
- [Installation Guide](docs/INSTALLATION.md) - Detailed installation instructions for all presets and communication services
- [MCP Servers Guide](docs/MCPSERVERSGUIDE.md) - Comprehensive guide to all 17 available MCP servers
- [Agent Guide](docs/AGENT_GUIDE.md) - Using and configuring intelligent agents
- [Tools Guide](docs/TOOLS_GUIDE.md) - Tool development and integration
- [LangChain Integration](docs/LANGCHAIN_INTEGRATION.md) - Integrate MCP servers with LangChain agents
- [Quick Start](docs/QUICKSTART.md) - Get started in minutes
- [Tutorial](docs/tutorial.md) - Step-by-step tutorial
Architecture
MCP Client
│
▼
┌─────────────────┐
│ MCP Server │ ← Core Layer
│ - Protocol │
│ - Auth │
│ - Tool Registry │
└─────────────────┘
│
▼
┌─────────────────┐
│ Agent System │ ← Intelligence Layer
│ - Reflection │
│ - ReAct │
│ - Planning │
│ - Router │
└─────────────────┘
│
▼
┌─────────────────┐
│ Tool Ecosystem │ ← Execution Layer
│ - Presets │
│ - Custom Tools │
│ - Orchestration │
└─────────────────┘
Installation Options
# Core only
pip install mcp-arena[core]
# Browser automation
pip install mcp-arena[browser]
# Video editing
pip install mcp-arena[video]
# PDF processing
pip install mcp-arena[pdf]
# QR code generation
pip install mcp-arena[qrcode]
# Spreadsheet operations
pip install mcp-arena[spreadsheet]
# Web scraping
pip install mcp-arena[webscraping]
# Screen capture
pip install mcp-arena[screencapture]
# Cloud storage (AWS S3, GCS, Azure)
pip install mcp-arena[cloudstorage]
# Notifications (Email, Slack, webhooks)
pip install mcp-arena[notification]
# Development platforms
pip install mcp-arena[github,gitlab,bitbucket]
# Data & storage
pip install mcp-arena[postgres,mongodb,redis,vectordb]
# Communication
pip install mcp-arena[slack,whatsapp,gmail,outlook]
# All communication services
pip install mcp-arena[communication]
# Productivity
pip install mcp-arena[notion,confluence,jira]
# Cloud services
pip install mcp-arena[aws,docker,kubernetes]
# System operations
pip install mcp-arena[local_operation]
# Agent framework
pip install mcp-arena[agents]
# All presets
pip install mcp-arena[all]
# Complete with dev tools
pip install mcp-arena[complete]
🤝 Contributing
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
Development Setup
# Clone the repository
git clone https://github.com/SatyamSingh8306/mcp_arena.git
cd mcp_arena
# Install in development mode
pip install -e .[dev]
# Run tests
pytest
# Run linting
black .
isort .
mypy .
Priority Areas
- New preset implementations
- Agent pattern improvements
- Documentation and examples
- Bug fixes and performance
📋 Requirements
- Python 3.12+
- MCP client compatible with Model Context Protocol v1.0+
📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
🔗 Links
- [Documentation](docs/) - Complete documentation library
- [Installation Guide](docs/INSTALLATION.md) - Installation instructions
- [MCP Servers Guide](docs/MCPSERVERSGUIDE.md) - Server documentation
- [LangChain Integration](docs/LANGCHAIN_INTEGRATION.md) - LangChain integration guide
- Repository
- Issues
- PyPI
🚧 Status
Version: 0.2.1 (Production-ready)
✅ Stable Features:
- MCP server base classes
- 17 production-ready presets
- 4 agent types
- Tool registration system
- SOLID architecture
- Communication services (Gmail, Outlook, Slack, WhatsApp)
🔄 Evolving APIs:
- Agent interfaces may enhance based on feedback
- New preset additions
- Performance optimizations
📈 Production Ready:
- Comprehensive documentation
- Active development
- Community support
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: SatyamSingh8306
- Source: SatyamSingh8306/mcp_arena
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.