Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Cratis Chronicle

OCI · DOCKER.IO/CRATIS/CHRONICLE-MCP

Inspect Cratis Chronicle event stores read-only by default; opt-in, authorized job control.

+3 this week 50 Trust /100

Last scanned (22 hours ago)

Scores higher than 78% of OCI servers

Category Databases

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency32
Schema Quality & AI Usability83
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2872 tokens (~114/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
  • Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 25 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

What we tested

Checks we ran (12)

  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Checks we could not complete (4)

These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • Malware scan in Supply Chain Security (scores 0 for this)No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  • Known CVEs in Supply Chain Security (scores 0 for this)Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
  • Install scripts in Supply Chain Security (scores 0 for this)Install-script risk not yet assessed.
  • Dependency health in Supply Chain Security (scores 0 for this)Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

  • 4 Nov 26 0
    • Security disclosure: fail → unverified ▼ functional
    • Package version: 2.0.0 → 2.1.0 functional
  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1
    • Provenance: unverified → fail ▼ security
    • Security disclosure: unverified → fail ▼ functional
  • 30 Oct 26 0
    • Provenance: fail → unverified ▼ security
    • Security disclosure: fail → unverified ▼ functional
  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed oci/docker.io/cratis/chronicle-mcp@2.1.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 25 exposed · ~2,872 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
audit_unconsumed_event_types ~129

Cross-references every registered event type against all projections, reducers, and reactors, and reports the event types that nothing consumes (data being written that no read model or reactor reads) plus the inverse: consumers that reference an event type id which no longer exists. Use as a periodic data-debt health check. Read-only introspection — grounded entirely in the store's registry and observer definitions.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
namespacestring|null–The namespace to resolve observers in. Defaults to the configured namespace.

No output schema declared.

No examples provided.

describe_event_type ~136

Describes a registered event type's real schema — every property with its JSON type and a suggested C# type — read from the store's event type registry. Use this to ground any generated projection, read model, or spec in the event's actual fields instead of guessing. Returns null when the event type is not registered.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
eventTypestringyesThe event type id/name to describe (e.g. UserRegistered).
generationinteger|null–The optional specific generation to describe. The latest generation is used when omitted.

No output schema declared.

No examples provided.

describe_system ~135

Deduces what the system in an event store is and is for. Clusters event types into entities by name, places every event in its entity's lifecycle (creation, mutation, activity, correction, termination), and maps read surfaces and automations. Use it to describe a system in domain language or to tell the story of how the system behaves — the result carries narrative guidance for doing exactly that. Read-only introspection.

NameTypeReqDescription
eventStorestring|null–The event store to describe. Defaults to the configured event store.
namespacestring|null–The namespace to resolve observers in. Defaults to the configured namespace.

No output schema declared.

No examples provided.

explain_causal_trace ~162

Reads the ordered event history for one event source together with each event's correlation id and causation chain, so an agent can narrate what happened and why instead of a support engineer reading raw JSON logs. Read-only. Follow correlation ids to relate an event to the wider flow that produced it.

NameTypeReqDescription
eventSequenceIdstring–The event sequence to read from. Defaults to event-log.
eventSourceIdstringyesThe event source id to trace (e.g. the order id).
eventStorestring|null–The event store. Defaults to the configured event store.
eventTypestring|null–An optional comma-separated event type filter.
namespacestring|null–The namespace. Defaults to the configured namespace.

No output schema declared.

No examples provided.

generate_event_catalog ~126

Produces a living data dictionary from the event store: every event type with its fields (from the registered schema) and every projection, reducer, and reactor that consumes it. Ideal onboarding material and grounding for modeling questions. Read-only introspection. Optionally scope to a single event type.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
eventTypestring|null–An optional single event type id to scope the catalog to.
namespacestring|null–The namespace to resolve observers in. Defaults to the configured namespace.

No output schema declared.

No examples provided.

get_events ~167

Retrieves events from an event sequence with optional filtering by sequence range, event source id, and event type. Returns event headers and JSON content.

NameTypeReqDescription
eventSequenceIdstring–The event sequence to read from. Defaults to event-log.
eventSourceIdstring|null–An optional event source id to filter by.
eventStorestring|null–The event store. Defaults to the configured event store.
eventTypestring|null–An optional comma-separated event type filter (e.g. UserRegistered or UserRegistered+1).
frominteger–The starting event sequence number. Defaults to 0.
namespacestring|null–The namespace. Defaults to the configured namespace.
tointeger|null–The optional ending event sequence number.

No output schema declared.

No examples provided.

get_job ~83

Gets a specific job by ID. Returns either a job descriptor with full details including status changes and progress, or a job error (NotFound).

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
jobIdstringyesThe job identifier.
namespacestring|null–The namespace. Defaults to the configured namespace.

No output schema declared.

No examples provided.

get_job_steps ~118

Gets the job steps for a specific job. Returns a collection of job step descriptors with status, progress, and metadata. Optionally filtered by step status.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
jobIdstringyesThe job identifier.
namespacestring|null–The namespace. Defaults to the configured namespace.
statusstring|null–Optional filter by job step status. Can be a comma-separated list of statuses (e.g. 'Running,CompletedSuccessfully').

No output schema declared.

No examples provided.

get_observer ~102

Shows detailed information about a specific observer including its type, running state, owner, handled sequence numbers and observed event types.

NameTypeReqDescription
eventSequenceIdstring–The event sequence to inspect. Defaults to event-log.
eventStorestring|null–The event store. Defaults to the configured event store.
namespacestring|null–The namespace. Defaults to the configured namespace.
observerIdstringyesThe identifier of the observer to show.

No output schema declared.

No examples provided.

get_patterns ~192

Gets learned behavior patterns matching a grouping key and context, in the server's authoritative order. Returns full pattern details; an action is an ordinary facet, not a separate field.

NameTypeReqDescription
contextobjectyesCurrent facet values to match. Keys and values are forwarded unchanged; an action, if present, is an ordinary facet.
eventStorestring|null–The event store. Defaults to the configured event store.
groupingKeystringyesThe grouping key used when learning the patterns.
maximumResultsinteger–Maximum result count. Non-positive values let the backend resolve its configured default. Positive values are forwarded unchanged without a local cap.
minimumConfidencenumber–Minimum confidence, normally 0 to 1. Non-positive values let the backend resolve its configured default. Forwarded unchanged without local range validation.
namespacestring|null–The namespace. Defaults to the configured namespace.

No output schema declared.

No examples provided.

get_read_model_instances ~140

Lists the current instances of a read model as JSON, with pagination. Use to inspect the projected state of entities. Fails for client-owned read models (see 'queryable' in list_read_models).

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
namespacestring|null–The namespace. Defaults to the configured namespace.
pageinteger–The 0-based page number. Defaults to 0.
pageSizeinteger–The number of items per page. Defaults to 20.
readModelstringyesThe read model container name to list instances for.

No output schema declared.

No examples provided.

get_server_version ~30

Gets version information from the connected Chronicle server. Use to verify connectivity and check the server version and commit.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_tail_sequence_number ~135

Returns the highest used sequence number (tail) in an event sequence. This is not a total count of events — gaps may exist. Use to gauge how far a sequence has progressed.

NameTypeReqDescription
eventSequenceIdstring–The event sequence to inspect. Defaults to event-log.
eventSourceIdstring|null–An optional event source id to filter by.
eventStorestring|null–The event store. Defaults to the configured event store.
eventTypestring|null–An optional comma-separated event type filter.
namespacestring|null–The namespace. Defaults to the configured namespace.

No output schema declared.

No examples provided.

list_event_stores ~28

Lists all event stores registered on the Chronicle server. Use to discover valid event store names.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_event_types ~60

Lists all registered event types in an event store, including their id, generation, owner and source. Use to explore the domain schema.

NameTypeReqDescription
eventStorestring|null–The event store to get event types from. Defaults to the configured event store.

No output schema declared.

No examples provided.

list_failed_partitions ~92

Lists observer partitions that have failed and are paused, including the failure reason and the sequence number where the failure occurred. Use to discover what needs investigation or recovery.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
namespacestring|null–The namespace. Defaults to the configured namespace.
observerIdstring|null–Optional observer identifier to filter by.

No output schema declared.

No examples provided.

list_jobs ~100

Lists all jobs in a namespace, optionally filtered by status. Returns a collection of job descriptors with status, progress, and metadata.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
namespacestring|null–The namespace. Defaults to the configured namespace.
statusstring|null–Optional filter by job status. Can be a comma-separated list of statuses (e.g. 'Running,PreparingJob').

No output schema declared.

No examples provided.

list_namespaces ~47

Lists all namespaces within an event store. Use to discover valid namespace names.

NameTypeReqDescription
eventStorestring|null–The event store to list namespaces for. Defaults to the configured event store.

No output schema declared.

No examples provided.

list_observers ~94

Lists observers (projections, reactors, reducers, client observers) in a namespace, with health and replay status. Optionally filter by type.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
namespacestring|null–The namespace. Defaults to the configured namespace.
typestring–Observer type filter: reactor, reducer, projection, or all (default).

No output schema declared.

No examples provided.

list_projections ~56

Lists all projection definitions registered in an event store, including the read model they project into and their activity state. Use to audit registered projections.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.

No output schema declared.

No examples provided.

list_read_models ~72

Lists all read model definitions registered in an event store. The 'queryable' field is false for client-owned read models whose state is stored by the client application rather than the Chronicle server; querying their instances will fail.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.

No output schema declared.

No examples provided.

list_recommendations ~70

Lists active recommendations from the Chronicle server. Recommendations are automated suggestions for maintenance tasks such as rerunning projections or handling schema migrations.

NameTypeReqDescription
eventStorestring|null–The event store. Defaults to the configured event store.
namespacestring|null–The namespace. Defaults to the configured namespace.

No output schema declared.

No examples provided.

run_ad_hoc_projection ~251

Answers ad-hoc queries by projecting events on demand: reads the given event types from the store and folds them into per-event-source instances with AutoMap semantics (later events overwrite earlier property values; removedWith event types drop the instance). Nothing is registered or written. First resolve which event types are involved (describe_system or generate_event_catalog), then call this with them. Use it for natural-language questions like 'show all employees with all details'.

NameTypeReqDescription
eventSequenceIdstring–The event sequence to read from. Defaults to event-log.
eventSourceIdstring|null–An optional event source id to scope to a single instance.
eventStorestring|null–The event store. Defaults to the configured event store.
eventTypesstringyesComma-separated event type ids to fold (e.g. EmployeeHired,EmployeeMoved,EmployeePromoted).
limitinteger–The maximum number of instances to return. Defaults to 100.
namespacestring|null–The namespace. Defaults to the configured namespace.
removedWithstring|null–Optional comma-separated event type ids that remove an instance (e.g. EmployeeTerminated).

No output schema declared.

No examples provided.

scaffold_read_model ~207

Generates a reviewable read model + model-bound projection from one or more event types, grounded in the events' real schema (field names and types come from the store, never guesses). Resolve the event types from the user's request first — with list_event_types, describe_event_type, or generate_event_catalog — then pass them here. Surfaces existing projections that already read these events so a duplicate is not created. When none of the requested event types are registered it returns no code and says so rather than fabricating a shape.

NameTypeReqDescription
codeNamespacestring–The C# namespace to generate the read model into. Defaults to ReadModels.
eventStorestring|null–The event store. Defaults to the configured event store.
eventTypesstringyesA comma-separated list of event type ids to project from (e.g. UserRegistered,UserEmailVerified).
readModelNamestringyesThe name of the read model to generate (e.g. Users).

No output schema declared.

No examples provided.

suggest_next_event_types ~140

Suggests event types to introduce next for the system in an event store. Deduces entities and lifecycles from the registered event type names and schemas, then finds concrete gaps: entities without an explicit creation event, lifecycles with no termination, and creation-time properties no event can ever change. Each suggestion carries the gap it closes and candidate properties from the existing schema. Read-only introspection; refine the results with domain knowledge.

NameTypeReqDescription
entitystring|null–An optional entity name to scope the suggestions to (case-insensitive).
eventStorestring|null–The event store to analyze. Defaults to the configured event store.

No output schema declared.

No examples provided.

Install

How do I install the Cratis Chronicle MCP server?

Cratis Chronicle runs locally as a container image, launched with docker run --rm -i -e Cratis__Chronicle__Mcp__Profile -e Cratis__Chronicle__Mcp__ConnectionString -e Cratis__Chronicle__Mcp__ClientId -e Cratis__Chronicle__Mcp__ClientSecret -e Cratis__Chronicle__Mcp__ApiKey -e Cratis__Chronicle__Mcp__EventStore -e Cratis__Chronicle__Mcp__Namespace docker.io/cratis/chronicle-mcp:2.1.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · docker.io/cratis/chronicle-mcp

# add to Claude Code
claude mcp add cratis-chronicle-mcp -- docker run --rm -i -e Cratis__Chronicle__Mcp__Profile -e Cratis__Chronicle__Mcp__ConnectionString -e Cratis__Chronicle__Mcp__ClientId -e Cratis__Chronicle__Mcp__ClientSecret -e Cratis__Chronicle__Mcp__ApiKey -e Cratis__Chronicle__Mcp__EventStore -e Cratis__Chronicle__Mcp__Namespace docker.io/cratis/chronicle-mcp:2.1.0

This image reads Cratis__Chronicle__Mcp__Profile, Cratis__Chronicle__Mcp__ConnectionString, Cratis__Chronicle__Mcp__ClientId, Cratis__Chronicle__Mcp__ClientSecret, Cratis__Chronicle__Mcp__ApiKey, Cratis__Chronicle__Mcp__EventStore and Cratis__Chronicle__Mcp__Namespace. Set them in your client's env block for this server; docker run -e passes each one through to the container.

Common questions

What is the Cratis Chronicle MCP server?

Cratis Chronicle is an MCP server listed in the public MCP registry as io.github.Cratis/chronicle-mcp. Inspect Cratis Chronicle event stores read-only by default; opt-in, authorized job control. This page covers its container image (docker.io/cratis/chronicle-mcp).

Is the Cratis Chronicle MCP server safe to use?

Cratis Chronicle scores 50 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Cratis Chronicle MCP server expose?

Cratis Chronicle exposes 25 tools: list_event_stores, list_namespaces, get_events, get_tail_sequence_number, list_event_types, and 20 more. Their descriptions and schemas cost roughly 2,872 tokens of context every time the server is loaded.

Is the Cratis Chronicle MCP server still maintained?

Cratis Chronicle is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What did VerifyMCP test on the Cratis Chronicle MCP server?

VerifyMCP ran 12 checks on Cratis Chronicle, covering Source repository, Provenance, License, Maintenance and 8 more. 4 items could not be completed, a gap on our side rather than a finding about Cratis Chronicle: Malware scan, Known CVEs, Install scripts and Dependency health. One category scores 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to a container image, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.