# 🎯 One-command setup
pip install -e ".[dev]"
# 🔥 Launch MCP server for Claude Desktop, MCP clients
python -m mcp_eval_server.server
# or
make dev
# 🏥 Health check (automatic on port 8080)
curl http://localhost:8080/health # ✅ Liveness probe
curl http://localhost:8080/ready # 🎯 Readiness probe
curl http://localhost:8080/metrics # 📊 Performance metrics
🌐 REST API服务器模式(HTTP)
# 🚀 Launch REST API server with FastAPI
python -m mcp_eval_server.rest_server --port 8080 --host 0.0.0.0
# or
make serve-rest
# 📚 Interactive API documentation
open http://localhost:8080/docs
# 🧪 Quick API test
curl http://localhost:8080/health
curl http://localhost:8080/tools/categories
🔄 HTTP网桥模式(MCP over HTTP)
# 🌍 MCP protocol over HTTP with Server-Sent Events
make serve-http
# 📡 Access via JSON-RPC over HTTP on port 9000
curl -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' \
http://localhost:9000/
✨ 完整的工具库
🤖 LLM作为评判工具 (4工具)
🎯 单一响应评估:具有加权评分和置信度指标的可定制标准
⚖️ 配对比较:具有自动位置偏差缓解功能的头对头分析
🏆 多响应排名:锦标赛、循环赛和基于评分的排名算法
📊 基于参考的评估:真实性、完整性和风格的黄金标准比较
🤝 多法官共识:通过协议分析和置信度加权进行集成评估
📝 快速评估工具 (4工具)
🔍 清晰度分析:基于规则的歧义检测+LLM语义分析,并提出改进建议
🔄 一致性测试:跨温度设置的多运行方差分析,带有异常值检测
✅ 完整性测量:通过可视化热图生成进行组件覆盖率分析
🎯 相关性评估:使用TF-IDF矢量化和漂移分析进行语义对齐
🛠️ 代理评估工具 (4工具)
⚙️ 工具使用评估:选择准确性、序列优化、参数验证和效率评分
✅ 任务完成情况分析:多标准成功评估,包括部分信用和失败分析
🧠 推理评估:决策质量、逻辑连贯性和幻觉检测
📈 绩效基准测试:通过基线比较进行跨技能水平的全面能力测试
🔍 质量评估工具 (3个工具)
✅ 事实核查:根据知识库进行索赔验证,并进行置信度评分和证据跟踪
🧩 连贯性分析:逻辑流程评估、矛盾检测和结构分析
🛡️ 毒性检测:通过偏差模式分析识别多类别有害内容
🔗 RAG评估工具 (8工具)
📊 检索相关性:使用LLM判断验证和可配置阈值进行语义相似性评估
🎯 上下文利用率:分析检索到的上下文如何很好地整合到生成的响应中
⚓ 答案基础:根据严格控制的支持上下文进行索赔验证
🚨 幻觉检测:响应和源上下文之间的矛盾识别
🎯 检索覆盖率:主题完整性评估和信息差距分析
📝 引用准确性:跨多种格式的参考文献验证和引用质量评分
🧩 块相关性:对单个文档段进行评估,包括排名和评分
🏆 检索基准测试:使用标准IR指标(精确度、召回率、MRR、NDCG)进行比较分析
⚖️ 偏见和公平工具 (6工具)
🎯 人口统计学偏差检测:受保护群体偏见的模式匹配和LLM评估
📊 代表公平:跨背景和群体的平衡代表性分析
⚖️ 结果公平:跨受保护属性的差异影响分析
🌍 文化敏感性:跨文化适宜性和意识评估
🗣️ 语言偏见检测基于语言的歧视和方言偏见识别
🔗 交叉公平:跨多个身份维度的复合偏见效应
🛡️ 稳健性工具 (5工具)
⚔️ 对抗性测试:恶意即时抵抗和攻击向量评估
🔄 输入灵敏度:输入变化和扰动下的响应稳定性测试
🛡️ 快速注射阻力:针对注射攻击的安全防御评估
📈 分布偏移:域外数据性能下降分析
🎯 扰动下的一致性:跨输入修改的输出稳定性测量
🔒 安全和校准工具 (4工具)
⚠️ 有害内容检测:跨安全维度的多类别风险评估
📋 说明如下:遵守约束和安全指示
🚫 拒绝恰当性:评估适当的系统拒绝行为
💎 价值对齐:人类价值观和伦理原则一致性评估
🌍 多语言工具 (4工具)
🔄 翻译质量:跨语言的准确性、流畅性和完整性评估
🔗 跨语言一致性:跨多语言版本的一致性评估
🎭 文化适应:本地化质量和文化适宜性评估
🔀 语言混合检测:不恰当的代码转换和语言混合识别
⚡ 性能工具 (4工具)
⏱️ 响应延迟:通过统计分析和百分位数进行发电速度跟踪
💻 计算效率:资源使用监测和效率指标
📈 吞吐量扩展:并发请求处理和扩展行为分析
💾 内存监控:内存消耗模式跟踪和泄漏检测
🔐 隐私工具 (8工具)
🔍 PII检测:具有可配置灵敏度的个人身份信息检测
📊 叫做数据缩小:评估数据收集的必要性和目的一致性
📋 同意遵守:隐私法规合规性评估(GDPR、CCPA、COPPA、HIPAA)
🎭 匿名有效性:重新识别风险分析和效用保护
🚨 数据泄漏检测:意外数据暴露和推断泄漏识别
📖 明确同意:隐私声明的可读性和可理解性评估
🗃️ 数据保留合规性:保留政策的一致性和法规遵从性
🏗️ 隐私设计:系统级隐私实施和设计原则评估
🔄 工作流管理工具 (3个工具)
🎛️ 评估套房:可定制的多步骤管道,具有加权标准和成功阈值
⚡ 并行/顺序执行:通过可配置的并发性和资源管理优化处理
📊 结果比较:具有趋势检测、显著性检验和回归分析的统计分析
📊 判断校准工具 (2个工具)
🤝 协议测试:与人类基线比较的法官间相关性分析
🎯 准则优化:使用机器学习进行自动调整,以改善人类对齐
🔧 服务器管理工具 (9工具)
📋 法官管理:可用模型列表、能力评估、配置验证
💾 结果存储:具有元数据和统计报告的综合评价历史
⚡ 缓存管理:多级缓存统计和性能优化
🔍 健康监测:系统状态检查和性能指标
🚀 高级功能
🎯 法学硕士作为法官的最佳实践
位置偏差缓解:用于公平比较的自动响应位置随机化
思维链整合逐步推理以提高评估质量
置信度校准:评估可靠性的自我评估指标
多法官共识:带有分歧分析的集成方法
人类对齐:根据地面实况评估进行定期校准
⚡ 性能和可扩展性
轻量级依赖关系:使用标准库(scikit-learn、numpy)而不是繁重的ML框架
智能缓存:具有TTL和无效的多级缓存(内存+磁盘)
异步处理:具有可配置并发性的非阻塞评估执行
批量操作:高效的多项目处理和进度跟踪
资源管理:具有自动缩放功能的内存和CPU优化
快速启动:快速初始化,无需加载大型预训练模型
🔒 企业安全
加密随机:安全生成随机数以减少偏差
API密钥管理:通过环境变量集成实现安全的凭据处理
输入验证:全面的参数验证和净化
错误隔离:优雅的故障处理,详细的错误报告
审计跟踪:完整的评估历史记录和合规报告
📊 分析与洞察
统计分析:相关性分析、显著性检验、趋势检测
性能指标:延迟跟踪、吞吐量监控、成功率分析
质量仪表板:实时评估质量监控,并发出警报
比较分析:具有回归检测的A/B测试功能
预测分析:性能趋势预测和异常检测
🛠️ 安装和设置
快速安装
# Clone and install (lightweight dependencies only)
cd mcp-servers/python/mcp_eval_server
pip install -e ".[dev]"
# Set up API keys (optional - rule-based judge works without them)
export OPENAI_API_KEY="sk-your-key-here"
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com/"
export AZURE_OPENAI_API_KEY="your-azure-api-key"
# Configure health check endpoints (optional)
export HEALTH_CHECK_PORT=8080 # Default: 8080
export HEALTH_CHECK_HOST=0.0.0.0 # Default: 0.0.0.0
# Note: No heavy ML dependencies required!
# Uses efficient TF-IDF + scikit-learn instead of transformers
# Use custom model configuration
export MCP_EVAL_MODELS_CONFIG="./my-custom-models.yaml"
export DEFAULT_JUDGE_MODEL="my-custom-judge"
# Copy default config for customization
make copy-config # Copies to ./custom-config/
make show-config # Show current configuration status
make validate-config # Validate configuration syntax
# 1. Run MCP server (for Claude Desktop, etc.)
make dev # Shows connection info + starts server
# 2. Test basic functionality
make example # Run evaluation example
make test-mcp # Test MCP protocol
选项2:REST API服务器(FastAPI)
# 1. Run native REST API server
make serve-rest # Starts on http://localhost:8080
# 2. Test REST API endpoints
make test-rest # Test all REST endpoints
# 3. View interactive documentation
open http://localhost:8080/docs # Swagger UI
open http://localhost:8080/redoc # ReDoc
# 4. Get connection info
make rest-info # Show complete REST API guide
选项3:HTTP网桥(基于HTTP的MCP)
# 1. Run MCP protocol over HTTP
make serve-http # Starts on http://localhost:9000
# 2. Test HTTP endpoints
make test-http # Test MCP JSON-RPC endpoints
# 3. Get connection info
make http-info # Show complete HTTP bridge guide
选项4:Docker部署
# Build and deploy
make build && make run
集成示例
MCP客户端集成
# Basic MCP integration
from mcp import Client
client = Client("mcp-eval-server")
# Evaluate any AI output
result = await client.call_tool("judge.evaluate_response", {
"response": "Your AI output here",
"criteria": [{"name": "quality", "description": "Overall quality", "scale": "1-5", "weight": 1.0}],
"rubric": {"criteria": [], "scale_description": {"1": "Poor", "5": "Excellent"}}
})
REST API集成
# Start REST API server
make serve-rest
# Check server health
curl http://localhost:8080/health
# List tool categories
curl http://localhost:8080/tools/categories
# Evaluate response directly via REST
curl -X POST http://localhost:8080/judge/evaluate \
-H "Content-Type: application/json" \
-d '{
"response": "Paris is the capital of France.",
"criteria": [
{
"name": "accuracy",
"description": "Factual accuracy",
"scale": "1-5",
"weight": 1.0
}
],
"rubric": {
"criteria": [],
"scale_description": {"1": "Wrong", "5": "Correct"}
},
"judge_model": "rule-based"
}'
HTTP网桥集成(MCP over HTTP)
# Start HTTP bridge server
make serve-http
# List available tools (JSON-RPC)
curl -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' \
http://localhost:9000/
# Evaluate response via HTTP bridge (JSON-RPC)
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "judge.evaluate_response",
"arguments": {
"response": "Paris is the capital of France.",
"criteria": [{"name": "accuracy", "description": "Factual accuracy", "scale": "1-5", "weight": 1.0}],
"rubric": {"criteria": [], "scale_description": {"1": "Wrong", "5": "Correct"}},
"judge_model": "rule-based"
}
}
}' \
http://localhost:9000/
Python REST API客户端集成
import httpx
import asyncio
async def evaluate_via_rest_api():
"""Example using native REST API endpoints."""
async with httpx.AsyncClient() as client:
base_url = "http://localhost:8080"
# Check health
health = await client.get(f"{base_url}/health")
print(f"Server status: {health.json()['status']}")
# List tool categories
categories = await client.get(f"{base_url}/tools/categories")
print(f"Available categories: {len(categories.json()['categories'])}")
# Evaluate response using REST endpoint
evaluation = await client.post(f"{base_url}/judge/evaluate", json={
"response": "Your AI response here",
"criteria": [
{"name": "quality", "description": "Overall quality", "scale": "1-5", "weight": 1.0}
],
"rubric": {
"criteria": [],
"scale_description": {"1": "Poor", "5": "Excellent"}
},
"judge_model": "rule-based"
})
result = evaluation.json()
print(f"Evaluation score: {result['overall_score']}")
# Check content toxicity
toxicity = await client.post(f"{base_url}/quality/toxicity", json={
"content": "This is a test message",
"toxicity_categories": ["profanity", "hate_speech"],
"sensitivity_level": "moderate",
"judge_model": "rule-based"
})
result = toxicity.json()
print(f"Toxicity detected: {result['toxicity_detected']}")
# Run evaluation
asyncio.run(evaluate_via_rest_api())