全方位声纳mcp
用于perfSONAR的MCP(模型上下文协议)服务器-查询测量值、发现测试点和安排网络测试。
🚀 特性
测量档案查询
- 使用过滤器查询历史测量值
- 获取吞吐量、延迟和丢包数据
- 使用摘要访问原始时间序列数据
- 发现可用的测量类型
查找服务集成
- 在全球范围内查找perfSONAR测试点
- 按位置搜索(城市、国家)
- 查找pScheduler服务以进行测试
测试调度(pScheduler)
- 计划吞吐量测试(iperf3)
- 安排延迟测试(owping)
- 安排RTT测试(ping)
- 监控测试状态并检索结果
📦 安装
pip install -e .使用其他工具进行开发:
pip install -e '.[dev]'⚙️ 配置
所需的环境变量:
export PERFSONAR_HOST=perfsonar.example.com可选:
export LOOKUP_SERVICE_URL=https://lookup.perfsonar.net/lookup
export PSCHEDULER_URL=https://perfsonar.example.com/pscheduler🏃 用法
本地(标准传输)
本地AI客户端的标准MCP stdio传输:
python -m perfsonar_mcp
# or
perfsonar-mcpWeb访问(SSE/HTTP传输)
FastMCP通过SSE(服务器发送事件)或HTTP启用web可访问的MCP服务器:
# SSE transport (recommended for web)
export PERFSONAR_HOST=perfsonar.example.com
fastmcp run src/perfsonar_mcp/fastmcp_server.py --transport sse --host 0.0.0.0 --port 8000
# HTTP transport (alternative)
fastmcp run src/perfsonar_mcp/fastmcp_server.py --transport http --host 0.0.0.0 --port 8000
# Or use the convenience command
perfsonar-mcp-web服务器可在以下位置访问:
- 上海证券交易所
http://your-host:8000/sse - HTTP:
http://your-host:8000/mcp/
码头工人
docker-compose up -d库贝内特斯
helm install perfsonar-mcp ./helm/perfsonar-mcp \
--set config.perfsonarHost=perfsonar.example.com🤖 Claude桌面集成
添加到您的 claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"perfsonar": {
"command": "python",
"args": ["-m", "perfsonar_mcp"],
"env": {
"PERFSONAR_HOST": "your-perfsonar-host.example.com"
}
}
}
}对于基于web的访问,请使用SSE端点:
{
"mcpServers": {
"perfsonar-web": {
"url": "http://your-server:8000/sse",
"transport": "sse"
}
}
}🔧 可用工具(13)
测量档案(6)
query_measurements-搜索测量值get_throughput-吞吐量数据get_latency-延迟数据get_packet_loss-丢包数据get_measurement_data-原始时间序列get_available_event_types-列表类型
查询服务(2)
lookup_testpoints-查找测试点find_pscheduler_services-查找pScheduler
pScheduler(5)
schedule_throughput_test-运行吞吐量测试schedule_latency_test-运行延迟测试schedule_rtt_test-运行RTT测试get_test_status-检查状态get_test_result-获取结果
💡 查询示例
问克劳德:
“在欧洲查找perfSONAR测试点”
“为host.example.com安排30秒的吞吐量测试”
“获取上周host1和host2之间的小时平均吞吐量”
🏗️ 建筑
标准MCP(标准)
AI Agent (Claude)
↓ MCP Protocol (stdio)
perfSONAR MCP Server (Python)
├── Measurement Archive Client
├── Lookup Service Client
└── pScheduler Client
↓
perfSONAR ServicesWeb可访问MCP(SSE/HTTP)
Web Clients / AI Agents
↓ HTTP/SSE
FastMCP Web Server (uvicorn)
↓ MCP Protocol
perfSONAR MCP Server (Python)
├── Measurement Archive Client
├── Lookup Service Client
└── pScheduler Client
↓
perfSONAR Services这两种传输都公开了相同的工具和功能。网络传输支持:
- 从任何HTTP客户端进行远程访问
- 多个并发连接
- 与基于web的AI应用程序集成
- 类似RESTful API的访问模式
🛠️ 发展
日志记录
服务器包括用于开发和调试的全面日志记录。默认情况下,日志在INFO级别写入stderr。
要启用DEBUG日志记录以获得更详细的输出:
import logging
logging.basicConfig(level=logging.DEBUG)或者通过环境变量设置日志级别:
export PYTHONLOGLEVEL=DEBUG
python -m perfsonar_mcp日志输出包括:
- 服务器初始化和配置
- API请求和响应
- 带参数的工具调用
- 带有堆栈跟踪的错误详细信息
开发容器
在VS代码中打开→ 在容器中重新打开
本地开发
# Install with dev dependencies
pip install -e '.[dev]'
# Format code
black src/perfsonar_mcp/
# Lint code
ruff check src/perfsonar_mcp/
# Type check
mypy src/perfsonar_mcp/
# Run tests
pytest tests/📚 文档
🌐 资源
📄 许可证
麻省理工学院
