Skip to main content
Glama

elog-mcp

OpenAPI/MCP сервер, предоставляющий LLM-агентам доступ только для чтения к электронным журналам ELOG по HTTP. Эталонное развертывание: журнал T2K/ND280 по адресу https://elog.nd280.org/elog/; работает с любым стандартным экземпляром elogd.

  • Поиск записей по полному тексту (регулярные выражения), атрибутам и диапазону дат

  • Чтение записей полностью (атрибуты + тело + вложения)

  • Скачивание вложений, обнаружение журналов

Строго только для чтения: выполняются только HTTP GET-запросы. Проверка TLS включена по умолчанию. Учетные данные берутся только из окружения и никогда не записываются в журнал и не выводятся.

Setup

Требуется Python ≥ 3.10 и uv:

uv sync

Related MCP server: mcp-opensearch

Configuration

Все настройки задаются переменными окружения (префикс ELOG_):

Variable

Required

Meaning

ELOG_URL

yes

Базовый URL, включая подкаталог, например https://elog.nd280.org/elog

ELOG_USER / ELOG_PASSWORD

no

Общие учетные данные

ELOG_LOGBOOKS

no

Разделенный запятыми список разрешенных журналов, используемый поиском * / порядком отображения

ELOG_SSL_VERIFY

no

true (по умолчанию) / false — никогда не отключайте вне локальных тестов

ELOG_TIMEOUT

no

Таймаут HTTP в секундах (по умолчанию 30)

ELOG_MCP_TRANSPORT

no

stdio (по умолчанию) · streamable-http · openapi

ELOG_MCP_HOST / ELOG_MCP_PORT

no

Адрес/порт привязки в HTTP-режимах (по умолчанию 127.0.0.1:8000)

ELOG_API_KEY

no

Требовать Authorization: Bearer <key> на всех конечных точках OpenAPI

ELOG_CORS_ORIGINS

no

Разделенные запятыми источники CORS для режима openapi (по умолчанию *)

ELOG_MCP_CERTFILE / ELOG_MCP_KEYFILE

no

Сертификат/ключ TLS (PEM) — обеспечивает HTTPS в HTTP-режимах

Общий префикс для каждого развертывания:

export ELOG_URL=https://elog.nd280.org/elog
export ELOG_USER=your-shared-user
export ELOG_PASSWORD=your-shared-password

Deployment

ELOG_MCP_TRANSPORT определяет, как клиенты общаются с сервером:

Transport

Clients

Endpoint

stdio (default)

Claude Desktop, opencode, другие локальные MCP-хосты

запускаемый процесс

streamable-http

Веб-интерфейсы, говорящие на MCP по HTTP (LibreChat, …)

http://<host>:<port>/mcp

openapi

Серверы инструментов OpenAPI (Open WebUI, …)

спецификация на /openapi.json, документация на /docs, базовый / отвечает JSON о работоспособности

stdio (локальные MCP-клиенты)

uv run elog-mcp

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "elog": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/elog-mcp", "run", "elog-mcp"],
      "env": { "ELOG_URL": "…", "ELOG_USER": "…", "ELOG_PASSWORD": "…" }
    }
  }
}

opencode (~/.config/opencode/opencode.json):

{
  "mcp": {
    "elog": {
      "type": "local",
      "command": ["uv", "--directory", "/absolute/path/to/elog-mcp", "run", "elog-mcp"],
      "environment": { "ELOG_URL": "…", "ELOG_USER": "…", "ELOG_PASSWORD": "…" }
    }
  }
}

streamable-http (удаленные MCP-клиенты)

ELOG_MCP_TRANSPORT=streamable-http uv run elog-mcp

Зарегистрируйте http://127.0.0.1:8000/mcp как удаленный MCP-сервер в вашем интерфейсе.

openapi (Open WebUI и другие)

ELOG_MCP_TRANSPORT=openapi \
ELOG_API_KEY=pick-a-random-secret \
uv run elog-mcp

Пять конечных точек только для чтения повторяют инструменты ниже (operationIds совпадают с именами инструментов). В Open WebUI: Settings → Tools → + (на уровне пользователя, загружается вашим браузером) или Admin Settings → Tools (глобально, загружается его серверной частью), введите URL сервера и поместите значение ELOG_API_KEY в поле ключа Bearer.

HTTPS: передайте ELOG_MCP_CERTFILE/ELOG_MCP_KEYFILE или поместите перед сервером обратный прокси или туннель (например, cloudflared tunnel --url http://localhost:8000). Для локально доверенных сертификатов разработки: mkcert -install && mkcert localhost 127.0.0.1 ::1, затем передайте два файла в указанные выше переменные (абсолютные пути).

Правила доступности (эмпирические):

  • Все по умолчанию привязывается к 127.0.0.1. Установите ELOG_MCP_HOST=0.0.0.0 и ELOG_API_KEY, если кто-то еще должен получить доступ к серверу.

  • Клиент в Docker? 127.0.0.1 внутри его контейнера — это не ваша машина; используйте http://host.docker.internal:<port> (--add-host=host.docker.internal:host-gateway на Linux).

  • Размещенный экземпляр (например, университетский WebUI)? Он никогда не сможет получить доступ к loopback вашего ноутбука. Пользовательские серверы инструментов дополнительно подчиняются Content-Security-Policy этого сайта — если DevTools показывает запрос как Transferred: CSP, браузер заблокировал его, и только изменение connect-src на стороне ИТ-отдела поможет. Практический путь: разверните elog-mcp в доступном месте и попросите администраторов зарегистрировать его один раз как глобальный сервер инструментов.

Tools

Те же пять операций на каждом транспорте (маршруты REST показаны для openapi):

Tool

REST route

Purpose

elog_list_logbooks()

GET /logbooks

Список журналов

elog_search(text?, attributes?, date_from?, date_to?, last_days?, logbook="*", max_results=50, reverse=true)

GET /search (attributes = JSON object string)

Регулярное выражение по полному тексту + фильтрация по атрибутам и датам; возвращает выдержки

elog_get_entry(logbook, entry_id)

GET /logbooks/{logbook}/entries/{entry_id}

Полное тело записи, атрибуты, ветвление обсуждения

elog_get_recent_entries(logbook, count=20)

GET /logbooks/{logbook}/recent?count=N

Ярлык для получения последних записей (сначала новые)

elog_get_attachment(logbook, filename)

GET /logbooks/{logbook}/attachments/{filename}

Содержимое вложения в Base64

Примечания:

  • Фильтры по тексту и атрибутам — это регулярные выражения (семантика elogd); якоря ^value$ дают точные совпадения.

  • Даты: YYYY-MM-DD[ HH:MM[:SS]] или используйте last_days вместо диапазона; logbook="*" ищет по всем известным журналам.

  • Ошибки отображаются единообразно: EntryNotFound, AuthFailed, ServerError, NetworkError, InvalidLogbook (коды состояния REST: 404/502/502/503/404, недопустимые параметры запроса → 400/422).

Development

uv run pytest                # unit tests, offline
uv run pytest -m live        # live suite (needs ELOG_TEST_URL)
uv run ruff check .          # lint
uv run ruff format --check . # formatting gate
uv run mypy src              # type check (strict)

Детали протокола и ссылки на формат передачи данных находятся в RESOURCES.md; архитектура и контракты инструментов — в SPEC.md.

A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
6Releases (12mo)

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
    A
    quality
    B
    maintenance
    Enables discovery of HEPData records, tables, and data access with read-only operations and export links.
    9
    GPL 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Read-only MCP server for exploring and searching OpenSearch clusters, enabling log analysis, index exploration, and query execution.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server for the Auralogs logging platform, enabling AI agents to query production logs, search errors, and retrieve AI analyses without write access. It allows you to ask your coding assistant 'what's broken in production right now?' by connecting to your logs via a simple bearer auth key.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Read-only MCP server for searching and aggregating logs from VMware Aria Operations for Logs (formerly vRealize Log Insight). Enables querying log events, aggregating with spike detection, and retrieving alert information.
    7
    MIT

View all related MCP servers

Related MCP Connectors

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

  • Read-only optical catalog search plus DiffBeam server, schema, and catalog revision metadata.

  • Multi-engine scholarly research server for search, traversal, full text, and reading lists.

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/ast0815/elog-mcp'

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