Configuration
This guide covers how to configure MockLoop MCP for your specific needs, including MCP client setup, server options, and customization settings.
MCP Client Configuration
Cline (VS Code Extension)
Cline is the recommended MCP client for development workflows. Here's how to configure it:
1. Locate Configuration File
The Cline MCP settings file is typically located at:
- Linux/macOS: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
2. Add MockLoop Configuration
{
"mcpServers": {
"MockLoopLocal": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "/path/to/your/mockloop-mcp/.venv/bin/python",
"args": [
"/path/to/your/mockloop-mcp/src/mockloop_mcp/main.py"
],
"transportType": "stdio"
}
}
}
3. Configuration Options
Option | Description | Default |
---|---|---|
autoApprove |
Tools to auto-approve without user confirmation | [] |
disabled |
Whether the server is disabled | false |
timeout |
Connection timeout in seconds | 60 |
command |
Path to Python executable | Required |
args |
Arguments to pass to the MCP server | Required |
transportType |
Communication protocol | "stdio" |
4. Auto-Approval Configuration
For development convenience, you can auto-approve certain tools:
{
"mcpServers": {
"MockLoopLocal": {
"autoApprove": [
"generate_mock_api",
"query_mock_logs",
"discover_mock_servers"
],
"disabled": false,
"timeout": 60,
"command": "/path/to/your/mockloop-mcp/.venv/bin/python",
"args": [
"/path/to/your/mockloop-mcp/src/mockloop_mcp/main.py"
],
"transportType": "stdio"
}
}
}
Claude Desktop
For Claude Desktop, add the configuration to your Claude Desktop settings:
1. Locate Configuration File
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
2. Add Configuration
{
"mcpServers": {
"mockloop": {
"command": "/path/to/your/mockloop-mcp/.venv/bin/python",
"args": ["/path/to/your/mockloop-mcp/src/mockloop_mcp/main.py"]
}
}
}
Environment Variables
MockLoop MCP supports several environment variables for configuration:
Core Settings
# Default port for generated mock servers
export MOCKLOOP_DEFAULT_PORT=8000
# Default output directory for generated mocks
export MOCKLOOP_OUTPUT_DIR=./generated_mocks
# Enable debug logging
export MOCKLOOP_DEBUG=true
# Default host for generated servers
export MOCKLOOP_DEFAULT_HOST=0.0.0.0
Advanced Settings
# Custom template directory
export MOCKLOOP_TEMPLATE_DIR=./custom_templates
# Database configuration
export MOCKLOOP_DB_PATH=./mockloop.db
# Log level (DEBUG, INFO, WARNING, ERROR)
export MOCKLOOP_LOG_LEVEL=INFO
# Maximum request body size (in bytes)
export MOCKLOOP_MAX_REQUEST_SIZE=10485760
# Request timeout (in seconds)
export MOCKLOOP_REQUEST_TIMEOUT=30
Setting Environment Variables
Linux/macOS (Bash/Zsh)
Add to your shell profile (~/.bashrc
, ~/.zshrc
, etc.):
# MockLoop MCP Configuration
export MOCKLOOP_DEFAULT_PORT=8000
export MOCKLOOP_OUTPUT_DIR=./generated_mocks
export MOCKLOOP_DEBUG=false
Windows (PowerShell)
# Set environment variables
$env:MOCKLOOP_DEFAULT_PORT = "8000"
$env:MOCKLOOP_OUTPUT_DIR = "./generated_mocks"
$env:MOCKLOOP_DEBUG = "false"
Windows (Command Prompt)
Mock Server Configuration
Default Generation Options
When generating mock servers, you can customize various options:
# Example tool usage with all options
{
"spec_url_or_path": "https://petstore3.swagger.io/api/v3/openapi.json",
"output_dir_name": "my_custom_petstore",
"auth_enabled": true,
"webhooks_enabled": true,
"admin_ui_enabled": true,
"storage_enabled": true
}
Configuration Options
Option | Type | Default | Description |
---|---|---|---|
spec_url_or_path |
string | Required | URL or local path to API specification |
output_dir_name |
string | Auto-generated | Custom name for output directory |
auth_enabled |
boolean | true |
Enable authentication middleware |
webhooks_enabled |
boolean | true |
Enable webhook support |
admin_ui_enabled |
boolean | true |
Enable admin UI |
storage_enabled |
boolean | true |
Enable storage functionality |
Template Customization
MockLoop uses Jinja2 templates for code generation. You can customize these templates:
1. Copy Default Templates
2. Modify Templates
Edit the templates in ./custom_templates/
:
- route_template.j2
: API route generation
- admin_ui_template.j2
: Admin interface
- dockerfile_template.j2
: Docker configuration
- docker_compose_template.j2
: Docker Compose setup
- middleware_log_template.j2
: Logging middleware
3. Use Custom Templates
Database Configuration
MockLoop uses SQLite for request logging and data storage. You can configure database settings:
Database Location
# Custom database directory
export MOCKLOOP_DB_DIR=./data
# Custom database filename pattern
export MOCKLOOP_DB_FILENAME_PATTERN="{server_name}_logs.db"
Database Schema
The database schema is automatically managed through migrations. Current schema includes:
- request_logs: HTTP request/response data
- schema_version: Database version tracking
- webhooks: Webhook configurations
- scenarios: Test scenario definitions
- mock_data: Dynamic response data
Migration Settings
# Enable automatic migrations
export MOCKLOOP_AUTO_MIGRATE=true
# Backup before migrations
export MOCKLOOP_BACKUP_BEFORE_MIGRATE=true
# Migration timeout (seconds)
export MOCKLOOP_MIGRATION_TIMEOUT=300
Logging Configuration
Log Levels
Configure logging verbosity:
Log Formats
# Enable structured JSON logging
export MOCKLOOP_JSON_LOGGING=true
# Custom log format
export MOCKLOOP_LOG_FORMAT="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
# Log file location
export MOCKLOOP_LOG_FILE=./mockloop.log
Request Logging
Configure request/response logging:
# Enable request body logging
export MOCKLOOP_LOG_REQUEST_BODY=true
# Enable response body logging
export MOCKLOOP_LOG_RESPONSE_BODY=true
# Maximum body size to log (bytes)
export MOCKLOOP_MAX_LOG_BODY_SIZE=1048576
# Exclude admin requests from logs
export MOCKLOOP_EXCLUDE_ADMIN_LOGS=true
Performance Configuration
Resource Limits
# Maximum concurrent requests
export MOCKLOOP_MAX_CONCURRENT_REQUESTS=100
# Request queue size
export MOCKLOOP_REQUEST_QUEUE_SIZE=1000
# Worker thread pool size
export MOCKLOOP_WORKER_THREADS=4
Caching
# Enable response caching
export MOCKLOOP_ENABLE_CACHING=true
# Cache TTL (seconds)
export MOCKLOOP_CACHE_TTL=300
# Maximum cache size (MB)
export MOCKLOOP_MAX_CACHE_SIZE=100
Security Configuration
Authentication
# Default admin password
export MOCKLOOP_ADMIN_PASSWORD=admin123
# JWT secret key
export MOCKLOOP_JWT_SECRET=your-secret-key-here
# Token expiration (seconds)
export MOCKLOOP_TOKEN_EXPIRATION=3600
CORS Settings
# Enable CORS
export MOCKLOOP_ENABLE_CORS=true
# Allowed origins (comma-separated)
export MOCKLOOP_CORS_ORIGINS="http://localhost:3000,http://localhost:8080"
# Allowed methods
export MOCKLOOP_CORS_METHODS="GET,POST,PUT,DELETE,OPTIONS"
Docker Configuration
Default Docker Settings
When generating Docker configurations, MockLoop uses these defaults:
# Base Docker image
export MOCKLOOP_DOCKER_BASE_IMAGE=python:3.9-slim
# Default port mapping
export MOCKLOOP_DOCKER_PORT=8000
# Docker network name
export MOCKLOOP_DOCKER_NETWORK=mockloop-network
Custom Dockerfile Template
You can customize the generated Dockerfile by modifying the template:
# Custom base image
FROM python:3.11-slim
# Custom working directory
WORKDIR /app
# Custom port
ARG APP_PORT=8000
EXPOSE ${APP_PORT}
# Custom startup command
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "${APP_PORT}"]
Configuration Validation
MockLoop validates configuration on startup. Common validation errors:
Invalid Paths
Error: MOCKLOOP_OUTPUT_DIR path does not exist: /invalid/path
Solution: Create the directory or use a valid path
Port Conflicts
Permission Issues
Error: Permission denied writing to output directory
Solution: Check directory permissions or use a different location
Configuration Examples
Development Environment
# .env.development
MOCKLOOP_DEBUG=true
MOCKLOOP_LOG_LEVEL=DEBUG
MOCKLOOP_DEFAULT_PORT=8000
MOCKLOOP_OUTPUT_DIR=./dev_mocks
MOCKLOOP_AUTO_MIGRATE=true
MOCKLOOP_ENABLE_CORS=true
MOCKLOOP_CORS_ORIGINS=http://localhost:3000
Production Environment
# .env.production
MOCKLOOP_DEBUG=false
MOCKLOOP_LOG_LEVEL=INFO
MOCKLOOP_DEFAULT_PORT=80
MOCKLOOP_OUTPUT_DIR=/var/mockloop/mocks
MOCKLOOP_AUTO_MIGRATE=false
MOCKLOOP_ENABLE_CORS=false
MOCKLOOP_LOG_FILE=/var/log/mockloop.log
Testing Environment
# .env.testing
MOCKLOOP_DEBUG=true
MOCKLOOP_LOG_LEVEL=DEBUG
MOCKLOOP_DEFAULT_PORT=9000
MOCKLOOP_OUTPUT_DIR=./test_mocks
MOCKLOOP_AUTO_MIGRATE=true
MOCKLOOP_EXCLUDE_ADMIN_LOGS=false
Next Steps
Now that you have MockLoop MCP configured, you're ready to:
- Create Your First Mock Server: Detailed walkthrough
- Explore Basic Usage: Learn core features
- Advanced Features: Discover powerful capabilities
For troubleshooting configuration issues, see the Troubleshooting Guide.