mcp-blackboard

by peekwez

328 downloads Not rated yet MIT license
GitHub

About

An MCP server for managing context and memory for a multi-agent task execution based on agentic directed acyclic graph

Details

License
MIT license

Explore

- Unified memory for agent context across workflows
- Filesystem abstraction via fsspec with optional drivers (S3, Azure Blob, GCS, etc.)
- Real‑time updates through Server‑Sent Events (SSE)
- Pluggable house‑keeping scheduler for pruning expired keys
- Container‑ready with deterministic builds and a slim Docker image (<90 MB)

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name mcp-blackboard
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

``bash
git clone https://github.com/your‑org/mcp-blackboard.git
cd mcp-blackboard

uv venv
uv sync

All settings are environment‑driven:

| Variable | Purpose |
| ------------------------------------------------- | ---------------------------------- |
|
OPENAI_API_KEY | Embeddings / LLM calls (optional) |
|
MCP_TRANSPORT | Event transport (sse or poll) |
|
REDIS_HOST, REDIS_PORT, REDIS_DB | Redis connection |
|
AZURE_STORAGE_ACCOUNT / AWS_ACCESS_KEY_ID / … | Credentials for remote filesystems |

_(see samples/env-sample.txt` for the full list)_

---

The following tools are available in mcp-blackboard:

- save_plan(plan_id: str, plan: dict | str) -> str
Save a plan to the shared state.

- mark_plan_as_completed(plan_id: str, step_id: str) -> str
Mark a plan step as completed in the shared state.

- save_result(plan_id: str, agent_name: str, step_id: str, description: str, result: str | dict) -> str
Save a result to the shared state.

- save_context_description(plan_id: str, file_path_or_url: str, description: str) -> str
Write a context description to the shared state.

- get_blackboard(plan_id: str) -> str | dict | None
Fetch a blackboard entry for a plan.

- get_plan(plan_id: str) -> str | dict | None
Fetch a plan from the shared state.

- get_result(plan_id: str, agent_name: str, step_id: str) -> str | dict | None
Fetch a result from the shared state.

- get_context(file_path_or_url: str, use_cache: bool = True) -> str
Read and convert media content to Markdown format.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp-blackboard": {
            "mcp-blackboard": {
                "command": "uv",
                "args": [
                    "venv"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-blackboard": {
        "command": "uv",
        "args": [
            "venv"
        ]
    }
}

> Version 0.1.0 – A lightweight blackboard memory server for the Model Context Protocol (MCP)

mcp-blackboard exposes a simple HTTP/SSE interface that lets multiple AI agents store, and retrieve context and results—documents, embeddings, structured objects, and more—on a shared “blackboard”.

It is designed to be dropped into any MCP‑compatible workflow so your planner,
researcher, extractor, analyzer, writer, editor, and evaluator agents can collaborate without reinventing persistence.

<div align="center">



</div>

---

Available Tools

MCP Tools

The following tools are available in mcp-blackboard:

- save_plan(plan_id: str, plan: dict | str) -> str
Save a plan to the shared state.

- mark_plan_as_completed(plan_id: str, step_id: str) -> str
Mark a plan step as completed in the shared state.

- save_result(plan_id: str, agent_name: str, step_id: str, description: str, result: str | dict) -> str
Save a result to the shared state.

- save_context_description(plan_id: str, file_path_or_url: str, description: str) -> str
Write a context description to the shared state.

- get_blackboard(plan_id: str) -> str | dict | None
Fetch a blackboard entry for a plan.

- get_plan(plan_id: str) -> str | dict | None
Fetch a plan from the shared state.

- get_result(plan_id: str, agent_name: str, step_id: str) -> str | dict | None
Fetch a result from the shared state.

- get_context(file_path_or_url: str, use_cache: bool = True) -> str
Read and convert media content to Markdown format.

File Cache Management Scheduler

- remove_stale_files(max_age: int = 3600) -> None
Remove files older than the specified age from the cache directory.

✨ Highlights

| Capability | Why it matters |
| --------------------------- | ----------------------------------------------------------------------------------------------- |
| Unified memory | One source of truth for agent context—no need for ad‑hoc scratch files or transient Redis keys. |
| Filesystem abstraction | Built on fsspec with optional drivers for S3, Azure Blob, GCS, ABFS, SFTP, SMB, and more. |
| Real‑time updates | Server‑Sent Events (SSE) stream context changes to connected agents instantly. |
| House‑keeping scheduler | Pluggable cron jobs automatically prune expired keys and refresh embeddings. |
| Container‑ready | Deterministic builds via uv lockfile; the slim Docker image is <90 MB. |

---

🚀 Quick Start

1. Local dev environment

```bash
git clone https://github.com/your‑org/mcp-blackboard.git
cd mcp-blackboard

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.