Skip to main content
Glama
danilin-em

opensearch-dashboard-mcp

by danilin-em

opensearch-dashboard-mcp

MCP server that exposes OpenSearch Dashboards to an LLM client over stdio. Read saved objects, list tenants and index patterns, and query logs like the Discover app — all through the Dashboards API, so it works even when the raw OpenSearch REST API isn't exposed.

Run

uvx opensearch-dashboard-mcp

(After publishing to PyPI. For local dev use uvx --from . opensearch-dashboard-mcp.)

Related MCP server: Kibana Dashboard Builder

Configure

Environment variables:

Variable

Default

Purpose

OPENSEARCH_DASHBOARDS_URL

http://localhost:5601

Base URL

OPENSEARCH_DASHBOARDS_USERNAME

Basic auth / session-login user

OPENSEARCH_DASHBOARDS_PASSWORD

Basic auth / session-login password

OPENSEARCH_DASHBOARDS_VERIFY_TLS

true

Verify TLS certs

SSH_PROXY_TO

If set (e.g. user@host), route all requests through an embedded SSH SOCKS5 tunnel to that host

SSH_PROXY_PORT

auto

Local port for the tunnel; a free port is picked when unset

SSH tunnel

When SSH_PROXY_TO is set, the server spawns ssh -N -D <port> <host> before serving and routes HTTP through the resulting socks5h:// proxy. DNS is resolved on the remote side, so this reaches targets only visible from a remote network (e.g. a VPN living inside a container). Requires key-based SSH auth (runs with BatchMode=yes). The tunnel lives exactly as long as the server.

Use in an MCP client

{
  "mcpServers": {
    "opensearch-dashboards": {
      "command": "uvx",
      "args": ["opensearch-dashboard-mcp"],
      "env": {
        "OPENSEARCH_DASHBOARDS_URL": "http://localhost:5601",
        "OPENSEARCH_DASHBOARDS_USERNAME": "admin",
        "OPENSEARCH_DASHBOARDS_PASSWORD": "admin"
      }
    }
  }
}

Tools

  • ping() — check connectivity + auth. Hits the security authinfo endpoint; on a 401 with credentials set, performs a session login and re-checks. Returns {connected, authenticated, user, tenants} or the error reason.

  • list_saved_objects(type_="dashboard", per_page=20, tenant=None) — saved objects via saved_objects/_find, returned as compact {id, title, type}. tenant selects the multi-tenancy tenant (name, "__user__" for the private tenant, or None for the user default).

  • get_tenants() — multi-tenancy tenants via the security plugin config API, as {name, description, reserved, hidden}.

  • get_index_patterns(per_page=50) — index patterns (saved objects of type index-pattern), as {id, title, time_field}.

  • discover_search(index, query=None, time_from=None, time_to=None, time_field="@timestamp", size=10, fields=None, tenant=None) — fetch documents like the Discover app through the internal search API (/internal/search/opensearch). query is a Lucene query_string; time_from/ time_to filter a range (now-15m, ISO, …); fields trims _source to avoid flooding context. Returns {index, total, count, hits}.

Multi-tenancy note: saved objects are stored per tenant. Discover available tenant names with get_tenants, then pass one as tenant to the other tools.

Develop

uv sync --group dev
uv run opensearch-dashboard-mcp        # starts on stdio; Ctrl-D to exit
uv run pytest                          # tests (add --cov for the 100% gate)

Layout: config.py (env → Settings), client.py (async httpx wrapper), tools.py (tool registrations), server.py (entry point + tunnel), tunnel.py (SSH SOCKS5 tunnel). See CLAUDE.md for the architecture in depth.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to interact with Kibana dashboards, visualizations, and Elasticsearch data through read-only resources and executable tools for searching logs, exporting dashboards, and querying data.
    7
    12
    3
    MIT
  • F
    license
    -
    quality
    D
    maintenance
    Enables AI agents to create and manage Kibana dashboards, Lens visualizations, and data views via the Kibana Saved Objects API. It allows for programmatically listing existing resources and assembling new visualizations into dashboards through natural language commands.
  • F
    license
    -
    quality
    D
    maintenance
    Enables LLMs to interact with OpenSearch clusters to monitor cluster health, manage indices, and perform data searches. It provides a standardized interface for real-time OpenSearch operations within MCP-compatible environments like Open WebUI.
  • A
    license
    A
    quality
    B
    maintenance
    Enables LLM agents to query Dynatrace SaaS for observability data (logs, metrics, traces, entities, problems, vulnerabilities) and manage configurations (dashboards, notebooks, SLOs, synthetic monitors, settings).
    100
    MIT

View all related MCP servers

Related MCP Connectors

  • Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.

  • Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…

  • Provide real-time data querying and visualization by integrating Tako with your agents. Generate o…

View all MCP Connectors

Latest Blog Posts

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/danilin-em/opensearch-dashboard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server