概要
What is xk6-mcp?
xk6-mcp is a k6 extension for testing Model Context Protocol (MCP) servers. It lets developers load-test MCP servers using k6, providing client support for stdio, SSE, and Streamable HTTP transports, built-in pagination, and automatic RED-style metrics.
How to use xk6-mcp?
Install xk6, then build a k6 binary with the extension: xk6 build --with github.com/dgzlopes/xk6-mcp. Import the module in your script with import mcp from 'k6/x/mcp'; and run the built binary: ./k6 run script.js.
Key features of xk6-mcp
- Supports stdio, SSE, and Streamable HTTP transports
- Automatic pagination via
*Allmethods (e.g.,listAllTools()) - Manual pagination for fine-grained control
- Built-in RED metrics (request duration, count, errors)
- Tagged metrics per MCP method (e.g.,
GetPrompt,ListTools) - Enables connection, tool, resource, and prompt operations
Use cases of xk6-mcp
- Load testing MCP server responsiveness and reliability
- Validating tool, resource, and prompt availability under load
- Monitoring MCP server error rates and latency in k6 tests
FAQ from xk6-mcp
What about non-stdio transports?
Both SSE and Streamable HTTP are supported — use mcp.SSEClient or mcp.StreamableHTTPClient respectively.
What about pagination?
The extension offers two ways: listAllTools() (and similar) automatically handle pagination, while listTools() requires a cursor argument for manual pagination.
What about metrics?
xk6-mcp automatically tracks RED-style metrics: mcp_request_duration (trend), mcp_request_count (counter), and mcp_request_errors (counter), each tagged with the MCP method name.
Is this officially supported by Grafana Labs?
No, this extension is experimental and not officially supported by Grafana Labs.