# π LW MCP Agents
**LW MCP Agents** is a lightweight, modular framework for building and orchestrating AI agents using the **Model Context Protocol (MCP)**. It empowers you to rapidly design multi-agent systems where each agent can specialize, collaborate, delegate, and reasonβwithout writing complex orchestration logic.
> **Build scalable, composable AI systems using only configuration files.**
---
## π Why Use LW MCP Agents?
- β
**Plug-and-Play Agents**: Launch intelligent agents with zero boilerplate using simple JSON configs.
- β
**Multi-Agent Orchestration**: Chain agents together to solve complex tasksβno extra code required.
- β
**Share & Reuse**: Distribute and run agent configurations across environments effortlessly.
- β
**MCP-Native**: Seamlessly integrates with any MCP-compatible platform, including Claude Desktop.
---
## π§ What Can You Build?
- Research agents that summarize documents or search the web
- Orchestrators that delegate tasks to domain-specific agents
- Systems that scale reasoning recursively and aggregate capabilities dynamically
---
## ποΈ Architecture at a Glance

---
## π Table of Contents
- [Getting Started](#getting-started)
- [Example Agents](#example-agents)
- [Running Agents](#running-agents)
- [Custom Agent Creation](#custom-agent-creation)
- [How It Works](#how-it-works)
- [Technical Architecture](#technical-architecture)
- [Acknowledgements](#acknowledgements)
---
## π Getting Started
### π§ Installation
```bash
git clone https://github.com/Autumn-AIs/LW-MCP-agents.git
cd LW-MCP-agents
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
```
### βΆοΈ Run Your First Agent
```bash
python src/agent/agent_runner.py --config examples/base_agent/base_agent_config.json
```
### π€ Try a Multi-Agent Setup
**Terminal 1 (Research Agent Server):**
```bash
python src/agent/agent_runner.py --config examples/orchestrator_researcher/research_agent_config.json --server-mode
```
**Terminal 2 (Orchestrator Agent):**
```bash
python src/agent/agent_runner.py --config examples/orchestrator_researcher/master_orchestrator_config.json
```
Your orchestrator now intelligently delegates research tasks to the research agent.
---
### π₯οΈ Claude Desktop Integration
Configure agents to run inside **Claude Desktop**:
**1. Locate your Claude config file:**
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`
**2. Add your agent under `mcpServers`:**
```json
{
"mcpServers": {
"research-agent": {
"command": "/bin/bash",
"args": ["-c", "/path/to/venv/bin/python /path/to/agent_runner.py --config=/path/to/agent_config.json --server-mode"],
"env": {
"PYTHONPATH": "/path/to/project",
"PATH": "/path/to/venv/bin:/usr/local/bin:/usr/bin"
}
}
}
}
```
---
## π¦ Example Agents
- **Base Agent**
A minimal agent that connects to tools via MCP.
π `examples/base_agent/`
- **Orchestrator + Researcher**
Demonstrates hierarchical delegation and capability sharing.
π `examples/orchestrator_researcher/`
π‘ **Contribute your own example!** Submit a PR or reach out to the maintainers.
---
## βοΈ Running Agents
### πΉ Basic Command
```bash
python src/agent/agent_runner.py --config <your_config.json>
```
### πΈ Advanced Options
| Option | Description |
|--------|-------------|
| `--server-mode` | Exposes the agent as an MCP server |
| `--server-name` | Assigns a custom MCP server name |
---
## π οΈ Custom Agent Creation
### π§± Minimal Config
```json
{
"agent_name": "my-agent",
"llm_provider": "groq",
"llm_api_key": "YOUR_API_KEY",
"server_mode": false
}
```
### π§ Adding Capabilities
Define specialized functions the agent can reason over:
```json
"capabilities": [
{
"name": "summarize_document",
"description": "Summarize a document in a concise way",
"input_schema": {
"type": "object",
"properties": {
"document_text": { "type": "string" },
"max_length": { "type": "integer", "default": 200 }
},
"required": ["document_text"]
},
"prompt_template": "Summarize the following document in {max_length} words:\n\n{document_text}"
}
]
```
### π Orchestrator Agent
```json
{
"agent_name": "master-orchestrator",
"servers": {
"research-agent": {
"command": "python",
"args": ["src/agent/agent_runner.py", "--config=research_agent_config.json", "--server-mode"]
}
}
}
```
---
## 𧬠How It Works
### π§© Capabilities as Reasoning Units
Each capability:
1. Fills in a prompt using provided arguments
2. Executes internal reasoning using LLMs
3. Uses tools or external agents
4. Returns the result
### π Research Example
```
[INFO] agent:master-orchestrator - Executing tool: research_topic
[INFO] agent:research-agent - Using tool: brave_web_search
[INFO] agent:research-agent - Finished capability: research_topic
```
---
## π§± Technical Architecture
### π§ Key Components
| Component | Role |
|----------|------|
| `AgentServer` | Starts, configures, and runs an agent |
| `MCPServerWrapper` | Wraps the agent to expose it over MCP |
| `CapabilityRegistry` | Loads reasoning tasks from config |
| `ToolRegistry` | Discovers tools from other agents |
### π Architecture Highlights
- **Hierarchical Design**: Compose systems of agents with recursive reasoning
- **Delegated Capabilities**: Agents delegate intelligently to peers
- **Tool Sharing**: Tools available in one agent become accessible to others
- **Code-Free Composition**: Create entire systems via configuration
---
## π Acknowledgements
This project draws inspiration from the brilliant work on [mcp-agents](https://github.com/lastmile-ai/mcp-agent) by LastMile AI.