mcp-tester-helper
mcp-tester-helper
A unified MCP (Model Context Protocol) server for multi-stand infrastructure testing: REST APIs, PostgreSQL databases, and OpenSearch — all through a single config file.
Built for DevOps, QA, and developers who need AI-assisted testing across multiple environments (stands).
Features
🔀 Multi-stand — switch between dev / test / prod environments via config
🔒 Secure auth — OAuth tokens and DB credentials stay server-side, never exposed in AI chat
🌐 REST API — test any microservice endpoint with auto-authentication
🐘 PostgreSQL — run SQL queries with connection pooling and read-only safety
🔍 OpenSearch — search logs, list indices, inspect mappings via Query DSL
📋 Service Discovery — AI can list available stands and services
❤️ Health Checks — verify stand infrastructure availability
Quick Start
npx -y mcp-tester-helper --config ./config.jsonConfiguration
MCP Client Setup
Add to your MCP client configuration (Claude Desktop, Antigravity, Cursor, etc.):
{
"mcpServers": {
"infra": {
"command": "npx",
"args": ["-y", "mcp-tester-helper", "--config", "/path/to/config.json"],
"env": {
"STAGING_USERNAME": "admin",
"STAGING_PASSWORD": "secret",
"REST_ENABLE_SSL_VERIFY": "false"
}
}
}
}Config File (config.json)
{
"stands": {
"dev": {
"auth": {
"url": "https://auth.dev.example.com/oauth/token",
"type": "json",
"user": "DEV_USERNAME",
"pass": "DEV_PASSWORD"
},
"elastic": {
"url": "https://opensearch.dev.example.com:9200",
"user": "DEV_ELASTIC_USER",
"pass": "DEV_ELASTIC_PASS"
},
"database": {
"host": "db.dev.example.com",
"port": 5432,
"db": "dev_db",
"user": "DEV_DB_USER",
"pass": "DEV_DB_PASS"
},
"services": {
"billing": {
"url": "https://billing.dev.example.com/api",
"openapi": "api-docs/billing.json"
}
}
}
}
}Note: user and pass fields contain environment variable names, not actual credentials. Actual values come from .env file or MCP client env config.
Auth Types
Type | Description | Content-Type |
|
|
|
|
|
|
Environment Variables
Variable | Description | Default |
| Max response body size in bytes |
|
| Set to |
|
Tools Reference
test_request — HTTP API Calls
Test a REST API endpoint with auto-authentication.
{
"stand": "staging",
"service": "orders",
"method": "GET",
"endpoint": "/api/v1/health"
}Parameter | Required | Description |
| ✅ | Target stand name |
| ✅ | Service name from config, or |
| ✅ |
|
| ✅ | Path (e.g. |
| Request body (for POST/PUT/PATCH) | |
| Extra headers (don't pass Authorization) |
db_query — PostgreSQL Queries
Execute read-only SQL queries with connection pooling.
{ "stand": "staging", "query": "SELECT * FROM schema.table LIMIT 10" }All queries run inside
BEGIN TRANSACTION READ ONLY— data modifications are blocked.
os_search — OpenSearch Query DSL
Search OpenSearch indices using the full Query DSL.
{
"stand": "staging",
"index": "app-logs-*",
"query_body": {
"query": { "match": { "level": "ERROR" } },
"size": 10,
"sort": [{ "@timestamp": "desc" }]
},
"fields": ["@timestamp", "message", "level"]
}os_indices — List OpenSearch Indices
{ "stand": "staging", "index_pattern": "app-logs-*" }os_mappings — Index Mappings
{ "stand": "staging", "index": "app-logs-2025.07" }list_services — Service Discovery
{ "stand": "staging" }Returns all services, database, and OpenSearch info for the stand.
health — Infrastructure Health Check
{ "stand": "staging", "target": "all" }Pings services, OpenSearch, and PostgreSQL. Returns status and timing for each.
Security
🔐 Auth tokens are obtained automatically and cached server-side (with TTL)
🚫 Credentials never appear in tool responses sent to the AI
🔄 Automatic token refresh on 401 responses
📖 All SQL queries are wrapped in read-only transactions
✂️ Response bodies are truncated to prevent token overflow
Credits & Attribution
This project is built upon and inspired by the following open-source projects:
dkmaker/mcp-rest-api (MIT License) — REST API testing MCP server, used as the foundation for HTTP client and MCP server structure.
modelcontextprotocol/servers — server-postgres (MIT License) — Official PostgreSQL MCP reference implementation. Connection pooling and read-only transaction patterns.
elastic/mcp-server-elasticsearch (Apache-2.0 License) — Official Elasticsearch MCP server. Tool design for search, indices, and mappings (reimplemented from Rust to TypeScript for OpenSearch compatibility).
License
MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pstasov/mcp-tester-helper'
If you have feedback or need assistance with the MCP directory API, please join our Discord server