Skip to content

MCP Server

The desktop app includes an MCP (Model Context Protocol) server so AI coding assistants can read your logs.

POST http://localhost:17655/mcp

JSON-RPC 2.0 protocol over Streamable HTTP.

List all projects with IDs, names, and workspace assignments.

{ }

List buckets for a specific project.

{ "projectId": "my-app" }

Query logs with full filter support.

{
"projectId": "my-app",
"level": "error,warn",
"bucket": "auth,payments",
"search": "failed",
"tags": { "env": ["prod"], "action": ["login", "signup"] },
"limit": 50,
"since": 1708000000000,
"until": 1708100000000
}
ParameterTypeDescription
projectIdstringRequired. Project ID.
levelstringComma-separated levels: error, warn, info, debug, fatal.
bucketstringComma-separated bucket names.
searchstringSubstring search in log messages.
tagsobjectTag filters as {key: [values]}. Logs must match ALL keys, any value per key.
limitintegerMax logs to return (default 50, max 200).
sinceintegerEpoch ms — only logs after this timestamp.
untilintegerEpoch ms — only logs before this timestamp.

Get the latest logs across ALL projects. Useful when you don’t know the project ID.

{ "limit": 20, "level": "error" }
ParameterTypeDescription
limitintegerMax logs (default 20, max 100).
levelstringComma-separated levels to filter.

Add to your project’s .mcp.json:

{
"mcpServers": {
"gunsole": {
"type": "streamableHttp",
"url": "http://localhost:17655/mcp"
}
}
}

Then Claude Code can query your logs directly:

"Check my app's error logs from the last hour"
"What are the most common error patterns in the auth bucket?"
"Show me the latest fatal logs across all projects"

Standard JSON-RPC 2.0:

// Initialize
{"jsonrpc": "2.0", "method": "initialize", "id": 1}
// List tools
{"jsonrpc": "2.0", "method": "tools/list", "id": 2}
// Query logs
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 3,
"params": {
"name": "query_logs",
"arguments": {
"projectId": "my-app",
"level": "error",
"limit": 20
}
}
}