{"name":"io.arcaeon/arcaeon","slug":"arcaeon","title":"Arcaeon","description":"A record of what an agent did that the agent cannot quietly rewrite, and a way for anyone to check.","url":"https://mcp.market/server/arcaeon","rating":null,"grade":"C","score":65,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":29,"stars":0,"forks":0,"downloads_week":198,"last_push_at":"2026-09-25T05:23:23.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Arcaeon-io/arcaeon","website":"https://arcaeon.io","version":"0.9.0","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"arcaeon","version":"0.9.0","runtimeHint":"uvx","transport":{"type":"stdio"},"runtimeArguments":[{"description":"The MCP server needs the MCP Python SDK (the package's [mcp] extra); the base install has no dependencies.","value":"mcp>=2.0.0,<3","type":"named","name":"--with"}],"packageArguments":[{"description":"The verb that starts the MCP server on stdio.","value":"mcp","type":"positional"}],"environmentVariables":[{"description":"Witness API key for the two paid tools (witness_pin, witness_renew). Free tools work without it.","format":"string","isSecret":true,"name":"ARCAEON_KEY"}]}],"tools":[{"name":"_all","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"_audit","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"_fetch","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"_gate","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"_has_entrypoint","description":"Does this file actually SERVE? A module that defines a handler and never runs is a fragment, and asking a fragment where its audit trail is, is noise. Confessed as a gap: handlers in tools.py with run() in __main__.py are never asked the question.","write_action":false,"price_micros":0,"input_schema":null},{"name":"_inline","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"_is_tool_handler","description":"Is `fn` registered as a tool handler by a decorator? `extra` adds spellings the caller accepts beyond the FastMCP set (see `_DISPATCH_DECORATORS`).","write_action":false,"price_micros":0,"input_schema":null},{"name":"_read","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"add","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"audit_record_applies","description":"Would `audit-record` ASK this file the question? True only for a file with tool handlers AND an entrypoint. An empty finding list means \"all four gates met\" for such a file and \"question not applicable\" for any other; a consumer that reads [] as a clean bill for a test file has graded a test file (the registry benchmark did, on its own first run, 2026-09-02).","write_action":false,"price_micros":0,"input_schema":null},{"name":"deco","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_fields","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"ledger_append","description":"Append one action record to the tamper-evident log at `path`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ledger_create","description":"Open (or report) a tamper-evident, hash-chained action log at `path`.","write_action":true,"price_micros":0,"input_schema":null},{"name":"ledger_verify","description":"Verify the hash chain over the whole log file at `path`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"main","description":"","write_action":false,"price_micros":0,"input_schema":null},{"name":"show","description":"","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":65,"grade":"C","scanned_at":"2026-09-25T12:01:09.884Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T12:01:09.864Z","components":{"code":{"score":15,"max":25,"notes":["105 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","website matches verified namespace"]}},"findings":[{"id":"exec.shell-true","severity":"medium","component":"code","title":"subprocess with shell=True","evidence":"arcaeon-0.9.0/src/arcaeon/prove/baseline/runner.py: …bprocess.run( self.cmd, shell=True, input=prompt, capture_output=True, …"},{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"arcaeon-0.9.0/src/arcaeon/prove/vet/checks.py: …loads(arg) is as dangerous as one doing eval(arg). Resolved through the # same import…"}],"inputs":{"packages":[{"registryType":"pypi","identifier":"arcaeon","version":"0.9.0","found":true,"weeklyDownloads":198,"license":"MIT","dependencyCount":8,"publishedAt":"2026-09-24T19:33:17.959077Z","repositoryUrl":"https://arcaeon.io"}],"repo":{"found":true,"owner":"Arcaeon-io","repo":"arcaeon","archived":false,"pushedAt":"2026-09-25T05:23:23Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/317106740?v=4","ownerCreatedAt":"2026-08-14T21:17:51Z","license":"MIT"},"icon":{"url":"https://arcaeon.io/favicon.ico","source":"site","width":48,"height":48},"presence":{"stars":0,"forks":0,"downloadsWeek":198,"license":"MIT","lastPushAt":"2026-09-25T05:23:23.000Z","score":29}}}},"grade_history":[],"reviews":[]}