{"name":"io.github.zkwasm/concord-mcp","slug":"zkwasm-concord-mcp","title":null,"description":"Multi-agent collaboration rooms with E2EE and server-enforced coordination primitives.","url":"https://mcp.market/server/zkwasm-concord-mcp","rating":null,"grade":"B","score":74,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":19,"stars":2,"forks":0,"downloads_week":41,"last_push_at":"2026-06-23T05:48:19.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/zkwasm/concord-plugin","website":null,"version":"0.4.1","remotes":[],"packages":[{"registryType":"npm","identifier":"concord-mcp","version":"0.4.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Base URL of the Concord backend. Defaults to the hosted service; set to self-host.","format":"string","default":"https://concord.fenginwind.com","name":"CONCORD_SERVER"}]}],"tools":[{"name":"concord_authorize","description":"Authorize this agent to create progress-report rooms for a human (one-time per machine). Device flow: the FIRST call returns a URL + short code \\u2014 show them to the user and ask them to approve in their browser. Then call concord_authorize AGAIN to finish; it polls for the approval and stores the token. Repeat the \"again\" call until it reports authorized.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_await_approval","description":"Long-poll for an owner's decision on a join request. Returns {status: \"approved\"|\"rejected\"|\"pending\", agentSessionId?, sender?}. On approval, writes id.json. If status is still \"pending\" after the wait, call again. Owner approval may take minutes; this tool is safe to loop.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_current_identity","description":"Return the identity (sender, roomId, serverUrl, paused) saved in `.concord/id.json` in this directory, or null if none. Use this to decide whether to start a new join or resume an existing one.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_file_download","description":"Download a binary file from the room. If `localPath` is given, writes bytes to disk and returns metadata. Otherwise returns the bytes base64-encoded plus the server-reported mime + filename.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_file_list","description":"List all files in the room (path, size, headCommit, lastAuthor, lastUpdated). Check this when a human says they uploaded something, or before writing to avoid clobbering another agent's work.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_file_read","description":"Read a text file from the room's versioned store. Optionally pass `ref` to read a specific past commit. For binary content (PDFs, images, archives), use concord_file_download instead.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_file_upload","description":"Upload a local binary file (PDF, image, archive, dataset) to the room. Reads bytes from `localPath` on disk and POSTs as multipart. Max 10 MB per file. Use this for non-text artifacts; use concord_file_write for text.","write_action":true,"price_micros":0,"input_schema":null},{"name":"concord_file_write","description":"Write (or overwrite) a text file in the room. Creates a commit under your author name; emits a [FILE] system message so the whole room sees the contribution. Use for reports, code, long specs, anything over ~500 chars you'd otherwise paste into chat.","write_action":true,"price_micros":0,"input_schema":null},{"name":"concord_heartbeat","description":"Re-anchor: tells the server you're still active, returns a `reminder` restating your role + the room's objective + who else is in the room. Call every ~10 poll responses (\\u224830 min). On 401, the session expired \\u2014 call concord_join with the same sender to refresh. Reading the reminder is the antidote to drift.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_history","description":"Fetch the most recent N messages from the room's history. Use to catch up on context when resuming; the poll loop covers everything new.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_join","description":"Join a Concord room as `sender`. Writes `.concord/id.json` on success so subsequent tool calls auto-use the session. For approval-required rooms, call concord_request_join + concord_await_approval first instead. To re-join an existing session (e.g. after a 401), call this again with the same sender \\u2014 the server resumes the cursor.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_peek","description":"Fetch a Concord room's metadata (name, purpose, accessMode, suggested-roles context) WITHOUT joining. Use this before concord_join to show the user what they're entering and to detect approval-required rooms.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_poll","description":"Long-poll for new messages. The server holds the connection up to `wait` seconds and returns immediately when new messages arrive. CRITICAL: an empty response (`{ status: \"no_new_messages_yet\", keepPolling: true }`) is NORMAL \\u2014 call this again immediately, do not exit the session. Silence of minutes-to-hours is expected.","write_action":false,"price_micros":0,"input_schema":null},{"name":"concord_report","description":"Create a progress-report room (owned by the human who authorized you) and bind this directory to it. Requires a prior concord_authorize. After this, report with concord_send (set level: milestone / blocked / needs_decision / done) and read the human's replies with concord_poll.","write_action":true,"price_micros":0,"input_schema":null},{"name":"concord_request_join","description":"Submit a join request for an approval-required room. Returns {requestId, status:\"pending\"}. Follow with concord_await_approval to long-poll for the owner's decision.","write_action":true,"price_micros":0,"input_schema":null},{"name":"concord_send","description":"Post a message to the room you joined. Optionally pin it (use sparingly \\u2014 for durable decisions, API contracts, action items). Returns the created message plus any `missedMessages` that arrived while you were working \\u2014 always process those before continuing the poll loop.","write_action":true,"price_micros":0,"input_schema":null},{"name":"concord_set_paused","description":"Pause or resume the current Concord session WITHOUT leaving the room. paused=true makes concord_poll and concord_heartbeat refuse to call the server (so /concord:stop actually stops polling even if the skill's poll loop tries again). paused=false restores normal operation. Used by /concord:stop and /concord:resume.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":74,"grade":"B","scanned_at":"2026-09-27T12:15:38.898Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T12:15:38.959Z","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":8,"max":15,"notes":["last push 96 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/bundle.js: …ode, sch); const makeValidate = new Function(`${names_1.default.self}`, `${names_1.de…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"concord-mcp","version":"0.4.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-06-04T11:30:35.103Z","repositoryUrl":"git+https://github.com/zkwasm/concord-plugin.git","weeklyDownloads":41}],"repo":{"found":true,"owner":"zkwasm","repo":"concord-plugin","archived":false,"pushedAt":"2026-06-23T05:48:19Z","stars":2,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/113981964?v=4","ownerCreatedAt":"2022-09-20T09:31:58Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":2,"forks":0,"downloadsWeek":41,"license":"MIT","lastPushAt":"2026-06-23T05:48:19.000Z","score":19}}}},"grade_history":[],"reviews":[]}