xk6-mcp
grafana/xk6-mcp · 21 stars · Go · AGPL-3.0
MCP server Test MCP servers with k6
Install
The repo has no one-line install. Follow its README.
Files
xk6-mcp
A k6 extension for testing Model Context Protocol (MCP) servers.
Caution
This extension is experimental and not officially supported by Grafana Labs.
Installation
- First, ensure you have xk6 installed:
go install go.k6.io/xk6/cmd/xk6@latest
- Build a k6 binary with the xk6-mcp extension:
xk6 build --with github.com/dgzlopes/xk6-mcp
- Import the mcp module in your script, at the top of your test script:
import mcp from 'k6/x/mcp';
- The built binary will be in your current directory. You can move it to your PATH or use it directly:
./k6 run script.js
Example
⚠️ This example depends on mcp-example-server
You can download the latest version from the releases page.
import mcp from 'k6/x/mcp';
export default function () {
// Initialize MCP Client with stdio transport
const client = new mcp.StdioClient({
path: './mcp-example-server',
});
// Check connection to MCP server
console.log('MCP server running:', client.ping());
// List all available tools
console.log('Tools available:');
const tools = client.listAllTools().tools;
tools.forEach(tool => console.log(` - ${tool.name}`));
// List all available resources
console.log('Resources available:');
const resources = client.listAllResources().resources;
resources.forEach(resource => console.log(` - ${resource.uri}`));
// List all available prompts
console.log('Prompts available:');
const prompts = client.listAllPrompts().prompts;
prompts.forEach(prompt => console.log(` - ${prompt.name}`));
// Call a sample tool
const toolResult = client.callTool({ name: 'greet', arguments: { name: 'Grafana k6' } });
console.log(`Greet tool response: "${toolResult.content[0].text}"`);
// Read a sample resource
const resourceContent = client.readResource({ uri: 'embedded:info' });
console.log(`Resource content: ${resourceContent.contents[0].text}`);
// Get a sample prompt
const prompt = client.getPrompt({ name: 'greet' });
console.log(`Prompt: ${prompt.messages[0].content.text}`);
}
F.A.Q.
What about non-stdio transports?
Both SSE and Streamable HTTP are supported too!
You can use them like this:
// SSE
const client = new mcp.SSEClient({
base_url: 'http://localhost:3002',
});
// Streamable HTTP
const client = new mcp.StreamableHTTPClient({
base_url: 'http://localhost:3001',
});
What about pagination?
The extension offers two ways to list resources, tools, and prompts:
// With All: Handles pagination automatically
const allTools = client.listAllTools();
const allResources = client.listAllResources();
const allPrompts = client.listAllPrompts();
// Without All: Requires manual pagination
const first = client.listTools()
const second = client.listTools({ cursor: first.next_cursor });
What about metrics?
The extension automatically tracks RED-style metrics for every MCP operation:
mcp_request_duration(trend): Duration of each MCP request (in milliseconds).mcp_request_count(counter): Number of MCP requests made.mcp_request_errors(counter): Number of failed MCP requests.
Each metric is tagged wit:
method: The MCP method called (e.g.,GetPrompt,ListTools).
Facts
- Kind
- MCP server
- Repo
- grafana/xk6-mcp
- Group
- Uncategorized
- Stars
- 21
- License
- AGPL-3.0
- Language
- Go
- Last push
- 2026-10-11
- Forks
- 8
- Topics
- xk6
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k