seq-mcp
The seq-mcp server provides AI agents with controlled API access to a Datalust Seq log management instance via the Model Context Protocol (MCP).
Connection & Discovery
Test connectivity and retrieve instance health (
seq_connection_test)Get a starter tools overview (
seq_starter_help,seq_starter_overview)Browse the full Seq API route catalog (
seq_api_catalog) and discover live endpoints (seq_api_live_links)
Event Search & Retrieval
Search events by filter, signal, or time range (
seq_starter_events_search)Fetch a single event by ID (
seq_starter_event_by_id)Stream a bounded live-tail of events (
seq_starter_events_stream)
Data Queries
Run structured
qqueries via GET or POST (seq_starter_data_query)Execute tabulation and scan queries
Signals, Dashboards & Alerts
List, create, update, and delete signals, dashboards, and alerts
Diagnostics & Monitoring
Access metrics, ingestion stats, storage info, cluster status, and diagnostic reports
Administration
Manage API keys, app instances, backups, cluster nodes, and expression indexes
Generic & Auto-generated API Access
Invoke any cataloged Seq API route with any HTTP verb (
seq_api_request)Hundreds of auto-generated per-route tools (e.g.,
seq_get_api_alerts,seq_post_api_events_raw,seq_delete_api_dashboards_by)
Robustness & Security
Gracefully handles auth failures (401/403), timeouts, and oversized payloads
Requires
SEQ_URLandSEQ_API_KEY; supports configurable timeouts and size limitsRecommends least-privilege API keys with guidance on required permissions (Read, Ingest, Write, Project, Organization, System)
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@seq-mcpfind recent errors related to 'database connection'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-seq-otel
Standalone MCP server that gives AI agents controlled API access to a user-owned Datalust Seq instance.
Official Seq API Docs
Official Seq HTTP API usage guide: Using the HTTP API
What This Service Assumes
You already run/manage your own Seq instance.
This service only needs connection settings.
Required configuration:
SEQ_URLSEQ_API_KEY
URL Support
SEQ_URL accepts either:
Host URL (recommended; service will append
/api):http://localhost:10150https://seq.example.com
Full API base URL (also supported):
http://localhost:10150/apihttps://seq.example.com/api
Available MCP Tools
seq_agent_guide: returns agent-focused tool selection rules, recommended workflows, examples, and safety limits.seq_connection_test: validates Seq connectivity and API reachability, and reports the resolved root/healthURL used for the check.seq_starter_help: lists the compact starter alias tools.seq_starter_overview: quick health, user, diagnostics, signals, and workspace summary.seq_starter_events_search: common event search by filter/signal/time range.seq_starter_event_by_id: fetch one event by id.seq_starter_data_query: run aqquery usingGETorPOST.seq_starter_signals_list/seq_starter_signal_by_id: signal discovery helpers.seq_starter_dashboards_list: list dashboards.seq_starter_alerts_list: list alerts.seq_starter_events_stream: bounded live-tail style stream call.seq_api_catalog: returns the full official Seq route/verb/permission catalog.seq_api_live_links: discovers livename -> routelinks from your Seq instance.seq_api_request: generic verb/path invoker for official cataloged Seq API routes.seq_<verb>_<route>: auto-generated tool per official route+verb (from docs).
Scope note:
seq_starter_*tools are focused on common read workflows.seq_api_requestandseq_<verb>_<route>expose the broader HTTP API surface from the Seq endpoint catalog, including non-GETroutes.Generic requests are constrained to official route templates, with bounded query/path maps and request/response size limits to reduce accidental high-cost calls.
Agent Usage Process
AI agents should follow this sequence for reliable use:
Start with
seq_agent_guideto get the current workflow guidance and example calls.Use
seq_connection_testif the target Seq instance, API key, or URL shape may be wrong.Use
seq_starter_overviewto understand the current user, diagnostics status, and visible signals/workspaces.Prefer
seq_starter_events_search,seq_starter_data_query, and otherseq_starter_*tools for common read workflows.For advanced API access, call
seq_api_catalogfirst, then callseq_api_requestwith the exact official route template.
Short examples:
{
"tool": "seq_starter_events_search",
"arguments": {
"filter": "@Level = 'Error'",
"count": 50,
"render": true
}
}{
"tool": "seq_api_request",
"arguments": {
"method": "GET",
"path": "api/events/{id}",
"pathParams": {
"id": "event-123"
},
"query": {
"render": "true"
}
}
}Detailed agent workflow guide:
Seq API Key Permissions
Use least privilege based on the exact tools/workflows your MCP client will call.
Authoritative Datalust references:
API keys and permission model: Datalust API Keys
HTTP API usage guide: Using the HTTP API
Server endpoint + permission table: Server HTTP API
Recommended permission profiles:
Read-focused starter usage (
seq_starter_*,seq_connection_test, read-only queries): enableRead; disableIngest,Write,Project,Organization,System.Full route-surface usage (
seq_api_requestandseq_<verb>_<route>): required permissions depend on the specific route+verb; checkseq_api_catalogor the official endpoint table before granting.
Permission guidance for this project:
Permission | Needed now | Why |
| Yes | Required by starter query/retrieval workflows. |
| Usually No | Needed only when calling ingestion routes such as |
| Maybe | Needed for write routes (for example signals, dashboards, alerts, permalinks, SQL queries). |
| Maybe | Needed for project-scoped administration and some settings/index routes. |
| Maybe | Needed for organization/user-management routes. |
| Maybe | Needed for system administration routes (for example apps, feeds, backups, updates). |
Starter endpoint mapping in current implementation:
GET /health: public endpoint.GET /api/events/resources: public endpoint.GET /api/events:Readpermission demand.GET /api/events/{id}:Readpermission demand.GET /api/data:Readpermission demand.
API Key Header
The server authenticates to Seq using the X-Seq-ApiKey header.
Resilience and Permission Handling
Tool failures are returned as structured MCP error responses (isError: true) instead of crashing the server process.
Current graceful handling includes:
401 Unauthorized: returns guidance to verifySEQ_API_KEYandSEQ_URL.403 Forbidden: returns a permission-denied response with route-derived permission hints when available.Network/timeout failures: returns connectivity diagnostics for AI clients.
Oversized requests/responses: returns actionable limit errors instead of exhausting the server process.
Binary responses: returns structured metadata with base64 payloads for non-text endpoints such as icon routes.
Health check behavior:
seq_connection_testalways probes the Seq host root at/health.If
SEQ_URLis configured as eitherhttp://host:portorhttp://host:port/api, the health check resolves tohttp://host:port/health.
Local Run (Node)
Node.js requirement: v24.15.0 LTS with npm 11.13.0 (see .nvmrc and package.json).
npm install
npm run buildWindows PowerShell:
$env:SEQ_URL = "http://localhost:10150"
$env:SEQ_API_KEY = "your-key"
node dist/index.jsDocker Standalone Run
Docker Hub documentation assets in this repo:
Auto-sync source for Hub long description:
.dockerhub-readme.mdMain project reference:
README.md
Build image:
docker build -t mcp/seq-otel .Run via Docker Compose (recommended for MCP stdio):
PowerShell:
./scripts/run-mcp-compose.ps1 -SeqUrl "http://localhost:10150" -SeqApiKey "<YOUR_SEQ_API_KEY>" -BuildBash:
./scripts/run-mcp-compose.sh --seq-url "http://localhost:10150" --seq-api-key "<YOUR_SEQ_API_KEY>" --buildCompose run behavior:
Value precedence is: explicit script args -> existing environment variables ->
.env.If the target
.envis missing, scripts create a generic template.envautomatically.When that generated generic template is in use, ensure
SEQ_URLandSEQ_API_KEYare resolved via script args, existing environment variables, or a populated.envfile.MCP_IMAGE_TAGis optional; when empty, Compose uses an untagged image reference (mcp/seq-otel).Scripts check image availability through compose service metadata and auto-build if the selected tag is not available.
By default, no container name is specified, so Docker auto-generates a random name.
You can override container name with
-ContainerName(PowerShell) or--container-name(Bash).For security, prefer setting
SEQ_API_KEYvia environment variables or.envinstead of CLI args.
Or use helper scripts:
PowerShell:
./build-docker-image.ps1Bash:
./build-docker-image.shScript intent:
./build-docker-image.sh: builds the Docker image and adds it to your local Docker images../build-docker-image.ps1: builds the Docker image and adds it to your local Docker images../scripts/run-mcp-compose.sh: runs the MCP server through Docker Compose for stdio use; it can build if needed, but its primary job is to run the container.
Default build behavior:
When you run the build script without
--tagor-Tag, it builds the named imagemcp/seq-otel, which Docker treats asmcp/seq-otel:latest.If you want a different reusable image such as
mcp/seq-otel:v0.3.1, pass an explicit tag.--latest-tagor-LatestTagremains optional and adds an additional tag alongside the primary image tag.
Build and push to registry (pullable by other Docker hosts):
PowerShell:
./build-docker-image.ps1 -Registry ghcr.io/mclifeleader -Tag v0.3.1 -PushBash:
./build-docker-image.sh --registry ghcr.io/mclifeleader --tag v0.3.1 --pushBy default, the build scripts do not apply an additional tag. If you want one, pass it explicitly with PowerShell -LatestTag <tag> or Bash --latest-tag <tag>.
Build and export tar (loadable with docker load):
PowerShell:
./build-docker-image.ps1 -SaveTar ./mcp-seq-otel.tarBash:
./build-docker-image.sh --save-tar ./mcp-seq-otel.tarRun against local Seq:
docker run --rm -i \
-e SEQ_URL=http://host.docker.internal:10150 \
-e SEQ_API_KEY=your-key \
mcp/seq-otelRun against FQDN Seq:
docker run --rm -i \
-e SEQ_URL=https://seq.example.com \
-e SEQ_API_KEY=your-key \
mcp/seq-otelRun with Podman:
podman build -t mcp/seq-otel .
podman run --rm -i \
-e SEQ_URL=https://seq.example.com \
-e SEQ_API_KEY=your-key \
mcp/seq-otelThe container startup contract requires both variables to be present:
SEQ_URLSEQ_API_KEY
Optional stability controls:
SEQ_TIMEOUT_MS: request timeout in milliseconds, default30000, bounded to1000-120000.SEQ_MAX_REQUEST_BYTES: max outbound request body size, default262144.SEQ_MAX_RESPONSE_BYTES: max inbound response size, default1048576.
If either is missing, the container exits immediately with a clear startup error.
Live contract check:
npm run validate:live-contractThis command uses the current SEQ_URL and SEQ_API_KEY to compare live advertised routes against src/route-catalog.ts and to probe safe read-only endpoints for stale 404 entries.
Copy/Paste MCP Config (Codex and VS Code)
Assumes the image already exists (mcp/seq-otel).
{
"mcpServers": {
"seq-otel": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"SEQ_URL=http://host.docker.internal:10150",
"-e",
"SEQ_API_KEY=<YOUR_SEQ_API_KEY>",
"mcp/seq-otel"
]
}
}
}Docker MCP Catalog Compatibility
This repo includes a catalog-ready server definition in:
catalog/server.yamlcatalog/tools.jsonassets/seq-otel-icon.svg
catalog/server.yaml declares:
SEQ_URLas a required user parameter (mapped viaconfig.env)SEQ_API_KEYas a required secret (mapped viaconfig.secrets)
These files follow the Docker MCP registry server format, so they can be used in
catalog generation/import workflows (for example via docker/mcp-registry tools).
Submission checklist for Docker MCP Registry:
docs/docker-mcp-registry-submission.md
MCP Client Integration Example
Use a command-based MCP client entry that launches the container with stdin/stdout attached.
{
"mcpServers": {
"seq-otel": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"SEQ_URL=https://seq.example.com",
"-e",
"SEQ_API_KEY=<YOUR_SEQ_API_KEY>",
"mcp/seq-otel"
]
}
}
}Security Notes
Do not commit keys.
Use least-privilege Seq API keys.
Prefer HTTPS for non-local Seq instances.
API Mapping Artifact
Full generated API map:
docs/api-map.mdMaintenance/update playbook:
docs/seq-mcp-maintenance.mdProject skill for update workflows:
.github/skills/seq-mcp-maintainer/SKILL.mdProject wiki (how-to and operations): seq-mcp wiki
Status
Core standalone server scaffold is implemented and buildable.
Maintenance
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/MCLifeLeader/seq-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server