{"name":"io.github.octoryn/octopus-blackboard","slug":"octoryn-octopus-blackboard","title":null,"description":"Shared memory & coordination for AI coding agents — a blackboard, not an orchestrator.","url":"https://mcp.market/server/octoryn-octopus-blackboard","rating":null,"grade":"A","score":86,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":26,"stars":7,"forks":2,"downloads_week":33,"last_push_at":"2026-07-15T12:14:38.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/octoryn/octopus-blackboard","website":null,"version":"0.3.1","remotes":[],"packages":[{"registryType":"npm","identifier":"octopus-blackboard","version":"0.3.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Identity the server writes under, e.g. \"cursor\" or \"claude-code\". Defaults to \"anon\".","name":"OCTOBOARD_AGENT"},{"description":"Explicit board directory. Omitted → the server discovers the nearest .octoboard/ by walking up from the working directory.","name":"OCTOBOARD_DIR"}]}],"tools":[{"name":"board_assign","description":"Assign a task to an agent and notify them — records the assignee AND leaves a 'please look at task #N' message in that agent's inbox. Passive: the board records the ask; the agent reads its inbox and decides to act. Never launches the agent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_attribute","description":"Record a single attribution (commit + optional file) to a human or AI actor.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_blame","description":"Blame → narrative: trace a file line back to the session that introduced it and surface that session's other work, decisions, and handoffs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_check","description":"Governance gate: assert policy over commits and report pass/fail plus violations. Read-only — reports, does not block. Use in CI to keep unreviewed AI work off a branch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_claim","description":"Claim a task by key so other agents know you own it. If another agent already holds it, the response reports the conflict (the board records but does not block).","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_decision","description":"Record a decision and its rationale so other agents see what was decided and why.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_evidence","description":"Attach evidence (file path, URL, log, test run) supporting some work.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_explain","description":"Explain a commit: its AI attribution, reviews, and related decisions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_export","description":"Export a portable attribution bundle (attributions, reviews, sessions, decisions) for a commit range, so attribution survives push/PR into a team board or CI.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_file_changed","description":"Record that you touched a file. If a task key is given, the response reports files other agents already changed for that task (conflict awareness).","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_handoff","description":"Hand off work to another agent with a summary of the state at handoff.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_handoffs","description":"Handoffs left FOR you — the work another agent passed to you, with context and open questions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_heartbeat","description":"Stamp the active session as alive (real-time liveness, so other agents can tell active from stale).","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_import","description":"Import an attribution bundle (as produced by board_export) into this board. Idempotent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_inbox","description":"Read what's waiting for you: messages (addressed or broadcast) and handoffs left for you.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_ingest","description":"Ingest a CLI transcript's content into the active session (file edits, decisions, notes). Format is one of:","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_link","description":"Attribute a Git commit's files to the current session (who actually produced the code). Reads Git; never rewrites history. Optionally writes an additive git note.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_message","description":"Leave a message for another agent (or broadcast with to='all').","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_note","description":"Broadcast a free-form status note to the board.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_progress","description":"Report task progress 0–100 (moves it to in-progress, or done at 100). Use this from an agent as it works a task so the kanban shows a live progress bar.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_prune","description":"Retention: delete messages/evidence/file-change rows created before an ISO time. The audit timeline is never pruned.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_redact","description":"Hide a timeline entry's content at the read layer (the hash chain stays valid — this is not cryptographic erasure).","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_report","description":"Accountability scorecard: review coverage, AI/human ratio, per-agent breakdown, session and risk counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_review","description":"Record who reviewed a commit and the outcome (human or AI reviewer).","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_risk","description":"Flag an open risk the next agent should know before acting.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_sign","description":"Sign the current timeline head with the active session's key (attests board state through the head seq).","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_since","description":"Subscribe primitive: poll for timeline events after a given seq. Returns the new head seq and events (optionally filtered to those relevant to an agent). Call board_status first to get a starting seq.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_status","description":"Read the board: active agents, open tasks and who holds them, unread messages, open risks, recent history. Call this before starting work to see what other agents are doing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_task","description":"Get a task's full kanban card (status, progress, assignees, active-agent count, impacted files, linked risks) by key or number (#145).","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_task_define","description":"Create or update a task's kanban fields: title, description (what it is), project, impact (change surface), and risk level. New keys get a stable task number.","write_action":true,"price_micros":0,"input_schema":null},{"name":"board_tasks","description":"List all tasks as kanban cards (for a board/kanban view).","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_timeline","description":"Read the append-only, hash-chained history of everything that happened on the board.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_trailers","description":"Git trailer lines encoding a commit's attribution, for embedding in a commit message.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_trust","description":"Show signature trust: which sessions have signed the timeline and whether each signature is valid and still current.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_unreviewed","description":"List AI-produced commits that have never been reviewed by a human.","write_action":false,"price_micros":0,"input_schema":null},{"name":"board_who","description":"Who changed a file: Git authors, AI sessions that touched it, and commit attributions. Pass a line number to trace which session introduced that line.","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_start","description":"Start an execution session. Subsequent writes and links attribute to it. Captures machine, working directory, git branch, and repository.","write_action":false,"price_micros":0,"input_schema":null},{"name":"session_stop","description":"Close the active session (or a specific one).","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":86,"grade":"A","scanned_at":"2026-09-26T11:37:38.462Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T11:37:38.538Z","components":{"code":{"score":25,"max":25,"notes":["29 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":12,"max":15,"notes":["last push 73 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"octopus-blackboard","version":"0.3.1","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-07-03T11:23:09.839Z","repositoryUrl":"git+https://github.com/octoryn/octopus-blackboard.git","weeklyDownloads":33}],"repo":{"found":true,"owner":"octoryn","repo":"octopus-blackboard","archived":false,"pushedAt":"2026-07-15T12:14:38Z","stars":7,"forks":2,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/298323267?v=4","ownerCreatedAt":"2026-06-30T14:42:42Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/298323267?v=4&s=128","source":"github"},"presence":{"stars":7,"forks":2,"downloadsWeek":33,"license":"Apache-2.0","lastPushAt":"2026-07-15T12:14:38.000Z","score":26}}}},"grade_history":[],"reviews":[]}