VOOZH about

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

⇱ OpenSearch 日志 MCP 服务器 by luis-dominguez-stori | Glama


OpenSearch 日志 MCP 服务器

MCP (Model Context Protocol) 服务器,用于查询 OpenSearch 中的 OpenTelemetry 日志。支持开发 (dev) 和生产 (prod) 环境。

架构

该服务器遵循 SOLID 原则和整洁架构 (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

应用原则

  • 单一职责原则 (SRP):每个模块都有单一的职责

  • 开闭原则 (OCP):无需修改现有代码即可轻松添加新工具

  • 依赖倒置原则 (DIP):服务依赖于抽象(接口)

  • 构建者模式 (Builder Pattern):使用 QueryBuilder 进行流畅的查询构建

安装

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

Cursor 配置

将以下内容添加到你的 Cursor 配置 (~/.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"
 }
 }
 }
}

可用工具

search_logs

使用 Lucene 语法的自由搜索。

参数

类型

必填

描述

environment

dev

prod

要查询的环境

query

string

Lucene 语法查询

timeRange

15m

1h

6h

24h

7d

时间范围 (默认: 1h)

size

number

最大结果数 (默认: 50, 最大: 200)

示例:

  • "搜索过去一小时内 dev 环境中包含 'error' 的日志"

  • "搜索过去 6 小时内 prod 环境中状态为 500 的日志"

search_by_trace

搜索 OpenTelemetry 追踪的所有日志。

参数

类型

必填

描述

environment

dev

prod

要查询的环境

traceId

string

追踪 ID

size

number

最大结果数 (默认: 100)

示例:

  • "获取 dev 环境中 trace abc123 的所有日志"

search_by_service

按服务名称过滤日志。

参数

类型

必填

描述

environment

dev

prod

要查询的环境

serviceName

string

服务名称

level

DEBUG

INFO

WARN

ERROR

FATAL

日志级别

query

string

附加查询

timeRange

string

时间范围

size

number

最大结果数

示例:

  • "搜索 prod 环境中 stori-ios 服务的日志"

  • "获取 dev 环境中 stori-ios 服务的错误日志"

search_errors

搜索 ERROR 或更高级别(severityNumber >= 17)的日志。

参数

类型

必填

描述

environment

dev

prod

要查询的环境

serviceName

string

按服务过滤

query

string

附加查询

timeRange

string

时间范围

size

number

最大结果数

示例:

  • "获取 prod 环境中过去一小时的错误"

  • "搜索 dev 环境中与 KYC 相关的错误"

get_field_values

获取字段的最常见值(聚合)。

参数

类型

必填

描述

environment

dev

prod

要查询的环境

field

string

要聚合的字段

size

number

唯一值的最大数量 (默认: 20)

示例:

  • "prod 环境中 'event' 字段有哪些值?"

  • "获取 dev 环境中最常见的错误类型"

search_by_field

按特定字段和值进行搜索。

参数

类型

必填

描述

environment

dev

prod

要查询的环境

field

string

字段名称

value

string

要搜索的值

timeRange

string

时间范围

size

number

最大结果数

示例:

  • "搜索 prod 环境中 transactionId=abc123 的日志"

get_mapping

获取索引的字段映射。

参数

类型

必填

描述

environment

dev

prod

要查询的环境

示例:

  • "prod 日志中有哪些可用字段?"

get_sample_log

获取示例日志以查看结构。

参数

类型

必填

描述

environment

dev

prod

要查询的环境

示例:

  • "给我一个 prod 日志示例以查看其结构"

Lucene 搜索语法

query 字段支持完整的 Lucene 语法:

语法

描述

示例

term

在任何字段中搜索

error

field:value

在特定字段中搜索

event:kyc_error

field:*value*

通配符

errorMessage:*timeout*

AND

两个词都包含

error AND authentication

OR

包含任意一个词

error OR warning

NOT

排除词

NOT debug

[a TO b]

范围

statusCode:[400 TO 499]

"exact phrase"

精确匹配

"connection refused"

时间范围

描述

15m

最近 15 分钟

1h

最近一小时 (默认)

6h

最近 6 小时

24h

最近 24 小时

7d

最近 7 天

开发

# Desarrollo con watch mode
npm run dev

# Build
npm run build

# Lint
npm run lint

OpenTelemetry 日志结构

日志遵循 OpenTelemetry 模式:

{
 "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