{"name":"io.github.johnmwhitman/agent-mesh","slug":"johnmwhitman-agent-mesh","title":null,"description":"Auditable multi-agent coordination: fleets, P2P messaging, witnessed receipts, quorum.","url":"https://mcp.market/server/johnmwhitman-agent-mesh","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":29,"stars":1,"forks":0,"downloads_week":205,"last_push_at":"2026-09-29T03:01:39.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/johnmwhitman/agent-mesh","website":null,"version":"0.22.0","remotes":[],"packages":[{"registryType":"npm","identifier":"meshfleet","version":"0.22.0","transport":{"type":"stdio"}}],"tools":[{"name":"ack_message","description":"Acknowledge a message, removing it from the agent's inbox. Writes an 'ack' receipt (per-recipient — a broadcast is acked independently by each recipient).","write_action":false,"price_micros":0,"input_schema":null},{"name":"ask_peer","description":"Open a bounded, two-agent Discussion: sends the root question and (optionally) explicitly reserves one peer attempt, then waits until the conversation deadline for a settled answer. Message arrival never starts an agent by itself — wake_peer:true is the explicit, budgeted authority to run the peer once.","write_action":false,"price_micros":0,"input_schema":null},{"name":"attach_agent","description":"Attach an agent to a running fleet. It banks complete only when result_contract is ok; refused, blocked, artifact_missing, invalid, or absent banks failed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cast_vote","description":"Cast a vote on an open ratification. approve=true records approval, approve=false rejection. Re-casting CHANGES your effective vote (each change appends a new sequenced receipt — history is never rewritten); repeating your current vote is a no-op.","write_action":false,"price_micros":0,"input_schema":null},{"name":"collect_results","description":"Get fleet outputs and loss tally. Only result_contract ok can bank complete; refused, blocked, artifact_missing, invalid, or absent banks failed. Declared outcome, not quality. Check lost first.","write_action":false,"price_micros":0,"input_schema":null},{"name":"compile_route_candidates","description":"Offline projection of caller-supplied route-candidate snapshots. Does not persist, rank, execute, authorize, wake, or contact providers.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fleet_status","description":"Check fleet and agent status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_build_identity","description":"Full BuildIdentityReport for the running install: package name/version, source_commit, entrypoint_count, per-entrypoint SHA-256 map, entrypoints_match_runtime bit. Diagnostic access to the install's identity.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_discussion","description":"Read-only: derive and return a Discussion's full state — transcript, attempts, budget, and fail-closed status (invalid > closed > deadman > expired > exhausted > active > open) — from durable messages and receipts. Remains useful after every inbox entry has been acknowledged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_health","description":"Fleet health + liveness. Pass verbosity=\"summary\" for a smaller routine probe (entrypoints map omitted); default \"full\" is the full BuildIdentityReport. Use `get_build_identity` for diagnostics.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_inbox","description":"Get messages in an agent's inbox, optionally since a timestamp.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_receipts","description":"Get the full receipt trail for a message: who acked, who annotated, when. Answers 'who saw this and who acted on it'.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_work_receipt","description":"Read back a work receipt by composite key. Returns the exact stored bytes plus","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_agents","description":"List all available premade agents from .opencode/agents/ directories.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_fleet_templates","description":"List all saved fleet templates, sorted by name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_fleets","description":"List all fleets with summaries (agent count, status, completion).","write_action":false,"price_micros":0,"input_schema":null},{"name":"open_ratification","description":"Open a quorum vote ('council') over the fleet. Broadcasts a proposal; peers vote with cast_vote. Ratifies when approvals reach the quorum and every required signoff approves. Returns the proposal message_id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"ping","description":"Minimal liveness check. Returns { status: 'ok', timestamp }.","write_action":false,"price_micros":0,"input_schema":null},{"name":"plan_speculative_backlog","description":"Pure, caller-approved speculative backlog projection. Does not persist, execute, authorize, wake agents, contact providers, poll, allocate capacity, schedule, spend, send, or publish.","write_action":false,"price_micros":0,"input_schema":null},{"name":"receipt","description":"Write a non-consuming receipt on a message — the audit primitive. Use actions like 'seen', 'r-ack' (approve), 'retracted'. Unlike ack_message, the message stays in the inbox. One receipt per (message, agent, action); repeat calls are idempotent.","write_action":true,"price_micros":0,"input_schema":null},{"name":"recommend_route","description":"Advisory-only ranking over caller-supplied sanitized task traits and candidate snapshots. Does not persist, execute, authorize, wake agents, or contact providers.","write_action":false,"price_micros":0,"input_schema":null},{"name":"record_routing_outcome","description":"Record whether a routed task succeeded or failed. Future route_work calls for the same agent weight their score by accumulated outcomes (Wilson-style). NOTE: outcomes are currently accumulated PER AGENT, not per capability — capability_key is recorded for forward compatibility but does not yet scope the penalty, so a failure at one capability lowers the agent's score for all of them. Feedback is i","write_action":false,"price_micros":0,"input_schema":null},{"name":"record_work_receipt","description":"Record a first-class external work receipt (Hermes Kanban result contract).","write_action":false,"price_micros":0,"input_schema":null},{"name":"register_capability","description":"Register an agent's capabilities (role, skills, model) for routing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"reply_discussion","description":"Submit the one reply an active wake attempt is authorized to produce. Never launches an agent. Rejects a second reply for the same attempt, a stale head, or a reply past the conversation/attempt deadline. close:true makes the conversation terminal; exhausting the last turn without close returns exhausted.","write_action":true,"price_micros":0,"input_schema":null},{"name":"route_work","description":"Route a work description to the best-matching registered agents by keyword + role/skill overlap scoring (with synonym expansion), weighted by routing feedback (success/fail history). top_n controls how many matches to return (default 1, max = fleet size).","write_action":false,"price_micros":0,"input_schema":null},{"name":"save_fleet_template","description":"Save a named fleet template (set of agent specs) for reuse. Names: lowercase letters, numbers, dashes, underscores.","write_action":false,"price_micros":0,"input_schema":null},{"name":"send_message","description":"Send a P2P message from one agent to another within the same fleet. Set to_agent_id to \"*\" to broadcast to every other agent in the fleet (each recipient acks independently; see get_receipts).","write_action":true,"price_micros":0,"input_schema":null},{"name":"send_messages","description":"Send a batch of P2P messages in ONE ledger transaction — use instead of repeated send_message calls for bulk fan-out (much faster: the recipient inbox is updated once per batch, not once per message). Atomic: one invalid message rejects the whole batch. Max 1000 messages per call.","write_action":true,"price_micros":0,"input_schema":null},{"name":"set_fleet_timeout","description":"Set a per-fleet timeout override (in milliseconds). Agents exceeding this are auto-failed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"spawn_fleet","description":"Spawn parallel agents. Returns fleet_id. An agent banks complete only when result_contract is ok; refused, blocked, artifact_missing, invalid, or absent banks failed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"spawn_from_template","description":"Return a fleet spec from a saved template, ready to pass to spawn_fleet.","write_action":false,"price_micros":0,"input_schema":null},{"name":"subscribe_events","description":"Subscribe to the unified fleet-wide event stream via Server-Sent Events (SSE). Returns a stream URL that emits every ledger event (messages, receipts, ratifications, spawns, completions, discussions) as it is appended. Keep-alive :hb comment frames are sent every 30s. Optional fleet_id filter narrows to events carrying that fleet_id. If the operator set MESHFLEET_AUTH_TOKEN, requests to the stream","write_action":false,"price_micros":0,"input_schema":null},{"name":"subscribe_inbox","description":"Subscribe to an agent's inbox via Server-Sent Events (SSE). Returns a stream URL that the agent opens to receive real-time push of incoming P2P messages. Falls back to polling get_inbox if SSE is unreachable. If the operator set MESHFLEET_AUTH_TOKEN, requests to the stream must carry it (Authorization: Bearer, or ?token=).","write_action":false,"price_micros":0,"input_schema":null},{"name":"sweep_ratifications","description":"Evaluate every open ratification now and persist any that reached a terminal state (deadline expiry, silent-approval, unreachable quorum). The server also sweeps automatically every AGENT_MESH_RATIFY_SWEEP_MS (default 60s).","write_action":false,"price_micros":0,"input_schema":null},{"name":"tally_ratification","description":"Read the live vote tally and current status (open / ratified / rejected / expired) of a ratification, and persist the status if it has reached a terminal state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_ledger","description":"Audit the ledger's internal consistency: every receipt points at a real message and honors the idempotency key, acknowledged flags are supported by ack receipts, inboxes hold no consumed or dangling messages, and ratification tallies (quorum, signoffs, vote polarity, terminal status) recompute from the receipts. Read-only. Returns ok, error/warning counts, per-finding detail, and a `scope` object ","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_ledger_v2","description":"Versioned verifier output read from a dedicated read-only file snapshot; the handler performs no ledger writes. Normal parent-server startup recovery or migration may initialize or change the configured ledger before tool dispatch. Returns the unchanged internal-consistency report inside meshfleet.verify/v2 with an unsigned-snapshot evidence scope; it does not establish authorship, snapshot integr","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_ledger_v3","description":"Opt-in verifier output read from a dedicated read-only file snapshot; the handler performs no ledger writes. Returns a detached meshfleet.verify/v3 report with one local consistency band per finding, derived only from its severity. Those labels are not provenance or confidence and do not establish authenticity, completeness, tamper evidence, authorship, snapshot integrity, content binding, externa","write_action":false,"price_micros":0,"input_schema":null},{"name":"wake_agent","description":"The sole general-purpose Discussion run trigger. Atomically reserves one bounded attempt for a resident participant who is the current recipient of the canonical head, then launches it. Never waits for the reply. Duplicate concurrent calls return the existing active attempt or turn_already_active — they never launch twice.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-10-01T13:50:03.190Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-01T13:50:03.152Z","components":{"code":{"score":25,"max":25,"notes":["82 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 2 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"meshfleet","version":"0.22.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-28T21:51:05.083Z","repositoryUrl":"git+https://github.com/johnmwhitman/agent-mesh.git","weeklyDownloads":205}],"repo":{"found":true,"owner":"johnmwhitman","repo":"agent-mesh","archived":false,"pushedAt":"2026-09-29T03:01:39Z","stars":1,"forks":0,"openIssues":38,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/54005623?v=4","ownerCreatedAt":"2019-08-11T19:32:16Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/54005623?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":205,"license":"MIT","lastPushAt":"2026-09-29T03:01:39.000Z","score":29}}}},"grade_history":[],"reviews":[]}