Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@perfsonar-mcpCheck the packet loss between host-a and host-b over the last 24 hours"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
perfsonar-mcp
MCP (Model Context Protocol) server for perfSONAR - Query measurements, discover testpoints, and schedule network tests.
π Features
Measurement Archive Queries
Query historical measurements with filters
Get throughput, latency, and packet loss data
Access raw time-series data with summaries
Discover available measurement types
Lookup Service Integration
Find perfSONAR testpoints globally
Search by location (city, country)
Locate pScheduler services for testing
Test Scheduling (pScheduler)
Schedule throughput tests (iperf3)
Schedule latency tests (owping)
Schedule RTT tests (ping)
Monitor test status and retrieve results
π¦ Installation
pip install -e .For development with additional tools:
pip install -e '.[dev]'βοΈ Configuration
Required environment variable:
export PERFSONAR_HOST=perfsonar.example.comOptional:
export LOOKUP_SERVICE_URL=https://lookup.perfsonar.net/lookup
export PSCHEDULER_URL=https://perfsonar.example.com/pschedulerπ Usage
Local (stdio transport)
Standard MCP stdio transport for local AI clients:
python -m perfsonar_mcp
# or
perfsonar-mcpWeb Access (SSE/HTTP transport)
FastMCP enables web-accessible MCP server via SSE (Server-Sent Events) or HTTP:
# 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-webThe server will be accessible at:
SSE:
http://your-host:8000/sseHTTP:
http://your-host:8000/mcp/
Docker
docker-compose up -dKubernetes
helm install perfsonar-mcp ./helm/perfsonar-mcp \
--set config.perfsonarHost=perfsonar.example.comπ€ Claude Desktop Integration
Add to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"perfsonar": {
"command": "python",
"args": ["-m", "perfsonar_mcp"],
"env": {
"PERFSONAR_HOST": "your-perfsonar-host.example.com"
}
}
}
}For web-based access, use the SSE endpoint:
{
"mcpServers": {
"perfsonar-web": {
"url": "http://your-server:8000/sse",
"transport": "sse"
}
}
}π§ Available Tools (13)
Measurement Archive (6)
query_measurements- Search measurementsget_throughput- Throughput dataget_latency- Latency dataget_packet_loss- Packet loss dataget_measurement_data- Raw time-seriesget_available_event_types- List types
Lookup Service (2)
lookup_testpoints- Find testpointsfind_pscheduler_services- Find pScheduler
pScheduler (5)
schedule_throughput_test- Run throughput testschedule_latency_test- Run latency testschedule_rtt_test- Run RTT testget_test_status- Check statusget_test_result- Get results
π‘ Example Queries
Ask Claude:
"Find perfSONAR testpoints in Europe"
"Schedule a 30-second throughput test to host.example.com"
"Get hourly throughput averages between host1 and host2 for the last week"
ποΈ Architecture
Standard MCP (stdio)
AI Agent (Claude)
β MCP Protocol (stdio)
perfSONAR MCP Server (Python)
βββ Measurement Archive Client
βββ Lookup Service Client
βββ pScheduler Client
β
perfSONAR ServicesWeb-Accessible 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 ServicesBoth transports expose the same tools and capabilities. The web transport enables:
Remote access from any HTTP client
Multiple concurrent connections
Integration with web-based AI applications
RESTful API-like access patterns
π οΈ Development
Logging
The server includes comprehensive logging for development and debugging. By default, logs are written to stderr at INFO level.
To enable DEBUG logging for more detailed output:
import logging
logging.basicConfig(level=logging.DEBUG)Or set the log level via environment variable:
export PYTHONLOGLEVEL=DEBUG
python -m perfsonar_mcpLog output includes:
Server initialization and configuration
API requests and responses
Tool invocations with arguments
Error details with stack traces
DevContainer
Open in VS Code β Reopen in Container
Local Development
# 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/π Documentation
π Resources
π License
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.