Skip to main content
Glama

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

Installation

  1. Clone or extract the project

    cd reasoning_engine_mcp_demo
  2. Create virtual environment

    python -m venv .venv # Windows .venv\Scripts\activate # Linux/Mac source .venv/bin/activate
  3. Install dependencies

    pip install -r requirements.txt
  4. Set API key

    # 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

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

python -m mcp.claude_agent --question "Your question here"

Option 3: HTTP API Server

# Start server python mcp_api_server.py # Server runs on http://localhost:8000 # API docs: http://localhost:8000/docs

API Example:

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:

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

# 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

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/arslanmanzoorr/MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server