mcp-blackboard
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:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
mcp-blackboardCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- 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
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



