Chronicle
PYPI · CHRONICLE-CONTEXT
Local screen and activity knowledge graph, served as context to computer-use agents.
Available components
Last scanned (9 hours ago)
Scores higher than 81% of PyPI servers
Category Memory and Knowledge
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 Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 0 of 15 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to aniketxdey/chronicle). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability77
- 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
- Tool/resource definitions use about 1943 tokens (~69/item across 28 items; 25 tools + 3 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
- Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage87
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 61% of tool parameters carry a description.Partial
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 27 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Checks we ran (16)
- Malware scan
- Known CVEs
- Install scripts
- Dependency health
- Source repository
- Provenance
- License
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
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 →
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.
- 4 Nov 26 +16
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
- Schema quality: 1264 → 1943 ▼ functional
- Capabilities: fail → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Stability: unverified → 0.07 ▲ functional
- Package version: 0.2.0 → 0.3.0 functional
- 2 Nov 26 64
First indexed and scored.
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 pypi/chronicle-context@0.3.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | aniketxdey/chronicle |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/aniketxdey/chronicle/.github/workflows/release.yml@refs/tags/v0.3.0 |
| Rekor log index | 3691490855 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:907beae5af1fbf7245ec0599a9f32311cd354efa409babb4fa79ad00ad629587 |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | Known build tool | setuptools.build_meta |
Background: Why install scripts are a supply-chain risk →
Dependencies 15 packages
| Packages resolved | 15 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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 →
activity_summary Activity summary ~45
Time per app, top windows, meetings, and a short narrative for a time range (default today).
| Name | Type | Req | Description |
|---|---|---|---|
| end_time | string | – | – |
| start_time | string | – | – |
No output schema declared.
No examples provided.
fetch Fetch (connector) ~42
Fetch the full record for an id returned by search (frame:N, audio:N, event:N, memory:N, node:<id>).
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
No output schema declared.
No examples provided.
get_context Get computer context ~200
Context pack for a computer-use agent: what is on screen now, recent activity, habitual app/window transitions, the knowledge-graph entities relevant to the task, and cited evidence. Call this before acting.
| Name | Type | Req | Description |
|---|---|---|---|
| max_nodes | integer | – | Graph nodes to include (4-80, default 24). |
| minutes | integer | – | Only consider the last N minutes. |
| preset | string | – | The kind of work, when one fits: general (General), data-analysis (Data analysis), job-applications (Applying to jobs), coding (Software development), research (Research), writing (Writing), meeting-… |
| session_id | integer | – | Recording session id. Omit to use all history. |
| task | string | – | What you are about to do, in plain words. Focuses the graph and evidence. |
No output schema declared.
No examples provided.
get_context_file Get context file ~41
One context file: standing instructions for this kind of work, the workflows it refers to, and its knowledge graph as text.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | – |
No output schema declared.
No examples provided.
get_entity Get graph entity ~64
One knowledge-graph entity with its neighbors, relations, and evidence frames. Accepts an id like 'ticket:bill-142' or a label.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| session_id | integer | – | Recording session id. Omit to use all history. |
No output schema declared.
No examples provided.
get_frame Get frame ~59
One captured frame: app, window, URL, text, nearby events. With include_image=true, also the screenshot.
| Name | Type | Req | Description |
|---|---|---|---|
| frame_id | integer | yes | – |
| include_image | boolean | – | Attach the screenshot (JPEG or PNG) when one exists. |
No output schema declared.
No examples provided.
get_graph Get knowledge graph ~77
The knowledge graph of a recording, context file, or workflow, as nodes and edges in JSON or readable text.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Default md, which uses fewer tokens. |
| id | integer | – | The recording, context file, or workflow id. Omit with kind recording for all history. |
| kind | string | yes | – |
No output schema declared.
No examples provided.
get_harness Get harness ~38
One harness: its AGENTS.md, which says how to use it, and the list of its files.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | – |
No output schema declared.
No examples provided.
get_workflow Get workflow ~47
One workflow: when to run it, its inputs, the steps in order, what to confirm with the person first, and its knowledge graph as text.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | – |
No output schema declared.
No examples provided.
graph_apply Apply graph curation ~81
Apply curation ops from graph_review to the local graph. Each op is checked, rejected ops come back with the reason, and tune_graph with reset=true removes them all.
| Name | Type | Req | Description |
|---|---|---|---|
| ops | array | yes | Ops as {name, arguments}, using the schemas graph_review returns. |
| session_id | integer | – | Recording session id. Omit to use all history. |
No output schema declared.
No examples provided.
graph_review Review graph for curation ~88
One batch of the knowledge graph with the rules and op schemas for curating it yourself. Use with graph_apply when the user wants their graph organized, including when Chronicle has no model of its own.
| Name | Type | Req | Description |
|---|---|---|---|
| batch | integer | – | Batch to read, from 0. The reply says how many there are. |
| session_id | integer | – | Recording session id. Omit to use all history. |
No output schema declared.
No examples provided.
graph_summary Graph summary ~44
Counts by entity kind, the top entities of each kind, and the most common transitions.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | integer | – | Recording session id. Omit to use all history. |
No output schema declared.
No examples provided.
list_harnesses List harnesses ~33
The agent harnesses the user has built from their recordings, each for a line of work. Call this first.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_meetings List meetings ~24
Meetings with speakers and transcript segments.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
No output schema declared.
No examples provided.
list_sessions List recordings ~31
Recording sessions with status, duration, frame and event counts, and top apps.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
No output schema declared.
No examples provided.
list_tasks List tasks ~121
What the user was doing, as a timeline of tasks (e.g. 'researching Forbes AI 50 · Crusoe', 4m) segmented from screen activity by topic. Each task has start/end, a verb, top terms, a topic cluster shared with other stints on the same topic, the pages and entities involved, and evidence frame ids.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | integer | – | Recording session id. Omit to use all history. |
| since | string | – | Only tasks ending after this ISO timestamp or relative time like '2h ago'. |
No output schema declared.
No examples provided.
query_graph Query knowledge graph ~79
Find knowledge-graph entities by text and/or kind, ranked by time spent and frequency.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | – | – |
| limit | integer | – | 1-100, default 20. |
| query | string | – | Words to match against entity labels. |
| session_id | integer | – | Recording session id. Omit to use all history. |
No output schema declared.
No examples provided.
read_harness_file Read harness file ~65
One file in a harness: AGENTS.md, a context file, or a workflow, with its small knowledge graph as text.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | – |
| path | string | yes | A path from get_harness, like contexts/researching-companies.md. |
No output schema declared.
No examples provided.
rebuild_graph Rebuild graph ~44
Rebuild the knowledge graph for all history or one session from the stored frames and events.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | integer | – | Recording session id. Omit to use all history. |
No output schema declared.
No examples provided.
search Search (connector) ~29
Search Chronicle history and the knowledge graph. Returns ids to pass to fetch.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | – |
No output schema declared.
No examples provided.
search_harness_graph Search harness graph ~48
Search a harness's knowledge graph engine: entities across its recordings, and the low-level system events that mention the words.
| Name | Type | Req | Description |
|---|---|---|---|
| id | integer | yes | – |
| query | string | yes | – |
No output schema declared.
No examples provided.
search_history Search history ~87
Full-text search over captured screen text, system events, transcripts, and memories.
| Name | Type | Req | Description |
|---|---|---|---|
| app_name | string | – | – |
| content_type | string | – | – |
| end_time | string | – | – |
| limit | integer | – | 1-50, default 10. |
| query | string | yes | – |
| start_time | string | – | ISO timestamp or relative like '2h ago'. |
No output schema declared.
No examples provided.
start_recording Start recording ~128
Record the screen and system events (app switches, window focus, URLs, clipboard, idle) for a preset duration such as '5m', '30m', or '2h'. The graph for the session is built when it ends.
| Name | Type | Req | Description |
|---|---|---|---|
| duration | string | – | How long to record, e.g. '10m', '1h30m'. Omit for until stopped. |
| interval_secs | integer | – | Seconds between samples (1-600, default 5). |
| label | string | – | What is being recorded, e.g. 'filing an expense report'. |
No output schema declared.
No examples provided.
stop_recording Stop recording ~43
Stop the running recording (or the given one) and build its knowledge graph.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | integer | – | Recording session id. Omit to use all history. |
No output schema declared.
No examples provided.
tune_graph Tune graph with an LLM ~144
Have the configured LLM (see Settings > Model or CHRONICLE_LLM) review the heuristic graph and patch it: add real-world entities, typed relations, and activity summaries, merge duplicates, clean labels, drop noise. Patches survive rebuilds; reset=true removes them. Off unless an LLM provider is configured.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Ignore the response cache and the up-to-date check. |
| reset | boolean | – | Remove all LLM patches for the scope instead of tuning. |
| rounds | integer | – | Review passes (1-5, default 2). |
| session_id | integer | – | Recording session id. Omit to use all history. |
No output schema declared.
No examples provided.
How do I install the Chronicle MCP server?
Chronicle runs locally as a PyPI package, launched with uvx chronicle-context mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · chronicle-context
claude mcp add aniketxdey-chronicle -- uvx chronicle-context mcp
What is the Chronicle MCP server?
Chronicle is an MCP server listed in the public MCP registry as io.github.aniketxdey/chronicle. Local screen and activity knowledge graph, served as context to computer-use agents. This page covers its PyPI package (chronicle-context).
Is the Chronicle MCP server safe to use?
Chronicle scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. 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 Chronicle MCP server expose?
Chronicle exposes 25 tools: list_harnesses, get_harness, read_harness_file, search_harness_graph, get_context_file, and 20 more. Their descriptions and schemas cost roughly 1,702 tokens of context every time the server is loaded.
Is the Chronicle MCP server still maintained?
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 licence is the Chronicle MCP server under?
Chronicle declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.
What did VerifyMCP test on the Chronicle MCP server?
VerifyMCP ran 16 checks on Chronicle, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to a PyPI package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.