{"name":"io.github.soke1556/zas-agent","slug":"soke1556-zas-agent","title":"Zas","description":"Move files and notes between a coding agent and your Zas channels, encrypted here or via Directo.","url":"https://mcp.market/server/soke1556-zas-agent","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":28,"stars":0,"forks":1,"downloads_week":102,"last_push_at":"2026-09-18T10:23:24.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/soke1556/zas-agent","website":"https://zas.red","version":"0.9.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"zas-agent","version":"0.9.0","runtimeHint":"npx","transport":{"type":"stdio"},"packageArguments":[{"description":"Which local identity directory to use, under ~/.zas/agent/. One profile per harness, so a Claude Code agent and a Codex agent on one machine stay separate. Pair it first with: npx -y zas-agent pair --profile <name>","default":"claude-code","type":"named","name":"--profile"}]}],"tools":[{"name":"zas_edit_item","description":"Change an item this agent sent, keeping its id: the title of a file or a note, or a note's text, language and secret cover. Refuses items sent by anyone else. A file's bytes change with zas_replace_file. Needs a grant that includes reading and sending. Pass only the fields to change; an empty title clears it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"zas_get_item","description":"Fetch one item from a Zas channel. A note comes back as text; a file is written to disk. Returns the path written; it can differ from `dest` when a file with that name already exists. Writes a new file under `dest` (or the system temp directory); it never overwrites an existing file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"zas_jobs","description":"List the sends and Directo transfers this server started, newest first, with the phase each one reached and how it ended \\u2014 including any `job_id` a send returned; a finished job keeps its result here.","write_action":false,"price_micros":0,"input_schema":null},{"name":"zas_list_items","description":"List the most recent items in one of the owner's Zas channels. Needs a grant that includes reading.","write_action":false,"price_micros":0,"input_schema":null},{"name":"zas_pair","description":"Pair this agent with a Zas account. The first call returns a URL for the owner to open; a later call says whether they approved. If the page shows a code, call again with `code`. In a profile that is already paired, approval replaces the old agent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"zas_receive_direct","description":"Receive a file the owner sends through Directo, straight onto this machine. Call it when the owner says they are sending you something: it waits for the offer, takes it, and writes the file to disk. Nothing is stored anywhere. Only for a channel in Directo mode, and only with a grant that includes reading. The call waits a minute and then returns a job id to check with zas_jobs; the wait for an of","write_action":false,"price_micros":0,"input_schema":null},{"name":"zas_receive_direct_fallback","description":"After a zas_receive_direct job failed in flight, download the encrypted copy the sender chose to store instead. It works only if the person who was sending picked reliable delivery for that transfer. The file is decrypted on this machine and written to the same destination. Pass the failed job\\u2019s id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"zas_replace_file","description":"Replace the bytes of a file this agent sent with a file from this machine, keeping the item id, its place in the channel and its pin. Refuses items sent by anyone else, notes, and an item with a public share. Returns the item id, or a job id when the upload takes longer than a minute. Sends any file this process can read; confirm with the owner before sending secrets, keys or credentials.","write_action":false,"price_micros":0,"input_schema":null},{"name":"zas_send_direct","description":"Send a file from this machine through Directo: a live, device-to-device transfer into one of the owner's channels that is in Directo mode. Nothing is stored. The owner has to press Receive on another device within ten minutes; the call waits a minute and then returns a job id to check with zas_jobs. Returns the transfer result, or a job id. Sends any file this process can read; confirm with the ow","write_action":true,"price_micros":0,"input_schema":null},{"name":"zas_send_direct_fallback","description":"After a zas_send_direct job failed in flight, deliver the same file through reliable delivery instead. Zas encrypts the file on this machine and stores only that encrypted copy in Cloudflare R2 for up to 24 hours; it uses none of the owner's space, and the device that claimed the offer can download it later. This stops being Directo: the encrypted bytes pass through storage. Ask the owner before y","write_action":true,"price_micros":0,"input_schema":null},{"name":"zas_send_file","description":"Send a file from this machine into one of the owner's Zas channels. Returns the item id, or a job id when the upload takes longer than a minute. A channel in Directo mode refuses this tool: use zas_send_direct there. Sends any file this process can read; confirm with the owner before sending secrets, keys or credentials.","write_action":true,"price_micros":0,"input_schema":null},{"name":"zas_send_note","description":"Send a note \\u2014 plain text, or a code snippet with its language \\u2014 into one of the owner's Zas channels.","write_action":true,"price_micros":0,"input_schema":null},{"name":"zas_status","description":"Say whether this agent is paired with a Zas account, and list the owner's channels it may send to or read from.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-19T20:35:27.000Z","report":{"scannerVersion":"0.1.6","scannedAt":"2026-09-19T20:35:26.977Z","components":{"code":{"score":20,"max":25,"notes":["2 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":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"secret.google","severity":"medium","component":"code","title":"Google API key in source (often public by design; check its restrictions)","evidence":"dist/cli.js: …rn process.env.ZAS_FIREBASE_API_KEY || \"AIza****\"; } static identityToolkitBase() { …"}],"inputs":{"packages":[{"registryType":"npm","identifier":"zas-agent","version":"0.9.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":8,"publishedAt":"2026-09-09T23:40:30.470Z","repositoryUrl":"git+https://github.com/soke1556/zas-agent.git","weeklyDownloads":102}],"repo":{"found":true,"owner":"soke1556","repo":"zas-agent","archived":false,"pushedAt":"2026-09-18T10:23:24Z","stars":0,"forks":1,"openIssues":8,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/1424405?v=4","ownerCreatedAt":"2012-02-09T21:21:39Z","license":"MIT"},"icon":{"url":"https://zas.red/icon.svg","source":"registry"},"presence":{"stars":0,"forks":1,"downloadsWeek":102,"license":"MIT","lastPushAt":"2026-09-18T10:23:24.000Z","score":28}}}},"grade_history":[{"kind":"restore","fromGrade":"B","toGrade":"A","reason":"score 85: Google API key in source (often public by design; check its restrictions)","createdAt":"2026-09-19T20:35:27.716Z"}],"reviews":[]}