{"$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-05T17:23:48.951Z","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context","markdownUrl":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context.md","server":{"slug":"aniketxdey-chronicle","name":"Chronicle","registryName":"io.github.aniketxdey/chronicle","description":"Local screen and activity knowledge graph, served as context to computer-use agents.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"chronicle-context","type":"pypi","identifier":"chronicle-context","withdrawn":false,"url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context","version":"0.3.0","transport":"stdio","scoredAt":"2026-11-05T06:48:16.092Z"},"score":{"total":80,"tier":"high trust","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":80},{"date":"2026-11-04","total":80},{"date":"2026-11-03","total":64},{"date":"2026-11-02","total":64}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it.","0 of 15 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"setuptools.build_meta","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"15","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to aniketxdey/chronicle).","Clear OSI-approved license (MIT).","Actively maintained (last published 0 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"aniketxdey/chronicle"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"0"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":77,"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).","Tool/resource definitions use about 1943 tokens (~69/item across 28 items; 25 tools + 3 resources), lean.","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_lean","args":{"avg":"69","items":"28","tools":"25","tokens":"1943","resources":"3"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":10,"verdict":"partial","reasons":["Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"3"}}]},{"name":"Tool Coverage","score":87,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","61% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"61"}}]},{"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 27 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":"27","judged":"27"}}]},{"name":"Capabilities","score":60,"verdict":"fail","reasons":["Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28."],"codes":[{"code":"protocol.outdated","args":{"latest":"2026-07-28","version":"2025-06-18"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"chronicle-context","type":"pypi","identifier":"chronicle-context","withdrawn":false,"score":80,"current":true,"url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context","markdownUrl":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"chronicle-context"},{"label":"Version","value":"0.3.0"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"list_harnesses","title":"List harnesses","description":"The agent harnesses the user has built from their recordings, each for a line of work. Call this first.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":33},{"name":"get_harness","title":"Get harness","description":"One harness: its AGENTS.md, which says how to use it, and the list of its files.","inputs":[{"name":"id","type":"integer","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"read_harness_file","title":"Read harness file","description":"One file in a harness: AGENTS.md, a context file, or a workflow, with its small knowledge graph as text.","inputs":[{"name":"id","type":"integer","required":true,"description":null},{"name":"path","type":"string","required":true,"description":"A path from get_harness, like contexts/researching-companies.md."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":65},{"name":"search_harness_graph","title":"Search harness graph","description":"Search a harness's knowledge graph engine: entities across its recordings, and the low-level system events that mention the words.","inputs":[{"name":"id","type":"integer","required":true,"description":null},{"name":"query","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":48},{"name":"get_context_file","title":"Get context file","description":"One context file: standing instructions for this kind of work, the workflows it refers to, and its knowledge graph as text.","inputs":[{"name":"id","type":"integer","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":41},{"name":"get_workflow","title":"Get workflow","description":"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.","inputs":[{"name":"id","type":"integer","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"get_graph","title":"Get knowledge graph","description":"The knowledge graph of a recording, context file, or workflow, as nodes and edges in JSON or readable text.","inputs":[{"name":"format","type":"string","required":false,"description":"Default md, which uses fewer tokens."},{"name":"id","type":"integer","required":false,"description":"The recording, context file, or workflow id. Omit with kind recording for all history."},{"name":"kind","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":77},{"name":"get_context","title":"Get computer context","description":"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.","inputs":[{"name":"max_nodes","type":"integer","required":false,"description":"Graph nodes to include (4-80, default 24)."},{"name":"minutes","type":"integer","required":false,"description":"Only consider the last N minutes."},{"name":"preset","type":"string","required":false,"description":"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-…"},{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."},{"name":"task","type":"string","required":false,"description":"What you are about to do, in plain words. Focuses the graph and evidence."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":200},{"name":"search_history","title":"Search history","description":"Full-text search over captured screen text, system events, transcripts, and memories.","inputs":[{"name":"app_name","type":"string","required":false,"description":null},{"name":"content_type","type":"string","required":false,"description":null},{"name":"end_time","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"1-50, default 10."},{"name":"query","type":"string","required":true,"description":null},{"name":"start_time","type":"string","required":false,"description":"ISO timestamp or relative like '2h ago'."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":87},{"name":"query_graph","title":"Query knowledge graph","description":"Find knowledge-graph entities by text and/or kind, ranked by time spent and frequency.","inputs":[{"name":"kind","type":"string","required":false,"description":null},{"name":"limit","type":"integer","required":false,"description":"1-100, default 20."},{"name":"query","type":"string","required":false,"description":"Words to match against entity labels."},{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":79},{"name":"get_entity","title":"Get graph entity","description":"One knowledge-graph entity with its neighbors, relations, and evidence frames. Accepts an id like 'ticket:bill-142' or a label.","inputs":[{"name":"id","type":"string","required":true,"description":null},{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":64},{"name":"graph_summary","title":"Graph summary","description":"Counts by entity kind, the top entities of each kind, and the most common transitions.","inputs":[{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":44},{"name":"list_tasks","title":"List tasks","description":"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.","inputs":[{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."},{"name":"since","type":"string","required":false,"description":"Only tasks ending after this ISO timestamp or relative time like '2h ago'."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":121},{"name":"get_frame","title":"Get frame","description":"One captured frame: app, window, URL, text, nearby events. With include_image=true, also the screenshot.","inputs":[{"name":"frame_id","type":"integer","required":true,"description":null},{"name":"include_image","type":"boolean","required":false,"description":"Attach the screenshot (JPEG or PNG) when one exists."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":59},{"name":"activity_summary","title":"Activity summary","description":"Time per app, top windows, meetings, and a short narrative for a time range (default today).","inputs":[{"name":"end_time","type":"string","required":false,"description":null},{"name":"start_time","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45},{"name":"list_sessions","title":"List recordings","description":"Recording sessions with status, duration, frame and event counts, and top apps.","inputs":[{"name":"limit","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":31},{"name":"start_recording","title":"Start recording","description":"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.","inputs":[{"name":"duration","type":"string","required":false,"description":"How long to record, e.g. '10m', '1h30m'. Omit for until stopped."},{"name":"interval_secs","type":"integer","required":false,"description":"Seconds between samples (1-600, default 5)."},{"name":"label","type":"string","required":false,"description":"What is being recorded, e.g. 'filing an expense report'."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":128},{"name":"stop_recording","title":"Stop recording","description":"Stop the running recording (or the given one) and build its knowledge graph.","inputs":[{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"rebuild_graph","title":"Rebuild graph","description":"Rebuild the knowledge graph for all history or one session from the stored frames and events.","inputs":[{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":44},{"name":"graph_review","title":"Review graph for curation","description":"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.","inputs":[{"name":"batch","type":"integer","required":false,"description":"Batch to read, from 0. The reply says how many there are."},{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":88},{"name":"graph_apply","title":"Apply graph curation","description":"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.","inputs":[{"name":"ops","type":"array","required":true,"description":"Ops as {name, arguments}, using the schemas graph_review returns."},{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":81},{"name":"tune_graph","title":"Tune graph with an LLM","description":"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.","inputs":[{"name":"force","type":"boolean","required":false,"description":"Ignore the response cache and the up-to-date check."},{"name":"reset","type":"boolean","required":false,"description":"Remove all LLM patches for the scope instead of tuning."},{"name":"rounds","type":"integer","required":false,"description":"Review passes (1-5, default 2)."},{"name":"session_id","type":"integer","required":false,"description":"Recording session id. Omit to use all history."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":144},{"name":"list_meetings","title":"List meetings","description":"Meetings with speakers and transcript segments.","inputs":[{"name":"limit","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":24},{"name":"search","title":"Search (connector)","description":"Search Chronicle history and the knowledge graph. Returns ids to pass to fetch.","inputs":[{"name":"query","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":29},{"name":"fetch","title":"Fetch (connector)","description":"Fetch the full record for an id returned by search (frame:N, audio:N, event:N, memory:N, node:<id>).","inputs":[{"name":"id","type":"string","required":true,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":42}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:48:16.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":15,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-11-02","recent":[{"id":"chg_01a1a7b9-1408-723c-8c10-5d9651af3058","kind":"check.measure","summary":"Schema quality (1264 → 1943)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b9-1408-723c-8c10-5d9651af3058"},{"id":"chg_01a1a7b9-1408-7cc7-bcd9-296054b00f37","kind":"check.reverified","summary":"Stability (unverified → 0.07)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b9-1408-7cc7-bcd9-296054b00f37"},{"id":"chg_01a1a7b9-1409-774c-ad5b-0dac3219b5f1","kind":"score.total_changed","summary":"Trust score (49 → 80)","materiality":"functional","direction":"improvement","scoreDelta":31,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b9-1409-774c-ad5b-0dac3219b5f1"},{"id":"chg_01a1a7b8-52ec-7afa-9a01-a3faf799e980","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b8-52ec-7afa-9a01-a3faf799e980"},{"id":"chg_01a1a7b8-52ef-78b4-9917-a7d9f7ac6ba8","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b8-52ef-78b4-9917-a7d9f7ac6ba8"},{"id":"chg_01a1a7b8-52f1-7928-b24c-11c4e9df9673","kind":"check.reason","summary":"Stability (Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.)","materiality":"security","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b8-52f1-7928-b24c-11c4e9df9673"},{"id":"chg_01a1a7b8-52f4-78fc-a1e2-1449f9eaca8d","kind":"check.unverifiable","summary":"Capabilities (fail → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b8-52f4-78fc-a1e2-1449f9eaca8d"},{"id":"chg_01a1a7b8-52f5-7695-8178-d082b6fbe679","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b8-52f5-7695-8178-d082b6fbe679"},{"id":"chg_01a1a7b8-52f5-7bd5-961d-4bcbde712637","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b8-52f5-7bd5-961d-4bcbde712637"},{"id":"chg_01a1a7b8-52f7-76aa-840e-49eef8417da2","kind":"package.version_changed","summary":"Package version (0.2.0 → 0.3.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b8-52f7-76aa-840e-49eef8417da2"},{"id":"chg_01a1a7b8-52f7-7c3c-b47a-3a3710947795","kind":"score.total_changed","summary":"Trust score (64 → 49)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a1a7b8-52f7-7c3c-b47a-3a3710947795"},{"id":"chg_01a19d8f-67e1-7c2a-b9ab-f777501d2a2f","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context#chg-chg_01a19d8f-67e1-7c2a-b9ab-f777501d2a2f"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context/changelog.json"},"links":{"html":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context","markdown":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context.md","changelogJson":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context/changelog.json","changelogRss":"https://verifymcp.io/servers/aniketxdey-chronicle/chronicle-context.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/chronicle-context/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/chronicle-context"},{"label":"Repository","href":"https://github.com/aniketxdey/chronicle"}]}}