Skip to main content
Glama
OpenCDR MCP

OpenCDR MCP

Official
by dbnz-io

OpenCDR MCP

The durable detection feed tool reads signals and correlated alerts from IAM-enabled Core 2.1 management contracts, directly or through a selected Fleet agent. It does not acknowledge or centrally index them.

opencdr-mcp exposes the OpenCDR management API as tools for MCP-compatible clients. It is an optional client integration: OpenCDR Core detects and responds to events without this package.

The server uses stdio transport. It connects directly to one Core agent, or to an optional Fleet Manager for multiple accounts. It requires no Core or Fleet Manager source checkout.

Version 0.3.0 adds direct Core IAM connections, scoped Fleet management, revision-guarded changes and reviewed durable rollouts. Start with the IAM connection guide for the new management model. It requires a Core release advertising the IAM management capabilities and Fleet Manager 0.2.0+. Older API-key connections remain a migration option.

Install

pip install opencdr-mcp

For isolated command-line installation, pipx is also supported:

pipx install opencdr-mcp

Related MCP server: Technitium DNS MCP

Connect through Fleet Manager

Fleet mode is available in OpenCDR MCP 0.2.0+. It uses IAM/SigV4 with a local AWS profile. The MCP stores no AWS access keys or Core API keys for this mode. Core remains authoritative for each agent's configuration and response execution.

Reuse an OpenCDR Deploy connection

First connect the deployed manager with OpenCDR Deploy 0.6.0+:

aws sso login --profile security-admin
opencdr-deploy fleet connect security-prod \
  --url https://FLEET_API_ID.execute-api.us-east-1.amazonaws.com/prod \
  --profile security-admin --security-account-id 111111111111 \
  --region us-east-1 --stage prod

Replace the URL and account ID with your CloudFormation outputs. Then configure your MCP server to use that saved manager:

export OPENCDR_CONNECTION_MODE=fleet
export OPENCDR_FLEET_NAME=security-prod
export OPENCDR_MCP_PROFILE=observer
opencdr-mcp

The MCP reads only the chosen fleet entry from ~/.config/opencdr/deployments.json. Set OPENCDR_DEPLOY_REGISTRY if you used a custom CLI registry. The CLI package is not needed at MCP runtime. For a restricted MCP identity, set OPENCDR_FLEET_AWS_PROFILE to your dedicated reader/operator AWS profile instead of inheriting the administrative deployment profile. AWS IAM and Core's management permissions enforce access; MCP profiles reduce tool exposure.

Claude Code example:

claude mcp add opencdr-fleet \
  --env OPENCDR_CONNECTION_MODE=fleet \
  --env OPENCDR_FLEET_NAME=security-prod \
  --env OPENCDR_MCP_PROFILE=observer \
  -- opencdr-mcp

One MCP server process connects to one fleet. Add another MCP entry with a different fleet name for another security account. Each tool invocation selects its Core agent explicitly; there is no process-wide mutable selected agent.

Configure a fleet without the CLI registry

Save this JSON as your OPENCDR_CONFIG_FILE (or the default MCP configuration):

{
  "mode": "fleet",
  "fleet": {
    "url": "https://FLEET_API_ID.execute-api.us-east-1.amazonaws.com/prod",
    "aws_profile": "fleet-reader",
    "security_account_id": "111111111111",
    "region": "us-east-1",
    "stage": "prod"
  }
}

The URL must be the regional AWS execute-api URL, including its stage. Custom manager domains and other AWS partitions are not currently supported. Environment overrides are OPENCDR_FLEET_URL, OPENCDR_FLEET_AWS_PROFILE, OPENCDR_FLEET_ACCOUNT_ID, OPENCDR_FLEET_REGION, and OPENCDR_FLEET_STAGE. OPENCDR_CONNECTION_MODE overrides the configuration mode. Restart the MCP server after changing its connection mode or capability profile.

In fleet mode, ambient OPENCDR_API_URL / OPENCDR_API_KEY values are ignored. Manager identity and fleet contract are checked before requests. A missing agent, invalid identity, unavailable manager or rejected IAM request fails the operation; the MCP never falls back to a direct Core connection.

Choose an agent in each Core tool call

  1. Call opencdr_fleet_status to verify the manager connection.

  2. Call opencdr_fleet_agents_list; follow next_token for every account.

  3. Use the returned agent_id in any existing Core tool. Examples:

{"tool": "opencdr_rules_list", "arguments": {"agent_id": "member-prod", "kind": "signal"}}
{"tool": "opencdr_settings_get", "arguments": {"agent_id": "member-prod", "setting_id": "global"}}

Every existing Core tool accepts agent_id: rules, lists, signals, logs, notifications, integrations/jobs, responder roles and response actions. It is required in fleet mode and must be omitted for direct Core mode. Different concurrent calls keep their own agent identity and credentials.

Fleet tools and profiles

Profile

Fleet capabilities, in addition to its Core tools

triage

Read tools plus detection handling and operational case updates; no configuration or response operations

observer

Manager status, paginated agent inventory, individual agent state, cached configuration, explicit GET fan-out

operator

Observer fleet reads plus queueing a fresh poll

responder

Operator fleet operations and existing Core IR-role/rollback tools

administrator

Responder plus registration/update, enable/disable, explicit multi-agent writes and full manager API requests

administrator is opt-in and never the default. Registry changes and multi-agent writes carry destructive/security-sensitive MCP annotations. The backend still requires the corresponding IAM permissions, allow_writes and a scoped Core operator credential. A client-side profile does not grant AWS permissions.

Fleet-specific tools:

  • opencdr_fleet_status, opencdr_fleet_agents_list, opencdr_fleet_agent_get.

  • opencdr_fleet_configuration_get: paginated cached configuration, retaining snapshot generation, coverage and stale flags. It is an observation, not live Core state. Registered-ID coverage limits still apply.

  • opencdr_fleet_agent_refresh: queues a poll; inspect timestamps afterwards.

  • opencdr_fleet_agent_register, opencdr_fleet_agent_update: reviewed registration objects. Updates require expected_rev; no conflict rebasing/retries.

  • opencdr_fleet_agent_enable, opencdr_fleet_agent_disable: explicit registration revision guards. Disabling retains state and does not revoke API keys.

  • opencdr_fleet_read, opencdr_fleet_invoke: explicit fan-out to 1–8 agents. Multi-agent results are non-atomic. Inspect each target's status, omitted body, error and unknown outcome. all_requests_accepted reports HTTP acceptance, not evaluator activation; partial_failure prevents treating HTTP 207 as success.

  • opencdr_fleet_request: administrator-only complete Fleet Manager API access.

Agent credentials are prepared outside the MCP with opencdr-deploy fleet agents register --core-profile ..., fleet agents bootstrap or hidden-input fleet agents credentials. MCP registration tools accept no API keys. Infrastructure deployment, reviewed artifacts and retained-table recovery use OpenCDR Deploy's fleet commands.

No forwarded writes are automatically retried. In fleet mode, list/settings merge tools also return conflicts directly instead of rebasing a write. Inspect Core state before retrying an uncertain response action or partial release. The manager verifies live Core identity before forwarding; cached fleet health is not used as write authorization.

Configure direct Core access

Set the deployed API endpoint and a scoped API key:

export OPENCDR_API_URL="https://example.execute-api.us-east-2.amazonaws.com/dev"
export OPENCDR_API_KEY="..."
export OPENCDR_MCP_PROFILE="observer"

Environment variables take precedence over the optional JSON configuration file at ~/.config/opencdr/mcp.json:

{
  "url": "https://example.execute-api.us-east-2.amazonaws.com/dev",
  "key": "..."
}

Set OPENCDR_CONFIG_FILE to use another file. Protect configuration files that contain API keys with owner-only permissions.

OpenCDR deployments store a dedicated MCP key in SSM at /opencdr-<stage>/api-key-mcp and the endpoint at /opencdr-<stage>/api-url. Consult the OpenCDR Core deployment documentation for retrieval and key-rotation instructions.

Register

Claude Code example:

claude mcp add opencdr \
  --env OPENCDR_API_URL="$OPENCDR_API_URL" \
  --env OPENCDR_API_KEY="$OPENCDR_API_KEY" \
  --env OPENCDR_MCP_PROFILE=observer \
  -- opencdr-mcp

The command can also be started directly:

opencdr-mcp

Capability profiles

Profile

Exposed operations

triage

Read tools plus status/disposition/assignment/manual SIEM-reference edits with revision and request guards

observer

Read status, rules, lists, signals, logs, settings, integrations, IR roles and IR actions

operator

Observer operations plus rule/list, integration and settings changes

responder

Operator operations plus IR-role changes and IR-action rollback

administrator

Responder operations plus fleet registry/admin tools when fleet mode is active

observer is the default. Profiles only reduce which tools an MCP client can discover; they are not the authorization boundary. The OpenCDR API enforces the key scopes in direct mode. In fleet mode, Fleet Manager IAM and the scoped Core keys enforce access. Pair each profile with the least permissions its work needs.

Tool groups

  • Deployment status

  • Detection and correlation rules

  • Core rule schema, candidate validation and side-effect-free fixture evaluation

  • Rule release planning/application, runtime activation status and rule metrics

  • Reusable lists

  • Signals and operational logs

  • Ingestion integrations

  • Paginated ingestion jobs and analysis-only job replay

  • Notification settings

  • Incident-response roles and action rollback

Mutating operations include MCP safety annotations and use OpenCDR's optimistic concurrency controls where the API supports them.

Core is authoritative for validation, configuration revisions and execution results. Validation/evaluation and release planning do not change deployed rules, but require the Core rules scope and the operator, responder or administrator profile. Release application can disable or delete managed rules; inspect its plan first. Core recomputes the release diff at apply time, so a prior plan is not a frozen approval token. A partial conflict can follow completed writes; the tool error preserves Core's completion details and does not retry automatically. After an accepted release, use opencdr_rules_runtime_status until Core reports verified.

List metadata and ingestion-job lists accept next_token; continue while Core returns a cursor. Replay queues a new analysis run on every call: acceptance is not completion, and an ambiguous response must not be retried blindly. IR-role updates accept expected_rev; when omitted, the tool reads a revision once and guards its write without retrying a conflict.

This package manages agents through the Core API, directly or through the optional Fleet Manager connection. Platform-owned incident cases, assignments, triage and approvals are outside that contract. Direct AWS provisioning and recovery use OpenCDR Deploy. Capability profiles reduce tools, not backend authorization or a customer's independent direct access.

Development

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
ruff check .
pytest
python -m build
python -m twine check dist/*

Releases

GitHub releases publish to PyPI through trusted publishing. The release tag must exactly match v<project.version>, for example v0.2.0. The pypi GitHub environment and the PyPI trusted publisher must be configured before publishing the first release; no long-lived PyPI token is stored in GitHub.

License

Mozilla Public License 2.0. See LICENSE.

Retained detections and reviewed recovery (local source)

opencdr_detection_backfill_status reads a job or pages its outcomes. opencdr_detection_backfill_update plans or advances a bounded import and requires an administrator profile plus Core administrator access (including the selected agent's write permission in Fleet mode). It preserves source IDs and does not re-evaluate detections or replay external effects. Retained-source scans do not prove complete history.

For direct delivery consumers, opencdr_detection_consumer_reconcile requires a completed job/digest, current revision, reason, unique request ID and explicit accept_unrecoverable=true; consumer status supports audit=true pagination. Fleet operators instead use administrator-only opencdr_fleet_detection_reconcile with exact checkpoint generation and registration revision. The original worker performs recovery; acceptance is not completion. Inspect Fleet detection status. See the workspace Core docs/detection-backfill.md procedure. These operations are not yet published or live-accepted; replacement-role and combined recovery remain unfinished.

Detection handling and triage access: see operator notes.

Operational cases (P2 candidate)

The local candidate adds shared operational cases: Core owns standalone cases, Fleet owns multi-account cases. Read capabilities.operational_cases == "1.0.0" before using /cases (Core) or /v1/cases (Fleet). Create, edit, notes, verified attachments, retained evidence, close/reopen and immutable history use IAM, revision checks and stable request IDs. Cases track SIEM work; they do not run investigations or change detection handling. Fleet requires explicit principal account grants, even for administrators, and never fans out case reads to Core.

Use the owner deployment/test and KPI guide for grants, Deploy commands, limits, failure scenarios and remaining live/retention/migration gates. This candidate is locally tested; it has not been deployed or publicly promoted.

New tools: opencdr_cases_list and opencdr_case_read are read-only; opencdr_case_mutate requires the triage profile or higher. opencdr_fleet_case_access requires Fleet administrator authority. These case tools use the configured case owner directly in both modes. They do not accept a member proxy selector; attachment payloads identify their source agent explicitly.

P2 case and execution additions (candidate)

  • opencdr_case_active: read the accessible active case for a detection and full selected account scope. Fleet stays the case authority.

  • opencdr_case_integration: administrator-only trust binding/read for a dedicated connector role. This does not fetch vendor status or impersonate a connector.

  • opencdr_response_outcomes: bounded response/rollback observations and immutable attempt history; in Fleet mode it forwards only to the selected Core.

Connector reports use Deploy with dedicated integration IAM access, not human MCP profiles. Outcomes can be unknown or partially failed; they do not authorize replay. New workers preserve original dry-run mode and block legacy rollback records whose original mode is unknown. See the coordinated Core guide docs/case-connectors-and-outcomes.md before upgrading workers.

Engine content library (P3 local candidate)

opencdr_library_read reads items, versions, verified stored artifacts, history and frozen snapshots. opencdr_library_write creates items, changes metadata or archive state, saves immutable versions and freezes declared dependency pins. The read tool is available to observers; writing requires the rules/operator capability. Core requires IAM and content_library: 1.0.0. In Fleet mode these are central owner operations without an agent selector or member-Core fallback.

Every write needs a stable request ID and reason; item updates/version saves also require the current revision. Unknown outcomes must be retried unchanged. Saved versions are unvalidated; import metadata is caller-declared. These tools never fetch Git, approve, deploy or execute rules. See the coordinated library manual. Hosted SaaS MCP and assistant migration remain separate roadmap work.

P4–P6 local candidate (2026-11-11)

Owner review registry/inbox/decisions and owner-local routing previews are now implemented locally. Fleet also negotiates complete saved-profile/binding inventory with compatible Core agents. These changes are undeployed and are not approval-enforced jobs or automatic case routing. See the coordinated implementation and CLI guide for capabilities, limits, evidence and remaining acceptance gates.

Available Tools

38 tools
opencdr_case_activeB
Read-onlyIdempotent

Find the accessible active case for one detection in a complete account scope.

Fleet reads its own index without contacting a member Core. A 404 does not prove global absence: the case can include accounts outside your grants/scope.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: agent_id (required), agent_ids (required), detection_id (required).

opencdr_case_extensionsC
Read-onlyIdempotent

Read 20 case-owned indicators or historical provider-results.

Uses Fleet authority directly in fleet mode; never executes a lookup.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: kind (required), case_id (required), after.

opencdr_case_readA
Read-onlyIdempotent

Read a case, immutable history, retained evidence, or the signer's account access.

view is case, history, evidence, or access. Status labels track work in a SIEM; they do not execute an investigation or change detection handling.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: view, after, limit, case_id, +1 more.

opencdr_cases_listB
Read-onlyIdempotent

List operational cases from the configured authority. Scope must include every case account.

Counts apply to this page. Continue even an empty page when next_cursor is set. Fleet requires explicit server-side principal grants; a filter never grants access.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: limit, cursor, status, agent_ids.

opencdr_configuration_flagsB
Read-onlyIdempotent

Read owner runtime flag types/permissions and the separate Deploy application mechanism.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: no named parameters.

opencdr_configuration_ownershipB
Read-onlyIdempotent

Read Core local/central bindings; reviewed owner-admin changes transfer control.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: agent_id.

opencdr_detection_backfill_statusC
Read-onlyIdempotent

Inspect a backfill plan/progress or bounded outcomes and skipped-source findings.

A completed retained-source scan does not prove complete history. Use results and next_after to review invalid, expired or conflicting source records.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: job_id (required), after, limit, results, +1 more.

opencdr_detection_consumer_statusA
Read-onlyIdempotent

Read this IAM principal's consumer receipt and lag without acknowledging.

Requires direct Core IAM delivery access. Fleet mode owns its worker receipts; inspect Fleet agent detection status instead. Names never select another owner.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: consumer_id (required), after, audit, limit, +1 more.

opencdr_detection_detailA
Read-onlyIdempotent

Fetch exact retained detection evidence. Fleet requires an explicit agent ID.

No live member request is used in Fleet mode. Missing/expired evidence and integrity failures remain errors; they are never treated as an empty finding.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: detection_id (required), agent_id.

opencdr_detection_handlingB
Read-onlyIdempotent

Read Core-owned handling or immutable audit history via the configured owner.

Unlike indexed browsing, Fleet forwards this selected-record request to its Core. SIEM references are manual and unverified; investigation remains in the SIEM.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: detection_id (required), after, limit, history, +1 more.

opencdr_detection_handoff_statusB
Read-onlyIdempotent

Read a reviewed consumer handoff plan or permanent acceptance receipt.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: handoff_id (required), agent_id.

opencdr_detection_recovery_statusB
Read-onlyIdempotent

Inspect physical feed identity/digest, or a saved rotation plan/receipt.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: agent_id, recovery_id.

opencdr_detections_feedA
Read-onlyIdempotent

Read a bounded page of signals and correlated alerts in durable commit order.

Requires an IAM Core connection advertising detection_feed 1.x. In Fleet mode select one agent_id; this forwards a read, not a fleet-wide central search. Reading does not acknowledge delivery. Retention gaps are returned as errors; never silently reset a cursor. start=latest deliberately skips retained records and cannot be combined with a cursor.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: limit, start, cursor, agent_id.

opencdr_detections_queryA
Read-onlyIdempotent

Query indexed signals/correlations, or bounded counts, in the configured owner.

Fleet mode reads Fleet's central index without live member fanout. Core mode reads the selected Core. Inclusive dates filter Core commit time, max 90 days. Cursors bind the filters and expire after one hour. Empty pages may have more results; inspect next_token, coverage and (for summaries) complete. A summary with complete=false is a lower bound, never a proven fleet total. No ACK/write.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: kind, limit, source, status, +11 more.

opencdr_integrations_getA
Read-onlyIdempotent

Read a parser catalog, binding or ingestion jobs, with job-list pagination.

The catalog does not enumerate saved bindings. Pass an integration_id to read a known binding, jobs=True for its job list, and job_id for diagnostics.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: jobs, job_id, agent_id, next_token, +1 more.

opencdr_ir_actions_getA
Read-onlyIdempotent

Get a specific executed IR action. Read-only.

Includes rollback_supported and, once a rollback has been attempted, rollback_status ("pending"/"succeeded"/"failed"), rollback_error (set only on failure), and rollback_updated_at. rolled_back mirrors rollback_status == "succeeded" for back-compat; absent rollback_status means no rollback has been attempted yet.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: detection_id (required), agent_id.

opencdr_ir_actions_listB
Read-onlyIdempotent

List executed, rollback-eligible IR actions. Read-only.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: agent_id, page_size, next_token.

opencdr_ir_roles_getA
Read-onlyIdempotent

Get the IR role mapping for a 12-digit AWS account id. Read-only.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: aws_account_id (required), agent_id.

opencdr_ir_roles_listA
Read-onlyIdempotent

List IR role mappings (which IAM role responder assumes per AWS account). Read-only.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: agent_id, page_size, next_token.

opencdr_library_evidenceA
Read-onlyIdempotent

Read retained tests, compilations or legacy mappings and their freshness.

Use views tests (content_id), compilations or mappings (release_id). Omit record_id for a bounded page; select a record to read its exact artifact. Historical passes never imply the latest content, current evaluator or runtime acceptance.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: view (required), owner_id (required), after, limit, +1 more.

opencdr_library_readA
Read-onlyIdempotent

Read owner-wide drafts, immutable versions/history, or frozen release snapshots.

Views: items, item, versions, version, artifact, history, releases, release, manifest. Saved/frozen content is not validated, approved or active runtime content. Pagination uses next_after; versions/history are in ascending numeric order.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: view, after, limit, version, +2 more.

opencdr_library_runtime_sourceB
Read-onlyIdempotent

Preview a verified Core-local or fresh scoped Fleet snapshot for runtime import.

Returns the exact source document, canonical hash and observation time. This is read-only; pass the returned hash/revision in a separate runtime_import command.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: content_id (required), source_revision (required), source_deployment (required).

opencdr_lists_listA
Read-onlyIdempotent

Read one page of list metadata. Pass next_token to continue.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: agent_id, page_size, next_token.

opencdr_lists_showA
Read-onlyIdempotent

Show a list's values. Read-only.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: list_id (required), agent_id.

opencdr_response_outcomesA
Read-onlyIdempotent

Read retained response/rollback observations or one attempt's immutable history.

Fleet forwards only this selected Core read. No historical backfill. Failed can include partial effects; unknown requires reconciliation before replay. after is the previous next_after; limit is 1..50. No mutation or replay occurs.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: detection_id (required), after, limit, agent_id, +1 more.

opencdr_review_executionC
Read-onlyIdempotent

Read the durable Core receipt or freshly compare stored/effective state.

Standalone Core only; Fleet uses reviewed distribution jobs.

Inputs: approval_id (required), verify.

opencdr_reviews_readB
Read-onlyIdempotent

Read the owner-scoped approval inbox or one exact review and its binding.

Current owner grants filter results. Follow next_after even for an empty page. A registry decision does not execute a mutation or authorize a queued job.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: after, limit, approval_id.

opencdr_routing_activationB
Read-onlyIdempotent

Read retained owner routing activation, expiry and feed connection status.

In fleet mode this tool uses the Fleet authority directly; Core mode uses standalone Core.

Inputs: approval_id (required).

opencdr_rules_getA
Read-onlyIdempotent

Get a rule by id. Read-only. kind must be "signal" or "correlation".

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: kind (required), rule_id (required), agent_id.

opencdr_rules_listA
Read-onlyIdempotent

List detection/correlation rules. Read-only.

kind: "signal" or "correlation" (omit for both; detection lists use opencdr_lists_list). Paginated: pass the returned next_token to continue.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: kind, agent_id, page_size, next_token.

opencdr_rules_metricsB
Read-onlyIdempotent

Read Core's rule/release aggregates. Preserve and inspect partial results.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: date_to, rule_id, agent_id, date_from, +2 more.

opencdr_rules_runtime_statusA
Read-onlyIdempotent

Read stored and evaluator-observed generations. Only verified means active.

An accepted write can still be propagating; do not infer activation from a successful upsert or release application.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: agent_id.

opencdr_rules_schemaA
Read-onlyIdempotent

Read this agent's rule contract, operators, bounds and response target keys.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: agent_id.

opencdr_settings_getA
Read-onlyIdempotent

Get an OpenCDR settings document by id (default: global). Read-only.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: agent_id, setting_id.

opencdr_signals_statsA
Read-onlyIdempotent

Signal counts by severity for a date range. Read-only.

A dashboard/summary view, not a substitute for opencdr_signals_search's paginated item listing. Defaults to the last 7 days if neither date is given (YYYY-MM-DD, UTC, inclusive; max range 31 days -- the same date-range bound the severity selector of opencdr_signals_search uses). Returns {date_from, date_to, counts: {: , ...}, total}.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: date_to, agent_id, date_from.

opencdr_statusA
Read-onlyIdempotent

Check OpenCDR API health. Read-only.

In fleet mode, supply agent_id explicitly. Core mode leaves agent_id unset.

Inputs: agent_id.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 38 tools

    Disambiguation2/5

    The detection/signal family is heavily overlapping: detections_feed, detections_query, detection_detail, signals_search, and signals_stats all read variations of signal/correlation data, and the descriptions spend most of their text trying to carve out subtle distinctions (indexed vs feed vs exact evidence). Similarly review_execution vs reviews_read, and the five status tools (consumer/recovery/handoff/backfill/feed) are hard to tell apart without deep domain knowledge. An agent would frequently misselect within these clusters.

    Naming Consistency3/5

    Everything shares the opencdr_ prefix, but the remainder mixes domain_action patterns (rules_list, signals_search, lists_show) with domain_property/domain_noun patterns (detection_handling, configuration_flags, review_execution, response_outcomes, routing_activation). Singular/plural is also inconsistent (cases_list vs case_read, detections_query vs detection_detail), which prevents a fully predictable scheme.

    Tool Count2/5

    38 tools is well above the 15-tool comfort zone and the scope is sprawling, spanning rules, lists, detections, signals, logs, cases, library, reviews, routing, integrations, settings and IR. Many of the 38 are narrow status/read variants that could be consolidated into parameterized tools.

    Completeness3/5

    Read coverage across the domain is broad (rules, cases, signals, logs, cases, IR roles/actions), but essentially every tool is read-only and many descriptions reference mutations handled elsewhere (runtime_import, review queue, upserts, rollback, ACK), leaving dead ends for any write workflow. The surface is a wide inspection layer rather than a complete lifecycle.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables MCP-capable clients to inspect and manage Keycloak realms, users, clients, roles, and groups with layered security modes, realm allowlisting, protected realms, delete gating, dry-run, and audit logging.
      8
      71 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables managing and observing Technitium DNS Server through MCP, including read-only or read-write tool surfaces, scoped bearer authentication, audit logging, and confirmation gates for destructive operations.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables MCP clients such as editors to start and monitor missions, run the self-healing demo, list departments and blueprints, and approve tasks through the backend API. It also lets trusted departments discover and invoke explicitly granted external stdio or Streamable HTTP tools.
      1
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables users to aggregate, discover, and route remote MCP tools through a unified endpoint, with category-based access tokens, OAuth authorization, and admin management/analytics for self-hosted infrastructure.
      -