Skip to content
BEAD

Apache / Nginx Log Parser

Parse Combined Log Format lines into structured rows with status mix, top paths, and per-row filtering.

Parsed
7
Unparsed
0
Total bytes
22.8K
Status mix
200:3 · 301:1 · 401:1 · 404:1 · 500:1
Top paths
  • /api/login 2
  • /index.html 1
  • /favicon.ico 1
  • /docs 1
  • /docs/ 1
IPTimeMethodPathStatusBytes
192.0.2.121/Mar/2026:09:14:22GET/index.html2004.4K
198.51.100.2321/Mar/2026:09:14:24POST/api/login40189
203.0.113.4521/Mar/2026:09:14:25GET/favicon.ico404162
198.51.100.2321/Mar/2026:09:14:30POST/api/login200312
192.0.2.721/Mar/2026:09:14:35GET/docs3010
192.0.2.721/Mar/2026:09:14:35GET/docs/20017.8K
203.0.113.4521/Mar/2026:09:14:40GET/api/users50076
</>Use this tool programmaticallycurl · JavaScript · MCP

Same tool, callable from any HTTP client or from Claude (via MCP). Anonymous: 100 req/day per IP. Sign up for 1,000 req/day.

curl
curl https://api.b-e-a-d.com/tools/log-parser/run \
  -H "Content-Type: application/json" \
  -d '{
  "input": "your input here"
}'
JavaScript (fetch)
const res = await fetch("https://api.b-e-a-d.com/tools/log-parser/run", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
  "input": "your input here"
}),
});
const data = await res.json();
console.log(data.result);
MCP (Claude Desktop / Claude Code)
# In Claude Desktop / Claude Code, add to your MCP config:
{
  "mcpServers": {
    "bead": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.b-e-a-d.com"]
    }
  }
}

# Then ask Claude to call:
mcp__bead__bead_log_parser

Full reference: developer docs · OpenAPI spec

Combined Log Format

The default Apache %h %l %u %t "%r" %>s %b "%Refereri" "%User-agenti" format — also nginx's combined. Each line becomes:

  • ip, ident, user, ts (parsed Date)
  • method, path, protocol
  • status, bytes
  • referer, ua

You might also like

Used in these workflows