siddikshaikh-haptiq/mcp-server
3.2
If you are the rightful owner of mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The MCP Testing Server is a local development tool designed for testing API endpoints, web browsers, and phone UIs using the Model Context Protocol.
Tools
7
Resources
0
Prompts
0
MCP Testing Server
A Model Context Protocol (MCP) server for testing API endpoints, web browsers, and phone UI locally.
Features
API Testing
- Make HTTP requests (GET, POST, PUT, DELETE, PATCH)
- Batch API testing
- Custom headers, body, and query parameters
- Response validation
Web Browser Testing
- Navigate to URLs
- Click elements
- Type into input fields
- Take screenshots
- Extract text content
- Wait for elements
- Multiple tabs/pages support
Phone UI Testing
- Mobile browser simulation with device presets
- Tap interactions
- Swipe gestures
- Mobile viewport screenshots
- Device-specific testing (iPhone, Samsung, etc.)
Setup
Prerequisites
- Python 3.8 or higher
- pip (Python package manager)
Installation
- Navigate to the mcp-server directory:
cd mcp-server
- Create a virtual environment (recommended):
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Install Playwright browsers:
playwright install chromium
Running the Server
Method 1: Direct Python execution
python server.py
Method 2: Using the startup script
chmod +x start.sh
./start.sh
Method 3: As an MCP server (for Cursor/Claude Desktop)
Add to your MCP configuration file (usually ~/.cursor/mcp.json or similar):
{
"mcpServers": {
"testing-server": {
"command": "python",
"args": ["/absolute/path/to/mcp-server/server.py"],
"env": {}
}
}
}
Usage Examples
API Testing
Test a GET request:
{
"tool": "api_test_request",
"arguments": {
"url": "https://api.example.com/users",
"method": "GET",
"headers": {
"Authorization": "Bearer token"
}
}
}
Test a POST request:
{
"tool": "api_test_request",
"arguments": {
"url": "https://api.example.com/users",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": {
"name": "John Doe",
"email": "john@example.com"
}
}
}
Web Browser Testing
Navigate to a URL:
{
"tool": "browser_navigate",
"arguments": {
"url": "https://example.com",
"page_id": "main"
}
}
Click an element:
{
"tool": "browser_click",
"arguments": {
"selector": "button#submit",
"page_id": "main"
}
}
Take a screenshot:
{
"tool": "browser_screenshot",
"arguments": {
"page_id": "main",
"full_page": true,
"path": "./screenshot.png"
}
}
Phone UI Testing
Navigate on mobile:
{
"tool": "phone_navigate",
"arguments": {
"url": "https://example.com",
"device": "iPhone 12",
"page_id": "mobile_test"
}
}
Tap an element:
{
"tool": "phone_tap",
"arguments": {
"selector": "button.login",
"page_id": "mobile_test"
}
}
Swipe:
{
"tool": "phone_swipe",
"arguments": {
"direction": "up",
"distance": 300,
"page_id": "mobile_test"
}
}
Available Device Presets
- iPhone 12
- iPhone 13
- iPhone 13 Pro
- iPhone 14
- Samsung Galaxy S21
- Samsung Galaxy S20
- Pixel 5
- iPad Pro
- And more (see Playwright device list)
Troubleshooting
Browser doesn't launch
- Make sure Playwright browsers are installed:
playwright install chromium - Check that you have necessary system dependencies
Import errors
- Ensure all dependencies are installed:
pip install -r requirements.txt - Verify Python version is 3.8+
Port conflicts
- The server uses stdio for communication, so no ports are needed
- If browser instances conflict, close existing browser windows
Notes
- The server runs in non-headless mode by default (browsers are visible)
- Multiple pages/tabs are supported via
page_idparameter - Screenshots can be saved to disk or returned as base64
- All browser instances are managed automatically
License
This is a testing tool for local development purposes.