LogsLoom
Ingest and search LogsLoom logs from coding agents.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"logsloom": {
"command": "npx",
"args": [
"@logsloom/mcp"
]
}
}
}Runnable packages
0.1.1stdioRemote endpoints
https://mcp.logsloom.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟡logs_ingest(level, message, timestamp, service, environment, ...)
Send one or many log events to LogsLoom (POST /v1/logs). Provide a single event via level+message, or a batch in `events` (max 100).
Input Schema
{
"type": "object",
"properties": {
"level": {
"description": "Required unless `events` is set",
"type": "string",
"enum": [
"debug",
"info",
"warn",
"error",
"fatal"
]
},
"message": {
"description": "Required unless `events` is set",
"type": "string",
"minLength": 1
},
"timestamp": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
"service": {
"type": "string",
"minLength": 1
},
"environment": {
"type": "string",
"minLength": 1
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"events": {
"description": "Batch of events; overrides single-event fields when set",
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"debug",
"info",
"warn",
"error",
"fatal"
]
},
"message": {
"type": "string",
"minLength": 1
},
"timestamp": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
"service": {
"type": "string",
"minLength": 1
},
"environment": {
"type": "string",
"minLength": 1
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"level",
"message"
]
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢logs_search(q, level, service, limit, offset)
List logs for the API-key's project (GET /v1/logs). Filters: q (message contains), level, service, limit, offset.
Input Schema
{
"type": "object",
"properties": {
"q": {
"description": "Case-insensitive message contains",
"type": "string",
"minLength": 1
},
"level": {
"type": "string",
"enum": [
"debug",
"info",
"warn",
"error",
"fatal"
]
},
"service": {
"description": "Exact service name",
"type": "string",
"minLength": 1
},
"limit": {
"description": "1–100, default 50",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"offset": {
"description": "Pagination offset, default 0",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢logs_get(id)
Fetch one log by id. The HTTP API has no GET /v1/logs/:id yet, so this tries that path and falls back to searching the latest list page.
Input Schema
{
"type": "object",
"properties": {
"id": {
"description": "Log event id from ingest or search",
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢logs_projects_list
There is no user-session projects API. Returns the project scope implied by the current API key (connectivity check via GET /v1/logs).
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence