{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T05:54:49.282Z","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp","markdownUrl":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp.md","server":{"slug":"cratis-chronicle-mcp","name":"Cratis Chronicle","registryName":"io.github.Cratis/chronicle-mcp","description":"Inspect Cratis Chronicle event stores read-only by default; opt-in, authorized job control.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"docker-io-cratis-chronicle-mcp","type":"oci","identifier":"docker.io/cratis/chronicle-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp","version":"2.1.0","transport":"stdio","scoredAt":"2026-11-05T06:13:01.334Z"},"score":{"total":50,"tier":"low","status":"scored","weekDelta":3,"history":[{"date":"2026-11-05","total":50},{"date":"2026-11-04","total":49},{"date":"2026-11-03","total":49},{"date":"2026-11-02","total":48},{"date":"2026-11-01","total":48},{"date":"2026-10-31","total":48},{"date":"2026-10-30","total":47},{"date":"2026-10-29","total":47},{"date":"2026-10-28","total":46},{"date":"2026-10-27","total":46},{"date":"2026-10-26","total":45},{"date":"2026-10-25","total":45},{"date":"2026-10-24","total":44},{"date":"2026-10-23","total":44},{"date":"2026-10-22","total":43},{"date":"2026-10-21","total":43},{"date":"2026-10-20","total":42},{"date":"2026-10-19","total":42},{"date":"2026-10-18","total":41},{"date":"2026-10-17","total":41},{"date":"2026-10-16","total":40},{"date":"2026-10-15","total":40},{"date":"2026-10-14","total":40},{"date":"2026-10-13","total":6},{"date":"2026-10-12","total":6},{"date":"2026-10-11","total":6}]},"categories":[{"name":"Supply Chain Security","score":0,"verdict":"unverified","reasons":["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 could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"ecosystem_unsupported"}},{"code":"cve.inconclusive","args":{"reason":"no_sbom_attached"}},{"code":"installscript.inconclusive","args":{"reason":"no_install_concept"}},{"code":"dephealth.inconclusive","args":{"reason":"no_sbom_attached"}}]},{"name":"Provenance & Transparency","score":32,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","License check failed: no license is declared.","Actively maintained (last published 1 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.absent","args":{}},{"code":"maintenance.recent","args":{"age_days":"1"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":83,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","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.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"114","items":"25","tools":"25","tokens":"2872","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":73,"verdict":"partial","reasons":["Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"22"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 25 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"25"}},{"code":"toolsafety.manipulation_clean","args":{"units":"25","judged":"25"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["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 could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"malware":[],"components":[{"slug":"docker-io-cratis-chronicle-mcp","type":"oci","identifier":"docker.io/cratis/chronicle-mcp","withdrawn":false,"score":50,"current":true,"url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp","markdownUrl":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp.md"}],"facts":[{"label":"Registry","value":"oci"},{"label":"Package","value":"docker.io/cratis/chronicle-mcp"},{"label":"Version","value":"2.1.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"list_event_stores","title":null,"description":"Lists all event stores registered on the Chronicle server. Use to discover valid event store names.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":28},{"name":"list_namespaces","title":null,"description":"Lists all namespaces within an event store. Use to discover valid namespace names.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store to list namespaces for. Defaults to the configured event store."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"get_events","title":null,"description":"Retrieves events from an event sequence with optional filtering by sequence range, event source id, and event type. Returns event headers and JSON content.","inputs":[{"name":"eventSequenceId","type":"string","required":false,"description":"The event sequence to read from. Defaults to event-log."},{"name":"eventSourceId","type":"string|null","required":false,"description":"An optional event source id to filter by."},{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"eventType","type":"string|null","required":false,"description":"An optional comma-separated event type filter (e.g. UserRegistered or UserRegistered+1)."},{"name":"from","type":"integer","required":false,"description":"The starting event sequence number. Defaults to 0."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."},{"name":"to","type":"integer|null","required":false,"description":"The optional ending event sequence number."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":167},{"name":"get_tail_sequence_number","title":null,"description":"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.","inputs":[{"name":"eventSequenceId","type":"string","required":false,"description":"The event sequence to inspect. Defaults to event-log."},{"name":"eventSourceId","type":"string|null","required":false,"description":"An optional event source id to filter by."},{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"eventType","type":"string|null","required":false,"description":"An optional comma-separated event type filter."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":135},{"name":"list_event_types","title":null,"description":"Lists all registered event types in an event store, including their id, generation, owner and source. Use to explore the domain schema.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store to get event types from. Defaults to the configured event store."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":60},{"name":"list_failed_partitions","title":null,"description":"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.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."},{"name":"observerId","type":"string|null","required":false,"description":"Optional observer identifier to filter by."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":92},{"name":"list_observers","title":null,"description":"Lists observers (projections, reactors, reducers, client observers) in a namespace, with health and replay status. Optionally filter by type.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."},{"name":"type","type":"string","required":false,"description":"Observer type filter: reactor, reducer, projection, or all (default)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":94},{"name":"get_observer","title":null,"description":"Shows detailed information about a specific observer including its type, running state, owner, handled sequence numbers and observed event types.","inputs":[{"name":"eventSequenceId","type":"string","required":false,"description":"The event sequence to inspect. Defaults to event-log."},{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."},{"name":"observerId","type":"string","required":true,"description":"The identifier of the observer to show."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":102},{"name":"get_patterns","title":null,"description":"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.","inputs":[{"name":"context","type":"object","required":true,"description":"Current facet values to match. Keys and values are forwarded unchanged; an action, if present, is an ordinary facet."},{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"groupingKey","type":"string","required":true,"description":"The grouping key used when learning the patterns."},{"name":"maximumResults","type":"integer","required":false,"description":"Maximum result count. Non-positive values let the backend resolve its configured default. Positive values are forwarded unchanged without a local cap."},{"name":"minimumConfidence","type":"number","required":false,"description":"Minimum confidence, normally 0 to 1. Non-positive values let the backend resolve its configured default. Forwarded unchanged without local range validation."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":192},{"name":"list_projections","title":null,"description":"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.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":56},{"name":"list_read_models","title":null,"description":"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.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":72},{"name":"get_read_model_instances","title":null,"description":"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).","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."},{"name":"page","type":"integer","required":false,"description":"The 0-based page number. Defaults to 0."},{"name":"pageSize","type":"integer","required":false,"description":"The number of items per page. Defaults to 20."},{"name":"readModel","type":"string","required":true,"description":"The read model container name to list instances for."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":140},{"name":"list_recommendations","title":null,"description":"Lists active recommendations from the Chronicle server. Recommendations are automated suggestions for maintenance tasks such as rerunning projections or handling schema migrations.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":70},{"name":"get_server_version","title":null,"description":"Gets version information from the connected Chronicle server. Use to verify connectivity and check the server version and commit.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":30},{"name":"list_jobs","title":null,"description":"Lists all jobs in a namespace, optionally filtered by status. Returns a collection of job descriptors with status, progress, and metadata.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."},{"name":"status","type":"string|null","required":false,"description":"Optional filter by job status. Can be a comma-separated list of statuses (e.g. 'Running,PreparingJob')."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":100},{"name":"get_job","title":null,"description":"Gets a specific job by ID. Returns either a job descriptor with full details including status changes and progress, or a job error (NotFound).","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"jobId","type":"string","required":true,"description":"The job identifier."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":83},{"name":"get_job_steps","title":null,"description":"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.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"jobId","type":"string","required":true,"description":"The job identifier."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."},{"name":"status","type":"string|null","required":false,"description":"Optional filter by job step status. Can be a comma-separated list of statuses (e.g. 'Running,CompletedSuccessfully')."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":118},{"name":"run_ad_hoc_projection","title":null,"description":"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'.","inputs":[{"name":"eventSequenceId","type":"string","required":false,"description":"The event sequence to read from. Defaults to event-log."},{"name":"eventSourceId","type":"string|null","required":false,"description":"An optional event source id to scope to a single instance."},{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"eventTypes","type":"string","required":true,"description":"Comma-separated event type ids to fold (e.g. EmployeeHired,EmployeeMoved,EmployeePromoted)."},{"name":"limit","type":"integer","required":false,"description":"The maximum number of instances to return. Defaults to 100."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."},{"name":"removedWith","type":"string|null","required":false,"description":"Optional comma-separated event type ids that remove an instance (e.g. EmployeeTerminated)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":251},{"name":"explain_causal_trace","title":null,"description":"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.","inputs":[{"name":"eventSequenceId","type":"string","required":false,"description":"The event sequence to read from. Defaults to event-log."},{"name":"eventSourceId","type":"string","required":true,"description":"The event source id to trace (e.g. the order id)."},{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"eventType","type":"string|null","required":false,"description":"An optional comma-separated event type filter."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace. Defaults to the configured namespace."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":162},{"name":"generate_event_catalog","title":null,"description":"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.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"eventType","type":"string|null","required":false,"description":"An optional single event type id to scope the catalog to."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace to resolve observers in. Defaults to the configured namespace."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":126},{"name":"audit_unconsumed_event_types","title":null,"description":"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.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace to resolve observers in. Defaults to the configured namespace."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":129},{"name":"scaffold_read_model","title":null,"description":"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.","inputs":[{"name":"codeNamespace","type":"string","required":false,"description":"The C# namespace to generate the read model into. Defaults to ReadModels."},{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"eventTypes","type":"string","required":true,"description":"A comma-separated list of event type ids to project from (e.g. UserRegistered,UserEmailVerified)."},{"name":"readModelName","type":"string","required":true,"description":"The name of the read model to generate (e.g. Users)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":207},{"name":"describe_event_type","title":null,"description":"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.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store. Defaults to the configured event store."},{"name":"eventType","type":"string","required":true,"description":"The event type id/name to describe (e.g. UserRegistered)."},{"name":"generation","type":"integer|null","required":false,"description":"The optional specific generation to describe. The latest generation is used when omitted."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":136},{"name":"describe_system","title":null,"description":"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.","inputs":[{"name":"eventStore","type":"string|null","required":false,"description":"The event store to describe. Defaults to the configured event store."},{"name":"namespace","type":"string|null","required":false,"description":"The namespace to resolve observers in. Defaults to the configured namespace."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":135},{"name":"suggest_next_event_types","title":null,"description":"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.","inputs":[{"name":"entity","type":"string|null","required":false,"description":"An optional entity name to scope the suggestions to (case-insensitive)."},{"name":"eventStore","type":"string|null","required":false,"description":"The event store to analyze. Defaults to the configured event store."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":140}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:13:01.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":"no_attestation","reasonLabel":"No attestation published","discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-11","recent":[{"id":"chg_01a1aa56-db6a-7a55-ab7a-4d5a07c5e615","kind":"score.total_changed","summary":"Trust score (49 → 50)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a1aa56-db6a-7a55-ab7a-4d5a07c5e615"},{"id":"chg_01a1a555-e92b-7f25-b0be-6d021b85712a","kind":"check.unverifiable","summary":"Security disclosure (fail → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a1a555-e92b-7f25-b0be-6d021b85712a"},{"id":"chg_01a1a555-e92e-78d7-9704-e525e4bde12b","kind":"package.version_changed","summary":"Package version (2.0.0 → 2.1.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a1a555-e92e-78d7-9704-e525e4bde12b"},{"id":"chg_01a1a007-eae9-7596-8932-221324e50a7b","kind":"score.total_changed","summary":"Trust score (48 → 49)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a1a007-eae9-7596-8932-221324e50a7b"},{"id":"chg_01a19090-8cd8-7a4b-9e3d-54f8e85649b6","kind":"check.reverified","summary":"Provenance (unverified → fail)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a19090-8cd8-7a4b-9e3d-54f8e85649b6"},{"id":"chg_01a19090-8cda-7252-805a-ba2d98a53d75","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a19090-8cda-7252-805a-ba2d98a53d75"},{"id":"chg_01a19090-8cda-79ab-94d0-edf8da299022","kind":"score.total_changed","summary":"Trust score (47 → 48)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a19090-8cda-79ab-94d0-edf8da299022"},{"id":"chg_01a18bcf-8e30-7057-9883-9b11c862f811","kind":"check.unverifiable","summary":"Provenance (fail → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a18bcf-8e30-7057-9883-9b11c862f811"},{"id":"chg_01a18bcf-8e31-793d-81f7-6e19a4baa489","kind":"check.unverifiable","summary":"Security disclosure (fail → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a18bcf-8e31-793d-81f7-6e19a4baa489"},{"id":"chg_01a18646-3d26-70de-abf9-aafd722aa46e","kind":"score.total_changed","summary":"Trust score (46 → 47)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a18646-3d26-70de-abf9-aafd722aa46e"},{"id":"chg_01a17bf6-d9c9-78da-a9d2-83e61d91568a","kind":"score.total_changed","summary":"Trust score (45 → 46)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-27","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a17bf6-d9c9-78da-a9d2-83e61d91568a"},{"id":"chg_01a171aa-0940-758b-bf15-334702604163","kind":"score.total_changed","summary":"Trust score (44 → 45)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-25","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a171aa-0940-758b-bf15-334702604163"},{"id":"chg_01a1675d-46ca-7ca9-a62d-5fb556880485","kind":"score.total_changed","summary":"Trust score (43 → 44)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-23","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a1675d-46ca-7ca9-a62d-5fb556880485"},{"id":"chg_01a15d10-cc2f-7667-8c9d-d7f56f073a94","kind":"score.total_changed","summary":"Trust score (42 → 43)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-21","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a15d10-cc2f-7667-8c9d-d7f56f073a94"},{"id":"chg_01a152c3-ffb4-764e-92cf-ade0f57b3923","kind":"score.total_changed","summary":"Trust score (41 → 42)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-19","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a152c3-ffb4-764e-92cf-ade0f57b3923"},{"id":"chg_01a14872-d84e-7b24-ba5b-f6689cf36e52","kind":"check.reverified","summary":"Stability (unverified → 0.10)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a14872-d84e-7b24-ba5b-f6689cf36e52"},{"id":"chg_01a14872-d84f-771a-bd7d-7fc0d04d24b9","kind":"score.total_changed","summary":"Trust score (40 → 41)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-10-17","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a14872-d84f-771a-bd7d-7fc0d04d24b9"},{"id":"chg_01a13c01-e93b-76e0-854d-5847a2c69cc6","kind":"check.reverified","summary":"Injection markers (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a13c01-e93b-76e0-854d-5847a2c69cc6"},{"id":"chg_01a13c01-e93f-75bd-88f5-e0a4c002b530","kind":"check.appeared","summary":"First check of Judged manipulation (pass)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a13c01-e93f-75bd-88f5-e0a4c002b530"},{"id":"chg_01a13c01-e93f-7cb2-95d7-0dbe89f1159e","kind":"check.reason","summary":"Stability (Stability not yet verified: not enough scan history yet (needs a 30-day window).)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-14","url":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp#chg-chg_01a13c01-e93f-7cb2-95d7-0dbe89f1159e"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp","markdown":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp.md","changelogJson":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/cratis-chronicle-mcp/docker-io-cratis-chronicle-mcp.xml","external":[{"label":"Docker Hub","href":"https://hub.docker.com/r/cratis/chronicle-mcp"},{"label":"Repository","href":"https://github.com/Cratis/Chronicle.Mcp"},{"label":"Website","href":"https://www.cratis.io/chronicle-mcp/"}]}}