Apache SkyWalking MCP

by apache

Not rated
GitHub

About

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

Details

Author
apache
Categories
Developer Tools, Infrastructure

Setup

Install Apache SkyWalking MCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/apache/skywalking-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

SkyWalking-MCP: AModel 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.

# Clone the repository git clone https://github.com/apache/skywalking-mcp.git cd skywalking-mcp && go mod tidy # Build the project make
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 Global 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) --sw-insecure Skip TLS certificate verification for OAP connections (use only in development) -v, --version version for swmcp SSE-specific Flags: --sse-address string Host and port for the SSE server (default "localhost:8000") --base-path string Base path for the SSE server --allowed-origins string Comma-separated list of allowed CORS origins. Empty reflects any origin (open CORS). Use  to send the wildcard header. --disable-localhost-protection Disable DNS rebinding protection (see Reverse proxies below) Streamable-specific Flags: --address string Host and port for the Streamable HTTP server (default "localhost:8000") --endpoint-path string Endpoint path for the Streamable HTTP server (default "/mcp") --allowed-origins string Comma-separated list of allowed CORS origins. Empty reflects any origin (open CORS). Use  to send the wildcard header. --disable-localhost-protection Disable DNS rebinding protection (see Reverse proxies below) 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}' # skip TLS verification (development only, e.g. self-signed certs) bin/swmcp stdio --sw-url https://localhost:12800 --sw-insecure # or use SSE server bin/swmcp sse --sse-address localhost:8000 --base-path /mcp --sw-url http://localhost:12800 # restrict CORS to specific origins (SSE and streamable transports) bin/swmcp streamable --sw-url http://localhost:12800 --allowed-origins "http://localhost:3000,https://app.example.com"

- stdio,sse, andstreamableall use the configured--sw-urlvalue (or the defaulthttp://localhost:12800/graphql).
- sseandstreamableignore request-level URL override headers.

The HTTP transports reject a request that arrives over a loopback address while carrying a non-loopbackHostheader, answering403 Forbidden: invalid Host header. This is DNS rebinding protection: a malicious page can point its own hostname at127.0.0.1to reach a server running on the visitor's machine, and such a request is indistinguishable from a legitimate one except for thatHost.

A same-host reverse proxy that forwards to127.0.0.1while preserving the publicHostproduces the same shape and is rejected too. Prefer having the proxy rewriteHostto localhost, or point it at a non-loopback address.

When you do opt out, pair it with--allowed-origins. A browser on the proxy host reaches127.0.0.1just as the proxy does, so the origin allowlist is the only defense left:

bin/swmcp streamable --sw-url http://localhost:12800 \ --disable-localhost-protection --allowed-origins https://mcp.example.com

Disabling the protection while leaving CORS open (the default) lets any web page drive the server through the browser of anyone on that host.

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

make build-imagebuilds a locallinux/amd64image by default. For multi-platform publishing, usemake docker-push, which builds and pusheslinux/amd64,linux/arm64images via Docker Buildx.

# 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" ] } } }

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

SkyWalking MCP provides the following prompts for guided analysis workflows:

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Seamlessly bring real-time production context—logs, metrics, and traces—into your local environment to auto-fix code faster.

Provides access to OpenTelemetry traces and metrics through Logfire.

Zabbix MCP Server with all functions and validations

MCP to interact with Alertmanager - observability alerts management tool

Monitor uptime, manage incidents, configure alerting, and query third-party dependency status through DevHelm's monitoring platform

Access and manage Grafana resources, including dashboards, datasources, Prometheus, Loki, and alerting.

A server for querying Loki logs from Grafana.

An MCP server for log analysis using the LogAI framework, with optional Grafana and GitHub integrations.

A Go-based server to query Grafana Loki logs using the Model Context Protocol (MCP).

Paid remote MCP for server uptime checks, schema validation, auth failure detection, SLA receipts, and status report exports.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.