Skip to main content
Glama
luis-dominguez-stori

OpenSearch Logs MCP Server

OpenSearch Logs MCP Server

MCP (Model Context Protocol) server for querying OpenTelemetry logs in OpenSearch. Supports development (dev) and production (prod) environments.

Architecture

The server follows SOLID principles and Clean Architecture:

src/
├── index.ts                     # Entry point
├── server.ts                    # MCP Server setup
├── config/
│   └── environments.ts          # Environment configuration
├── types/
│   └── index.ts                 # Type definitions
├── services/
│   ├── opensearch-client.ts     # HTTP client for OpenSearch
│   └── log-search.service.ts    # Business logic
├── tools/
│   ├── tool-definitions.ts      # Tool schemas
│   └── tool-handlers.ts         # Tool execution
└── utils/
    ├── query-builder.ts         # Query construction (Builder pattern)
    └── time-range.ts            # Time utilities

Applied Principles

  • Single Responsibility (SRP): Each module has a single responsibility

  • Open/Closed (OCP): Easy to add new tools without modifying existing code

  • Dependency Inversion (DIP): Services depend on abstractions (interfaces)

  • Builder Pattern: QueryBuilder for fluent query construction

Related MCP server: otel-mcp-server

Installation

cd Tools/mcp-opensearch-logs
npm install
npm run build

Configuration in Cursor

Add this to your Cursor configuration (~/.cursor/mcp.json):

{
  "mcpServers": {
    "opensearch-logs": {
      "command": "node",
      "args": ["/ruta/al/proyecto/Tools/mcp-opensearch-logs/dist/index.js"],
      "env": {
        "OPENSEARCH_DEV_USERNAME": "tu-usuario-dev",
        "OPENSEARCH_DEV_PASSWORD": "tu-password-dev",
        "OPENSEARCH_PROD_USERNAME": "tu-usuario-prod",
        "OPENSEARCH_PROD_PASSWORD": "tu-password-prod"
      }
    }
  }
}

Available Tools

search_logs

Free-text search with Lucene syntax.

Parameter

Type

Required

Description

environment

dev

prod

Environment to query

query

string

Query in Lucene syntax

timeRange

15m

1h

6h

24h

7d

Time range (default: 1h)

size

number

Maximum results (default: 50, max: 200)

Examples:

  • "Search for logs containing 'error' in dev from the last hour"

  • "Search for logs with status 500 in prod from the last 6 hours"

search_by_trace

Search all logs for an OpenTelemetry trace.

Parameter

Type

Required

Description

environment

dev

prod

Environment to query

traceId

string

Trace ID

size

number

Maximum results (default: 100)

Example:

  • "Give me all logs for trace abc123 in dev"

search_by_service

Filter logs by service name.

Parameter

Type

Required

Description

environment

dev

prod

Environment to query

serviceName

string

Service name

level

DEBUG

INFO

WARN

ERROR

FATAL

Log level

query

string

Additional query

timeRange

string

Time range

size

number

Maximum results

Examples:

  • "Search for logs from the stori-ios service in prod"

  • "Give me errors from the stori-ios service in dev"

search_errors

Search for logs with level ERROR or higher (severityNumber >= 17).

Parameter

Type

Required

Description

environment

dev

prod

Environment to query

serviceName

string

Filter by service

query

string

Additional query

timeRange

string

Time range

size

number

Maximum results

Examples:

  • "Give me errors from the last hour in prod"

  • "Search for errors related to KYC in dev"

get_field_values

Get the most common values for a field (aggregation).

Parameter

Type

Required

Description

environment

dev

prod

Environment to query

field

string

Field to aggregate

size

number

Maximum unique values (default: 20)

Examples:

  • "What values does the 'event' field have in prod?"

  • "Give me the most common error types in dev"

search_by_field

Search by a specific field and value.

Parameter

Type

Required

Description

environment

dev

prod

Environment to query

field

string

Field name

value

string

Value to search

timeRange

string

Time range

size

number

Maximum results

Example:

  • "Search for logs with transactionId=abc123 in prod"

get_mapping

Get the index field mapping.

Parameter

Type

Required

Description

environment

dev

prod

Environment to query

Example:

  • "What fields are available in the prod logs?"

get_sample_log

Get a sample log to see the structure.

Parameter

Type

Required

Description

environment

dev

prod

Environment to query

Example:

  • "Give me a sample log from prod to see the structure"

Lucene Search Syntax

The query field supports full Lucene syntax:

Syntax

Description

Example

term

Search in any field

error

field:value

Search in specific field

event:kyc_error

field:*value*

Wildcard

errorMessage:*timeout*

AND

Both terms

error AND authentication

OR

Either term

error OR warning

NOT

Exclude term

NOT debug

[a TO b]

Range

statusCode:[400 TO 499]

"exact phrase"

Exact match

"connection refused"

Time Ranges

Value

Description

15m

Last 15 minutes

1h

Last hour (default)

6h

Last 6 hours

24h

Last 24 hours

7d

Last 7 days

Development

# Desarrollo con watch mode
npm run dev

# Build
npm run build

# Lint
npm run lint

OpenTelemetry Log Structure

Logs follow the OpenTelemetry schema:

{
  "time": "2024-01-15T10:30:00.000Z",
  "severityText": "ERROR",
  "severityNumber": 17,
  "body": "Error message",
  "attributes": {
    "event": "kyc_error",
    "kycFlow": "creditL1",
    "transactionId": "abc123"
  },
  "resource": {
    "service.name": "stori-ios",
    "service.version": "1.0.0"
  }
}
Install Server
F
license - not found
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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

  • F
    license
    -
    quality
    D
    maintenance
    Provides seamless access to Kibana and Periscope logs through a unified API with KQL and SQL querying, AI-powered log analysis, and support for searching across 1.3+ billion logs in 9 indexes.
    1
  • A
    license
    -
    quality
    D
    maintenance
    Enables natural language querying and analysis of OpenTelemetry traces, metrics, and logs stored in Elasticsearch/OpenSearch, allowing AI assistants to investigate performance issues, find root causes, and explore system behavior.
    25
    14
    MIT

View all related MCP servers

Related MCP Connectors

  • Read-only access to Auralogs production logs: search logs, inspect errors, review AI analyses.

  • Investigate errors, track deployments, analyze performance, and manage application monitoring

  • Search public open-source code, documentation, metadata, vulnerabilities, changelogs, and examples.

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/luis-dominguez-stori/MCP'

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