Wraps James Bloom's MockServer in an MCP interface so you can create HTTP expectations, verify request patterns, and manage mock state through natural language. Exposes operations for setting up request/response pairs with matchers for method, path, headers, and body, plus verification tools to confirm your app made the calls you expected. Useful when you're building against APIs that don't exist yet or need reproducible test scenarios without spinning up real services. Connects to any MockServer instance over configurable host and port. Think of it as programmatic control over your HTTP mocks, but driven by conversation instead of REST calls or configuration files.
An MCP (Model Context Protocol) server for interacting with James Bloom's MockServer. This enables AI assistants to create mock HTTP expectations, verify requests, clear state, and manage MockServer instances programmatically.
You need a running MockServer instance:
# Using Docker (easiest)
docker run -d -p 1080:1080 mockserver/mockserver
npx mockserver-mcp
npm install -g mockserver-mcp
mockserver-mcp
| Variable | Description | Default |
|---|---|---|
MOCKSERVER_HOST | MockServer hostname | localhost |
MOCKSERVER_PORT | MockServer port | 1080 |
Add to your MCP client configuration file (e.g., Claude Desktop, Kiro, Cursor):
{
"mcpServers": {
"mockserver": {
"command": "npx",
"args": ["-y", "mockserver-mcp"],
"env": {
"MOCKSERVER_HOST": "localhost",
"MOCKSERVER_PORT": "1080"
}
}
}
}
For shared team MockServer, change MOCKSERVER_HOST to your server's address.
Create a mock HTTP expectation on MockServer.
Parameters:
httpRequest (required): Request matching criteria
method: HTTP method (GET, POST, PUT, DELETE, etc.)path: URL path to matchqueryStringParameters: Query parameters to matchheaders: Headers to matchbody: Body matcher with type (STRING, JSON, REGEX, XPATH, JSON_PATH) and valuehttpResponse: Response configuration
statusCode: HTTP status codeheaders: Response headersbody: Response body (string or object)delay: Response delay with timeUnit and valuetimes: How many times to match (remainingTimes, unlimited)timeToLive: Expectation lifetime (timeUnit, timeToLive)Example:
{
"httpRequest": {
"method": "GET",
"path": "/api/users"
},
"httpResponse": {
"statusCode": 200,
"body": { "users": [] }
}
}
Verify that requests matching criteria were received by MockServer.
Parameters:
httpRequest (required): Request matching criteria (same as create_expectation)times: Expected request count
atLeast: Minimum number of requestsatMost: Maximum number of requestsexactly: Exact number of requestsExample:
{
"httpRequest": {
"method": "POST",
"path": "/api/orders"
},
"times": {
"atLeast": 1
}
}
Clear expectations and recorded requests from MockServer.
Parameters:
httpRequest (optional): Request matcher to clear specific expectations. If not provided, clears all.Example:
{
"httpRequest": {
"path": "/api/users"
}
}
Perform a full reset of MockServer, clearing all expectations and recorded requests.
Parameters: None
Retrieve recorded requests from MockServer.
Parameters:
httpRequest (optional): Request matcher to filter recorded requestsExample:
{
"httpRequest": {
"method": "GET"
}
}
Get MockServer connection status and configuration.
Parameters: None
API mocking enables early testing — start building and testing your frontend or integrations before the backend is ready. No more waiting. Ship faster.
MIT
MOCKSERVER_HOSTMockServer hostname
MOCKSERVER_PORTMockServer port