Skip to main content
Glama
graylog-mcp

graylog-mcp

by lcaliani

Graylog MCP Server

A minimal MCP (Model Context Protocol) server in JavaScript that integrates with Graylog.

Features

  • JavaScript MCP server

  • Tools: fetch_graylog_messages (query Graylog and return messages)

  • Multi-instance support — query multiple Graylog servers from a single MCP server

Related MCP server: Graylog MCP Server

Requirements

  • Node.js 18+

Configuration

Configure one or more Graylog instances using numbered env vars:

Variable

Required

Description

GRAYLOG_BASE_URL_INSTANCE_N

yes

Graylog base URL for instance N

GRAYLOG_API_TOKEN_INSTANCE_N

yes

API token for instance N

GRAYLOG_LABEL_INSTANCE_N

no

Human-readable label (default: instance_N)

Replace N with 1, 2, 3, … to register as many instances as needed. Only instances with both BASE_URL and API_TOKEN set will be active.

Use with an MCP client

No installation needed — npx downloads and runs the server automatically.

Claude Code

claude mcp add graylog-mcp npx @lcaliani/graylog-mcp-server@latest \
  -e GRAYLOG_BASE_URL_INSTANCE_1=http://your-graylog-production.example.com:9000 \
  -e GRAYLOG_API_TOKEN_INSTANCE_1=your_production_token \
  -e GRAYLOG_LABEL_INSTANCE_1=production \
  -e GRAYLOG_BASE_URL_INSTANCE_2=http://your-graylog-staging.example.com:9000 \
  -e GRAYLOG_API_TOKEN_INSTANCE_2=your_staging_token \
  -e GRAYLOG_LABEL_INSTANCE_2=staging

Or add it manually to ~/.claude.json:

{
  "mcpServers": {
    "graylog-mcp": {
      "command": "npx",
      "args": ["@lcaliani/graylog-mcp-server@latest"],
      "env": {
        "GRAYLOG_BASE_URL_INSTANCE_1":  "http://your-graylog-production.example.com:9000",
        "GRAYLOG_API_TOKEN_INSTANCE_1": "your_production_token",
        "GRAYLOG_LABEL_INSTANCE_1":     "production",

        "GRAYLOG_BASE_URL_INSTANCE_2":  "http://your-graylog-staging.example.com:9000",
        "GRAYLOG_API_TOKEN_INSTANCE_2": "your_staging_token",
        "GRAYLOG_LABEL_INSTANCE_2":     "staging"
      }
    }
  }
}

Cursor

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "graylog-mcp": {
      "command": "npx",
      "args": ["@lcaliani/graylog-mcp-server@latest"],
      "env": {
        "GRAYLOG_BASE_URL_INSTANCE_1":  "http://your-graylog-production.example.com:9000",
        "GRAYLOG_API_TOKEN_INSTANCE_1": "your_production_token",
        "GRAYLOG_LABEL_INSTANCE_1":     "production",

        "GRAYLOG_BASE_URL_INSTANCE_2":  "http://your-graylog-staging.example.com:9000",
        "GRAYLOG_API_TOKEN_INSTANCE_2": "your_staging_token",
        "GRAYLOG_LABEL_INSTANCE_2":     "staging"
      }
    }
  }
}

Claude Desktop

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Linux: ~/.config/claude-desktop/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Use the same JSON structure shown above for Cursor.


Use

Once configured, the fetch_graylog_messages tool becomes available and will be automatically called when needed. Example prompts:

Search for the latest 20 error logs of the example application in the last 15 minutes.
Search for the latest 20 error logs of the example application in the last 15 minutes.
Query the "staging" Graylog instance.

Available tools

fetch_graylog_messages

Fetch messages from Graylog.

Parameters:

  • query (string, required): Search query. Example: level:ERROR AND service:api.

  • instance (string, optional): Label of the Graylog instance to query. Defaults to the first configured instance.

  • searchTimeRangeInSeconds (number, optional): Relative time range in seconds. Default: 900 (15 minutes).

  • searchCountLimit (number, optional): Max number of messages. Default: 50.

  • fields (string, optional): Comma-separated fields to include. Default: * (all fields).

Troubleshooting

  • Ensure at least GRAYLOG_BASE_URL_INSTANCE_1 and GRAYLOG_API_TOKEN_INSTANCE_1 are set.

  • Verify Node.js 18+ is installed.

  • Set DEBUG=true in the env to enable verbose logging to stderr.

License

MIT

Available Tools

1 tool
fetch_graylog_messagesA

Fetch messages from a Graylog instance.

Active instances: "instance_1". Default instance: "instance_1".

Use the "instance" parameter to target a specific Graylog server. Each instance is identified by its label (set via GRAYLOG_LABEL_INSTANCE_N env var). If no label is configured, instances are identified as "instance_1", "instance_2", etc.

Inputs: query (required), instance, searchTimeRangeInSeconds, searchCountLimit, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 1 tool

    Disambiguation5/5

    With only one tool, there is no possibility of confusion between tools. The tool's purpose is clearly stated.

    Naming Consistency5/5

    The single tool name 'fetch_graylog_messages' follows a consistent verb_noun pattern, which is clear and predictable.

    Tool Count2/5

    The server has only one tool for a domain (Graylog) that typically requires multiple operations. One tool feels insufficient for the apparent scope, leading to a score of 2.

    Completeness1/5

    The server provides only a single fetch tool, lacking any other operations such as search, create, update, or delete for messages, nor any management of streams or dashboards. This is severely incomplete for a Graylog integration.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to query and analyze logs from Graylog instances using universal search with relative or absolute time windows, supporting both full result retrieval and lightweight count-only queries.
      43 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to search and analyze logs in Graylog using three powerful tools: generic log search with Lucene queries, smart UUID/trace ID lookup across multiple fields, and stream-specific message retrieval with automatic field normalization.
      24 npm
      MIT
    • A
      license
      D
      quality
      B
      maintenance
      Integrates AI assistants with Graylog to query and analyze log data using Elasticsearch syntax and stream-specific filtering. It enables users to perform advanced searches, retrieve log statistics, and manage Graylog streams through natural language.
      9
      12
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      An MCP server that gives AI assistants direct access to your Graylog logs -- search, aggregate, analyze, and cluster log data through natural language.
      23
      335 npm
      MIT