Apache SkyWalking MCP

An MCP server for integrating AI agents with the SkyWalking observability platform and its ecosystem.

Apache SkyWalking MCP

Sky Walking logo

SkyWalking-MCP: A Model Context Protocol (MCP) server for integrating AI agents with Skywalking OAP and the surrounding ecosystem.

SkyWalking: an APM(application performance monitor) system, especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures.

Usage

From Source

# Clone the repository
git clone https://github.com/apache/skywalking-mcp.git
cd skywalking-mcp && go mod tidy

# Build the project
make

Command-line Options

Usage:
  swmcp [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  sse         Start SSE server
  stdio       Start stdio server
  streamable  Start Streamable server

Flags:
  -h, --help                 help for swmcp
      --log-command          When true, log commands to the log file
      --log-file string      Path to log file
      --log-level string     Logging level (debug, info, warn, error) (default "info")
      --read-only            Restrict the server to read-only operations
      --sw-url string        Specify the OAP URL to connect to (e.g. http://localhost:12800)
      --sw-username string   Username for basic auth to SkyWalking OAP (supports ${ENV_VAR} syntax)
      --sw-password string   Password for basic auth to SkyWalking OAP (supports ${ENV_VAR} syntax)
  -v, --version              version for swmcp

Use "swmcp [command] --help" for more information about a command.

You could start the MCP server with the following command:

# use stdio server
bin/swmcp stdio --sw-url http://localhost:12800

# with basic auth (raw password)
bin/swmcp stdio --sw-url http://localhost:12800 --sw-username admin --sw-password admin

# with basic auth (password from environment variable)
bin/swmcp stdio --sw-url http://localhost:12800 --sw-username admin --sw-password '${SW_PASSWORD}'

# or use SSE server
bin/swmcp sse --sse-address localhost:8000 --base-path /mcp --sw-url http://localhost:12800

Usage with Cursor, Copilot, Claude Code

{
  "mcpServers": {
    "skywalking": {
      "command": "swmcp stdio",
      "args": [
        "--sw-url", "http://localhost:12800",
        "--sw-username", "admin",
        "--sw-password", "${SW_PASSWORD}"
      ]
    }
  }
}

If using Docker:

make build-image builds a local linux/amd64 image by default. For multi-platform publishing, use make docker-push, which builds and pushes linux/amd64,linux/arm64 images via Docker Buildx.

Common variants:

# Build a local image and load it into your Docker daemon
make build-image

# Build and push a multi-platform image to the default registry
make docker-push VERSION=0.1.0

# Push to a custom registry/repository
make docker-push IMAGE=ghcr.io/your-org/skywalking-mcp VERSION=0.1.0

# Build for a custom platform set
make docker-build PLATFORMS=linux/arm64 OUTPUT=--load

Then configure the MCP server like this:

{
  "mcpServers": {
    "skywalking": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
		"skywalking-mcp:latest",
		"--sw-url",
		"http://localhost:12800"
      ]
    }
  }
}

Available Tools

SkyWalking MCP provides the following tools to query and analyze SkyWalking OAP data:

CategoryTool NameDescription
Sessionset_skywalking_urlSet the SkyWalking OAP server URL and optional basic auth credentials for the current session (stdio mode only). Supports ${ENV_VAR} syntax for credentials.
Tracequery_tracesQuery traces with multi-condition filtering (service, endpoint, state, tags, and time range via start/end/step). Supports full, summary, and errors_only views with performance insights.
Logquery_logsQuery logs with filters for service, instance, endpoint, trace ID, tags, and time range. Supports cold storage and pagination.
MQEexecute_mqe_expressionExecute MQE (Metrics Query Expression) to query and calculate metrics data. Supports calculations, aggregations, TopN, trend analysis, and multiple result types.
MQElist_mqe_metricsList available metrics for MQE queries. Filter by regex pattern; returns metric name, type, and catalog.
MQEget_mqe_metric_typeGet type information (REGULAR_VALUE, LABELED_VALUE, SAMPLED_RECORD) for a specific metric to help build correct MQE expressions.
Metadatalist_layersList all layers registered in SkyWalking OAP (e.g. GENERAL, MESH, K8S).
Metadatalist_servicesList all services registered in SkyWalking OAP under a specific layer.
Metadatalist_instancesList all instances of a service (e.g. pods or JVM processes).
Metadatalist_endpointsList endpoints of a service with optional keyword filtering.
Metadatalist_processesList processes of a service instance.
Eventquery_eventsQuery events (deployments, restarts, scaling) with filters for service, instance, endpoint, type, and layer.
Alarmquery_alarmsQuery alarms triggered by metric threshold breaches. Filter by scope, keyword, and tags.
Topologyquery_services_topologyQuery global or scoped service topology. Optionally filter by specific service IDs or layer.
Topologyquery_instances_topologyQuery service instance topology between a client service and a server service.
Topologyquery_endpoints_topologyQuery endpoint dependency topology for a given endpoint.
Topologyquery_processes_topologyQuery process topology for a given service instance.

Available Prompts

SkyWalking MCP provides the following prompts for guided analysis workflows:

CategoryPrompt NameDescriptionArguments
Performanceanalyze-performanceAnalyze service performance using metrics toolsservice_name (required), start (optional), end (optional)
Performancecompare-servicesCompare performance metrics between multiple servicesservices (required), metrics (optional), start (optional), end (optional)
Performancetop-servicesFind top N services ranked by a given metricmetric_name (required), top_n (optional), order (optional)
Traceinvestigate-tracesInvestigate traces for errors and performance issuesservice_id (optional), trace_state (optional), start (optional), end (optional)
Tracetrace-deep-diveDeep dive analysis of a specific tracetrace_id (required), view (optional)
Loganalyze-logsAnalyze service logs for errors and patternsservice_id (optional), log_level (optional), start (optional), end (optional)
Topologyexplore-service-topologyExplore services, instances, endpoints, and processes within a layer and time rangelayer (required), start (required), end (optional)
MQEbuild-mqe-queryHelp build MQE expressions for complex metric queriesquery_type (required), metrics (required), conditions (optional)
MQEexplore-metricsExplore available metrics and their typespattern (optional), show_examples (optional)
Utilitygenerate_durationConvert a natural-language time range into a {start, end} duration object for use with other toolstime_range (required)

Contact Us

License

Apache 2.0 License.

Похожие серверы