MCP Insights Proxy
Executes OpenSearch DSL queries and returns synthesized output (table, list, summary, compact JSON) instead of raw JSON, supporting all query types including aggregations, nested queries, and has_parent queries.
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 Insights ProxyShow my top 10 most engaged posts from last week"
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 Insights Proxy v2
Context-efficient MCP server that executes OpenSearch queries and returns synthesized output instead of raw JSON.
Philosophy
Full query flexibility, synthesized output only.
You retain 100% of OpenSearch DSL capabilities. The proxy only transforms the output.
┌──────────────────────────────────────────────────────────────────────────┐
│ BEFORE (direct OpenSearch MCP) │
│ Query → OpenSearch → 500+ lines raw JSON → Context window 💥 │
├──────────────────────────────────────────────────────────────────────────┤
│ AFTER (this proxy) │
│ Query → Proxy → OpenSearch → Proxy formats → 20-50 lines → Context ✅ │
└──────────────────────────────────────────────────────────────────────────┘Related MCP server: MCP of MCPs
Key Difference from v1
v1 (Limited) | v2 (Full Flexibility) |
5-6 predefined tools | 1 main tool accepting ANY DSL |
Hardcoded query patterns | You build the query |
Limited aggregations | ALL aggregations supported |
No nested/has_parent | Full query DSL support |
Quick Start
1. Install
cd mcp-insights-proxy
npm install
npm run build2. Configure MCP Client
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"insights-proxy": {
"command": "node",
"args": ["/absolute/path/to/mcp-insights-proxy/dist/index.js"],
"env": {
"OPENSEARCH_URL": "https://your-cluster:9200",
"OPENSEARCH_INDEX": "channel_posts",
"OPENSEARCH_USER": "username",
"OPENSEARCH_PASS": "password"
}
}
}
}3. Restart Claude
Tools
opensearch_query (Main Tool)
Execute any OpenSearch DSL query. Full flexibility.
Parameters:
Parameter | Type | Description |
| object | Required. Full OpenSearch DSL query object |
| string | Index name (default: |
| enum |
|
| number | Max hits to show (default: 20, max: 50) |
Example - Complex aggregation with nested sub-aggs:
{
"query": {
"size": 0,
"query": {
"bool": {
"must": [
{"term": {"join_field": "post"}},
{"term": {"channel.type": "ig"}}
],
"filter": [
{"range": {"published_at": {"gte": "now-30d"}}}
]
}
},
"aggs": {
"by_hashtag": {
"terms": {"field": "hashtags", "size": 10},
"aggs": {
"avg_engagement": {"avg": {"field": "engagement"}},
"top_creators": {"terms": {"field": "channel.name", "size": 3}}
}
}
}
}
}Example - has_parent query:
{
"query": {
"query": {
"bool": {
"must": [
{"term": {"join_field": "post"}},
{
"has_parent": {
"parent_type": "channel",
"query": {
"bool": {
"must": [
{"term": {"channel.geo.country.code": "IT"}},
{"range": {"channel.followers": {"gte": 100000}}}
]
}
}
}
}
]
}
},
"sort": [{"engagement": "desc"}],
"size": 10,
"_source": ["channel.name", "engagement", "published_at"]
}
}opensearch_count
Quick count without full query overhead.
{
"query": {
"bool": {
"must": [
{"term": {"join_field": "post"}},
{"term": {"hashtags": "skincare"}}
]
}
}
}opensearch_mapping
Get field list for an index.
Output Formats
auto (default)
Automatically detects:
Aggregation-only → summary format
Few hits (≤5) → list format
Many hits → table format
table
| # | name | type | engagement | likes | published_at |
|---|------|------|------------|-------|--------------|
| 1 | creator1 | IG | 156K | 142K | 2025-01-15 |
| 2 | creator2 | TT | 98K | 89K | 2025-01-18 |list
**1.** @creator1 (IG) • eng: 156K • likes: 142K • views: 2.3M • 2025-01-15
**2.** @creator2 (TT) • eng: 98K • likes: 89K • views: 1.8M • 2025-01-18summary
Just counts and aggregation results, no individual hits.
compact_json
Minimal JSON with only _source (no _id, _score, _index metadata).
Aggregation Output Examples
Terms aggregation
**by_platform:**
• ig: 45.2K
• tt: 32.1K
• yt: 12.8KStats aggregation
**engagement_stats:** count=89.1K avg=2.3K min=0 max=1.2M sum=205MNested sub-aggregations
**by_hashtag:**
• **skincare** (12.4K)
**avg_engagement:** 3.2K
**top_creators:**
• creator1: 342
• creator2: 287
• **beauty** (8.7K)
**avg_engagement:** 2.8K
...Context Savings
Query Type | Raw JSON | Proxy Output | Savings |
Top 10 posts | ~3000 tokens | ~300 tokens | 90% |
Aggregation (5 buckets) | ~1500 tokens | ~150 tokens | 90% |
Complex nested agg | ~5000 tokens | ~400 tokens | 92% |
Environment Variables
Variable | Required | Default | Description |
| Yes |
| Cluster URL |
| No |
| Default index |
| No | - | Basic auth username |
| No | - | Basic auth password |
Development
npm run dev # Development with auto-reload
npm run build # Build for production
npm start # Run production buildArchitecture
┌─────────────┐ ┌────────────────────────────────────────────┐ ┌────────────┐
│ │ │ MCP Insights Proxy │ │ │
│ Claude │────▶│ 1. Receive DSL query (any complexity) │────▶│ OpenSearch │
│ (builds │ │ 2. Execute against cluster │ │ │
│ full │◀────│ 3. Parse response │◀────│ │
│ DSL) │ │ 4. Format: table/list/summary │ │ │
│ │ │ 5. Return compact markdown │ │ │
└─────────────┘ └────────────────────────────────────────────┘ └────────────┘
│ │
│ Returns:
│ "*45.2K hits • took 23ms*
│
│ ## Aggregations
│ **by_platform:**
│ • ig: 45.2K
│ • tt: 32.1K
│
│ ## Results
│ | # | name | engagement |..."
│
└─── ~300 tokens instead of ~3000License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server implementation that enables natural language interactions with OpenSearch clusters, allowing users to search documents, analyze indices, and manage clusters through simple conversational commands.Last updated1411Apache 2.0
- Alicense-qualityDmaintenanceA meta-server that aggregates multiple MCP servers into a single interface, reducing token usage by 98%+ through progressive tool discovery and direct code execution that processes data between tools without consuming context window space.Last updated1610Apache 2.0
- AlicenseBqualityAmaintenanceMCP server for OpenSearch that enables AI assistants to interact with OpenSearch clusters through a standardized interface for search, index management, and cluster operations.Last updated9144Apache 2.0
- Alicense-qualityCmaintenanceMCP server that cuts cloud LLM costs 36-42% by indexing context locally and giving agents precision retrieval tools instead of raw context dumps.Last updated87MIT
Related MCP Connectors
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
Local-first RAG engine with MCP server for AI agent integration.
A paid remote MCP for OpenAI Codex context compressor, built to return verdicts, receipts, usage log
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/lele1983/mcp-insights-proxy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server