xk6-mcp
by dgzlopes
Test MCP servers with k6
What is xk6-mcp
xk6-mcp
A k6 extension for testing Model Context Protocol (MCP) servers.
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
import mcp from 'k6/x/mcp';
// Initialize MCP Client with stdio transport
const client = new mcp.StdioClient({
path: 'npx',
env: [],
args: ['-y', '@modelcontextprotocol/server-everything', '/tmp'],
});
export default function () {
console.log('Checking MCP server status...');
console.log('MCP server running:', client.ping());
// List available tools
console.log('Tools available:');
const tools = client.listTools().tools;
tools.forEach(tool => console.log(` - ${tool.name}`));
// List available resources
console.log('Resources available:');
const resources = client.listResources().resources;
resources.forEach(resource => console.log(` - ${resource.uri}`));
// List available prompts
console.log('Prompts available:');
const prompts = client.listPrompts().prompts;
prompts.forEach(prompt => console.log(` - ${prompt.name}`));
// Call a sample tool
const toolResult = client.callTool({
params: { name: 'echo', arguments: { message: 'Hello, world!' } }
});
console.log('Echo tool response:', toolResult.content[0].text);
// Read a sample resource
const resourceContent = client.readResource({
params: { uri: 'test://static/resource/1' }
});
console.log('Resource content:', resourceContent.contents[0].text);
// Get a sample prompt
const prompt = client.getPrompt({
params: { name: 'simple_prompt' }
});
console.log('Prompt:', prompt.messages[0].content.text);
}
You can also use the SSE transport to connect to an MCP server that supports it:
const client = new mcp.SSEClient({
baseURL: 'http://localhost:3001/sse',
headers: { Authorization: 'Bearer abc123' },
timeout: '30s'
});
Run the SSE server with:
docker run -p 3001:3001 --rm -it tzolov/mcp-everything-server:v1
Leave a Comment
Comments section will be available soon. Stay tuned!
Frequently Asked Questions
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications, providing a standardized way to connect AI models to different data sources and tools.
What are MCP Servers?
MCP Servers are lightweight programs that expose specific capabilities through the standardized Model Context Protocol. They act as bridges between LLMs like Claude and various data sources or services, allowing secure access to files, databases, APIs, and other resources.
How do MCP Servers work?
MCP Servers follow a client-server architecture where a host application (like Claude Desktop) connects to multiple servers. Each server provides specific functionality through standardized endpoints and protocols, enabling Claude to access data and perform actions through the standardized protocol.
Are MCP Servers secure?
Yes, MCP Servers are designed with security in mind. They run locally with explicit configuration and permissions, require user approval for actions, and include built-in security features to prevent unauthorized access and ensure data privacy.
Related MCP Servers
Fetch
Web content fetching and conversion for efficient LLM usage
Playwright
A Model Context Protocol (MCP) server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages through structured accessibility snapshots, bypassing the need for screenshots or visually-tuned models.
puppeteer-mcp-server
Puppeteer
Browser automation and web scraping
Playwright Universal MCP
A universal Playwright MCP server for browser automation in containerized environments
MCP Server Playwright
MCP Server Playwright - A browser automation service for Claude Desktop
OneNote MCP Server
MCP server for browsing and interacting with OneNote web app using browser-use automation
Playwright
🚀 Fetcher MCP - Playwright Headless Browser Server
MCP server for fetch web page content using Playwright headless browser.
MCP Browser
NeoForge Browser MCP server - used to test the frontend
Submit Your MCP Server
Share your MCP server with the community
Submit Now