Log File Parser & Error/Warning Extractor
omnial/x402-log-parse
Given raw log text (auto-detected as JSON or syslog lines, with ISO, logfmt, and Laravel-style formats also documented by the parser though not yet seen in a captured run), returns the total line count, the detected format, a count of lines per severity level, the full list of error and warning lines pulled out on their own, a sample of parsed entries (timestamp, level, message) from the whole log, and the first/last timestamps seen. Your input is sent to an outside service for processing; remove secrets and personal data first.
Price
Up to $0.0811 per call; you pay what the call used
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.00.
Data source
Computed by Eden Engine from the inputs you provide.
Use it
Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.
Connect once and your AI can find and run this tool, and any other it needs.
For developers: the calls your assistant makes
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/x402-log-parse" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/x402-log-parse" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/x402-log-parse", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/x402-log-parse", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0811 |
- Updated
- Oct 27, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"logs"
],
"properties": {
"logs": {
"type": "string"
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"total_lines",
"detected_format",
"level_counts",
"error_count",
"warning_count",
"errors",
"warnings",
"parsed_sample",
"time_range"
],
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"raw": {
"type": "string",
"description": "The original log line, verbatim."
},
"level": {
"type": "string",
"description": "The severity level, e.g. 'ERROR'."
},
"format": {
"type": "string",
"description": "The format this individual line was parsed as."
},
"message": {
"type": "string",
"description": "The parsed message text."
},
"timestamp": {
"type": [
"string",
"null"
],
"description": "The entry's timestamp as it appears in the log, in the log's own format."
},
"line_number": {
"type": "number",
"description": "1-based position in the submitted log."
}
}
},
"description": "Every line classified as an error, in the order they appeared. Empty array when the log has no errors. Observed shape below is from a JSON-formatted log; a differently formatted log's error entries were not observed but follow the same `parsed_sample` per-entry shape for that format."
},
"warnings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"raw": {
"type": "string"
},
"level": {
"type": "string"
},
"format": {
"type": "string"
},
"message": {
"type": "string"
},
"timestamp": {
"type": [
"string",
"null"
]
},
"line_number": {
"type": "number"
}
}
},
"description": "Every line classified as a warning, in the order they appeared. Empty array when the log has no warnings. Same per-entry shape as `errors`."
},
"time_range": {
"type": "object",
"properties": {
"last": {
"type": [
"string",
"null"
]
},
"first": {
"type": [
"string",
"null"
]
}
},
"description": "The first and last timestamps observed across the parsed log, in the log's own format."
},
"error_count": {
"type": "number",
"description": "Number of lines classified as an error. 0 when the log has none."
},
"total_lines": {
"type": "number",
"description": "Total number of lines submitted in the `logs` input."
},
"level_counts": {
"type": "object",
"description": "A map of severity level name (e.g. 'ERROR', 'WARNING', 'INFO') to how many lines were at that level. Observed as an empty object when the log has no error or warning lines (only INFO-level content) and as a populated object with ERROR/WARNING/INFO keys when the log mixes levels -- do not assume any particular key is always present.",
"additionalProperties": {
"type": "number"
}
},
"parsed_sample": {
"type": "array",
"items": {
"type": "object",
"properties": {
"pid": {
"type": "string",
"description": "Observed only on syslog-formatted entries."
},
"raw": {
"type": "string"
},
"level": {
"type": "string",
"description": "Observed only on JSON-formatted entries."
},
"format": {
"type": "string"
},
"source": {
"type": "string",
"description": "Observed only on syslog-formatted entries, e.g. 'host/process'."
},
"message": {
"type": "string"
},
"timestamp": {
"type": [
"string",
"null"
]
},
"line_number": {
"type": "number"
}
}
},
"description": "A sample of parsed lines across the whole log (not limited to errors/warnings). Every entry carries `line_number`, `raw`, `timestamp`, `message`, and `format`. `level` was observed only on JSON-formatted entries; `pid` and `source` (process id and 'host/process' string) were observed only on syslog-formatted entries -- which fields beyond the common set appear depends on `detected_format`."
},
"warning_count": {
"type": "number",
"description": "Number of lines classified as a warning. 0 when the log has none."
},
"detected_format": {
"type": "string",
"description": "The log format the parser auto-detected, e.g. 'json' or 'syslog'. Observed values: 'json', 'syslog'; the endpoint also documents ISO, logfmt, and Laravel formats not yet observed."
}
},
"description": "The log parse result.",
"additionalProperties": true
}