home / mcp / perfsonar mcp server

perfsonar MCP Server

Provides programmatic access to perfSONAR data sources, testpoint discovery, and test scheduling for MCP clients.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "ajragusa-perfsonar-mcp": {
      "command": "python",
      "args": [
        "-m",
        "perfsonar_mcp"
      ],
      "env": {
        "PERFSONAR_HOST": "your-perfsonar-host.example.com",
        "PSCHEDULER_URL": "https://perfsonar.example.com/pscheduler",
        "LOOKUP_SERVICE_URL": "https://lookup.perfsonar.net/lookup"
      }
    }
  }
}

You can query perfSONAR measurements, discover testpoints, and schedule network tests using the perfSONAR MCP server. It provides a programmable interface to access historical data, locate services, and run tests through an API-like workflow.

How to use

You will interact with the MCP server through an MCP client or an AI agent. Start by starting the local MCP server in stdio mode to enable direct communication from your application. Use the provided endpoints and tool functions to query measurement archives, locate testpoints, find pScheduler services, and schedule tests. You can combine these capabilities to build automated data pipelines, test discovery flows, and scheduled measurement experiments.

How to install

Prerequisites: Python and pip must be available on your system.

pip install -e .

For development with additional tools, install with development dependencies.

pip install -e '.[dev]'

Additional configuration and usage notes

Configure the MCP server by setting environment variables. The minimum required variable is PERFSONAR_HOST, which should point to your perfSONAR host. Optional variables let you customize integration with the Lookup Service and the pScheduler.

export PERFSONAR_HOST=perfsonar.example.com
export LOOKUP_SERVICE_URL=https://lookup.perfsonar.net/lookup
export PSCHEDULER_URL=https://perfsonar.example.com/pscheduler

Available tools

query_measurements

Search measurements from the Measurement Archive with filters to retrieve historical data.

get_throughput

Return throughput data for specified endpoints and time ranges.

get_latency

Return latency data for specified endpoints and time ranges.

get_packet_loss

Return packet loss data for specified endpoints and time ranges.

get_measurement_data

Retrieve raw time-series data with or without summaries.

get_available_event_types

List available measurement types and event kinds.

lookup_testpoints

Find perfSONAR testpoints globally by location or criteria.

find_pscheduler_services

Locate pScheduler services for test scheduling.

schedule_throughput_test

Submit a throughput test (iperf3) to pScheduler.

schedule_latency_test

Submit a latency test (owping) to pScheduler.

schedule_rtt_test

Submit an RTT test (ping) to pScheduler.

get_test_status

Check the status of a running or completed test.

get_test_result

Retrieve results for a completed test.