VOOZH about

URL: https://glama.ai/mcp/servers/luis-dominguez-stori/MCP?locale=de-DE

⇱ OpenSearch Logs MCP Server by luis-dominguez-stori | Glama


OpenSearch Logs MCP Server

MCP (Model Context Protocol) Server zum Abfragen von OpenTelemetry-Logs in OpenSearch. Unterstützt Entwicklungs- (dev) und Produktionsumgebungen (prod).

Architektur

Der Server folgt den SOLID-Prinzipien und der 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

Angewandte Prinzipien

  • Single Responsibility (SRP): Jedes Modul hat eine einzige Verantwortung

  • Open/Closed (OCP): Einfaches Hinzufügen neuer Tools ohne Änderung des bestehenden Codes

  • Dependency Inversion (DIP): Dienste hängen von Abstraktionen (Interfaces) ab

  • Builder Pattern: QueryBuilder für den flüssigen Aufbau von Abfragen

Installation

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

Konfiguration in Cursor

Füge dies zu deiner Cursor-Konfiguration hinzu (~/.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"
 }
 }
 }
}

Verfügbare Tools

search_logs

Freitextsuche mit Lucene-Syntax.

Parameter

Typ

Erforderlich

Beschreibung

environment

dev

prod

Zu durchsuchende Umgebung

query

string

Abfrage in Lucene-Syntax

timeRange

15m

1h

6h

24h

7d

Zeitbereich (Standard: 1h)

size

number

Maximale Anzahl der Ergebnisse (Standard: 50, max: 200)

Beispiele:

  • "Suche nach Logs, die 'error' enthalten, in dev aus der letzten Stunde"

  • "Suche nach Logs mit Status 500 in prod aus den letzten 6 Stunden"

search_by_trace

Sucht alle Logs eines OpenTelemetry-Traces.

Parameter

Typ

Erforderlich

Beschreibung

environment

dev

prod

Zu durchsuchende Umgebung

traceId

string

Trace-ID

size

number

Maximale Anzahl der Ergebnisse (Standard: 100)

Beispiel:

  • "Gib mir alle Logs für den Trace abc123 in dev"

search_by_service

Filtert Logs nach Dienstname.

Parameter

Typ

Erforderlich

Beschreibung

environment

dev

prod

Zu durchsuchende Umgebung

serviceName

string

Dienstname

level

DEBUG

INFO

WARN

ERROR

FATAL

Log-Stufe

query

string

Zusätzliche Abfrage

timeRange

string

Zeitbereich

size

number

Maximale Anzahl der Ergebnisse

Beispiele:

  • "Suche nach Logs des Dienstes stori-ios in prod"

  • "Gib mir die Fehler des Dienstes stori-ios in dev"

search_errors

Sucht nach Logs der Stufe ERROR oder höher (severityNumber >= 17).

Parameter

Typ

Erforderlich

Beschreibung

environment

dev

prod

Zu durchsuchende Umgebung

serviceName

string

Nach Dienst filtern

query

string

Zusätzliche Abfrage

timeRange

string

Zeitbereich

size

number

Maximale Anzahl der Ergebnisse

Beispiele:

  • "Gib mir die Fehler der letzten Stunde in prod"

  • "Suche nach Fehlern im Zusammenhang mit KYC in dev"

get_field_values

Ruft die häufigsten Werte eines Feldes ab (Aggregation).

Parameter

Typ

Erforderlich

Beschreibung

environment

dev

prod

Zu durchsuchende Umgebung

field

string

Zu aggregierendes Feld

size

number

Maximale Anzahl eindeutiger Werte (Standard: 20)

Beispiele:

  • "Welche Werte hat das Feld 'event' in prod?"

  • "Gib mir die häufigsten Fehlertypen in dev"

search_by_field

Sucht nach einem spezifischen Feld und Wert.

Parameter

Typ

Erforderlich

Beschreibung

environment

dev

prod

Zu durchsuchende Umgebung

field

string

Feldname

value

string

Zu suchender Wert

timeRange

string

Zeitbereich

size

number

Maximale Anzahl der Ergebnisse

Beispiel:

  • "Suche nach Logs mit transactionId=abc123 in prod"

get_mapping

Ruft das Feld-Mapping des Index ab.

Parameter

Typ

Erforderlich

Beschreibung

environment

dev

prod

Zu durchsuchende Umgebung

Beispiel:

  • "Welche Felder sind in den prod-Logs verfügbar?"

get_sample_log

Ruft ein Beispiel-Log ab, um die Struktur zu sehen.

Parameter

Typ

Erforderlich

Beschreibung

environment

dev

prod

Zu durchsuchende Umgebung

Beispiel:

  • "Gib mir ein Beispiel-Log aus prod, um die Struktur zu sehen"

Lucene-Suchsyntax

Das Feld query unterstützt die vollständige Lucene-Syntax:

Syntax

Beschreibung

Beispiel

Begriff

Suche in jedem Feld

error

Feld:Wert

Suche in einem bestimmten Feld

event:kyc_error

Feld:*Wert*

Wildcard

errorMessage:*timeout*

AND

Beide Begriffe

error AND authentication

OR

Einer der Begriffe

error OR warning

NOT

Begriff ausschließen

NOT debug

[a TO b]

Bereich

statusCode:[400 TO 499]

"exakte Phrase"

Exakte Übereinstimmung

"connection refused"

Zeitbereiche

Wert

Beschreibung

15m

Letzte 15 Minuten

1h

Letzte Stunde (Standard)

6h

Letzte 6 Stunden

24h

Letzte 24 Stunden

7d

Letzte 7 Tage

Entwicklung

# Desarrollo con watch mode
npm run dev

# Build
npm run build

# Lint
npm run lint

OpenTelemetry-Logstruktur

Die Logs folgen dem 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"
 }
}
F
license - not found
A
quality
B
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.

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