# MCP Reasoning Engine with Claude Agent
A production-ready reasoning engine that combines Claude AI with Model Context Protocol (MCP) tools for structured reasoning across legal, health, and science domains.
## Features
- π€ **Claude Agent Integration**: Uses Anthropic's Claude API with tool use capabilities
- π§ **MCP Tools**: Three specialized tools for knowledge search, schema validation, and rubric evaluation
- π **RAG Integration**: Knowledge base search across domain-specific documents
- β
**Schema Validation**: Ensures structured JSON output matches required schemas
- π **Rubric Scoring**: Domain-specific evaluation with pass/fail thresholds
- π **HTTP API**: RESTful API for easy integration
- π³ **Docker Ready**: Containerized deployment support
## Architecture
```
βββββββββββββββββββ
β HTTP API β (Optional - mcp_api_server.py)
β or Direct β
ββββββββββ¬βββββββββ
β
βΌ
βββββββββββββββββββ ββββββββββββββββ
β Claude Agent βββββββΊβ MCP Server β
β claude_agent.py β β server.py β
ββββββββββ¬βββββββββ ββββββββ¬ββββββββ
β β
βΌ βΌ
βββββββββββββββββββ ββββββββββββββββ
β Anthropic API β β RAG Tools β
β (Claude) β β Validators β
βββββββββββββββββββ ββββββββββββββββ
```
## Quick Start
### Prerequisites
- Python 3.8+
- Anthropic API key ([Get one here](https://console.anthropic.com/))
### Installation
1. **Clone or extract the project**
```bash
cd reasoning_engine_mcp_demo
```
2. **Create virtual environment**
```bash
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activate
```
3. **Install dependencies**
```bash
pip install -r requirements.txt
```
4. **Set API key**
```bash
# Windows PowerShell
$env:ANTHROPIC_API_KEY = "your_api_key_here"
# Linux/Mac
export ANTHROPIC_API_KEY="your_api_key_here"
```
### Usage
#### Option 1: Direct Python Usage
```python
import asyncio
from mcp.claude_agent import ClaudeReasoningAgent
async def main():
agent = ClaudeReasoningAgent()
result = await agent.reason("Is a verbal promise enforceable?")
print(result)
asyncio.run(main())
```
#### Option 2: Command Line
```bash
python -m mcp.claude_agent --question "Your question here"
```
#### Option 3: HTTP API Server
```bash
# Start server
python mcp_api_server.py
# Server runs on http://localhost:8000
# API docs: http://localhost:8000/docs
```
**API Example:**
```bash
curl -X POST http://localhost:8000/reason \
-H "Content-Type: application/json" \
-d '{"question": "Is a verbal promise enforceable?"}'
```
## Project Structure
```
reasoning_engine_mcp_demo/
βββ mcp/ # MCP server and agent
β βββ server.py # MCP server with 3 tools
β βββ claude_agent.py # Claude agent with MCP integration
β βββ DEPLOYMENT.md # Deployment guide
βββ rag_docs/ # Knowledge base documents
β βββ legal/ # Legal domain documents
β βββ health/ # Health domain documents
β βββ science/ # Science domain documents
βββ domains/ # Domain configurations
β βββ domain_config.json # Domain routing config
β βββ legal/rubric.json # Legal rubric
β βββ health/rubric.json # Health rubric
β βββ science/rubric.json # Science rubric
βββ schemas/ # JSON schemas
β βββ universal_reasoning_schema.json
βββ validators/ # Validation modules
β βββ schema_validator.py
β βββ rubric_validator.py
βββ tools_rag.py # RAG search implementation
βββ router.py # Domain routing
βββ mcp_api_server.py # HTTP API server
βββ requirements.txt # Python dependencies
βββ README.md # This file
```
## MCP Tools
The MCP server exposes three tools:
1. **search_knowledge_base(query: str)**
- Searches RAG documents for relevant information
- Returns formatted results with source, title, and content
2. **validate_reasoning_schema(output_json: str)**
- Validates JSON output against the universal reasoning schema
- Returns validation status and errors
3. **evaluate_with_rubric(domain: str, output_json: str)**
- Evaluates reasoning output against domain-specific rubric
- Returns scores, pass/fail status, and human review flags
## Domains
The system supports three domains:
- **Legal**: Contract law, enforceability, legal reasoning
- **Health**: Medical information, symptoms, safety boundaries
- **Science**: Scientific reasoning, hypotheses, evidence evaluation
Each domain has:
- Domain-specific RAG documents
- Custom rubric for evaluation
- Keyword-based routing
## Configuration
### Environment Variables
- `ANTHROPIC_API_KEY` (required): Your Anthropic API key
- `MCP_PORT` (optional): HTTP API port (default: 8000)
- `MCP_HOST` (optional): HTTP API host (default: 0.0.0.0)
### Model Selection
Default model: `claude-3-haiku-20240307`
To use a different model:
```python
agent = ClaudeReasoningAgent(model="claude-3-sonnet-20240229")
```
Available models:
- `claude-3-haiku-20240307` (fast, cost-effective)
- `claude-3-sonnet-20240229` (balanced)
- `claude-3-opus-20240229` (most capable)
## API Documentation
When running the HTTP API server, visit:
- **Swagger UI**: http://localhost:8000/docs
- **ReDoc**: http://localhost:8000/redoc
### Endpoints
- `GET /` - API information
- `GET /health` - Health check
- `GET /tools` - List available MCP tools
- `POST /reason` - Process a reasoning question
## Testing
```bash
# Test MCP server tools
python test_mcp_server.py
# Test with Claude
python test_mcp_server.py --with-claude
# Run all test cases
python run_all_tests.py
```
## Deployment
See `mcp/DEPLOYMENT.md` for detailed deployment instructions including:
- Local deployment
- Docker containerization
- Cloud deployment (AWS, Azure, GCP)
- Production best practices
## Security Notes
- **API Keys**: Never commit API keys to version control
- **Health Domain**: Always requires human review (configured in rubric)
- **Input Validation**: All inputs are validated before processing
- **HTTPS**: Use HTTPS in production environments
## Troubleshooting
### "ANTHROPIC_API_KEY not found"
- Ensure environment variable is set in your shell session
- Check that it's set before running Python scripts
### "ModuleNotFoundError: No module named 'mcp.claude_agent'"
- This is a namespace conflict with the `mcp` package
- The code handles this automatically via importlib
- If issues persist, check Python path configuration
### "Model not found" errors
- Verify your API key has access to the requested model
- Try using `claude-3-haiku-20240307` (most widely available)
## Support
For issues or questions, please refer to:
- `mcp/DEPLOYMENT.md` - Deployment guide
- `DEPLOYMENT_GUIDE.md` - Detailed deployment options
- API documentation at `/docs` endpoint
## Changelog
### Version 1.0.0
- Initial release
- MCP server with 3 tools
- Claude agent integration
- HTTP API server
- Domain routing and rubric evaluation
- Full test suite# MCP
# MCP