- Enhanced `ARCHITECTURE.md` with details on LLM models for work (Llama 3.1 70B Q4) and family agents (Phi-3 Mini 3.8B Q4). - Introduced new documents: - `ASR_EVALUATION.md` for ASR engine evaluation and selection. - `HARDWARE.md` outlining hardware requirements and purchase plans. - `IMPLEMENTATION_GUIDE.md` for Milestone 2 implementation steps. - `LLM_CAPACITY.md` assessing VRAM and context window limits. - `LLM_MODEL_SURVEY.md` surveying open-weight LLM models. - `LLM_USAGE_AND_COSTS.md` detailing LLM usage and operational costs. - `MCP_ARCHITECTURE.md` describing the Model Context Protocol architecture. - `MCP_IMPLEMENTATION_SUMMARY.md` summarizing MCP implementation status. These updates provide comprehensive guidance for the next phases of development and ensure clarity in project documentation.
1.6 KiB
1.6 KiB
MCP Server
Model Context Protocol (MCP) server implementation for Atlas voice agent.
Overview
This server exposes tools via JSON-RPC 2.0 protocol, allowing LLM agents to interact with external services and capabilities.
Architecture
- Protocol: JSON-RPC 2.0
- Transport: HTTP (can be extended to stdio)
- Tools: Modular tool system with registration
Quick Start
Setup (First Time)
# Create virtual environment and install dependencies
./setup.sh
# Or manually:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Running the Server
# Option 1: Use the run script (recommended)
./run.sh
# Option 2: Activate venv manually and run as module
source venv/bin/activate
python -m server.mcp_server
# Server runs on http://localhost:8000/mcp
Note: On Debian/Ubuntu systems, you must use a virtual environment due to PEP 668 (externally-managed-environment). The setup script handles this automatically.
Testing
# Test tools/list
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
# Test tools/call (echo tool)
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {"name": "echo", "arguments": {"text": "hello"}},
"id": 2
}'
Tools
Currently implemented:
echo- Simple echo tool for testingweather- Weather lookup (stub implementation)
See tools/ directory for tool implementations.