Skip to main content
Glama
dbnz-io

OpenCDR MCP

Official
by dbnz-io

opencdr_logs_search

Read-onlyIdempotent

Search read-only audit and CloudTrail logs by service, event ID, or event name, with date-range filtering for service queries and pagination for result sets.

Instructions

Search audit/CloudTrail logs. Read-only.

Provide exactly ONE selector: service, event_id, or event_name (the backend serves each from a dedicated index and cannot AND-combine them). date_from/date_to (YYYY-MM-DD, UTC, inclusive, max 31-day range) apply ONLY to the service selector and default to the last 7 days; they are ignored for event_id/event_name. Paginated via next_token.

Correlating by source_ip / principal / access_key_id / user_agent / resource / account is not yet supported by the backend -- use event_id to pivot on a specific event.

Input Schema

NameRequiredDescriptionDefault
limitNo
orderNodesc
date_toNo
serviceNo
event_idNo
date_fromNo
event_nameNo
next_tokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the readOnlyHint/idempotentHint annotations by disclosing a backend constraint (dedicated indexes, no AND-combination), a hard range cap (max 31-day), default lookback (7 days), pagination via next_token, and a list of unsupported correlation fields. These are behavioral facts the agent could not obtain from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose in the first line, then in three short paragraphs covers selector rules, date caveats, pagination, and unsupported paths. Dense but every sentence carries operational information; nothing is redundant with the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter search tool with no output schema and no schema descriptions, the description covers the decision-critical semantics: mutual exclusivity, date scoping, defaults, and pagination. Remaining gaps — result shape, limit bounds, and ordering field — are minor but would help an agent tune queries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage the description must carry the load, and it does for service, event_id, event_name, date_from/date_to (YYYY-MM-DD, UTC, inclusive, conditional applicability) and next_token. It leaves limit and order unexplained — no max limit and no statement of which field order sorts on — so two of eight parameters remain semantically opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search audit/CloudTrail logs') and immediately flags it as read-only. It does not, however, name opencdr_signals_search or any other sibling, so an agent must infer that this tool covers audit/CloudTrail events rather than detection signals from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly requires exactly ONE selector and names the three valid choices (service, event_id, event_name). It further states when date filters apply (service only, ignored otherwise), what their defaults are, and redirects unsupported correlation attempts to event_id — a clear use/do-not-use contract.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.