mcp-tester-helper
Allows searching OpenSearch indices with Query DSL, listing indices, and inspecting index mappings.
Allows executing read-only SQL queries on PostgreSQL databases with connection pooling and safety.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-tester-helperRun a health check on staging"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: mcp-uni
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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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