Skip to main content
Glama

Bcontext

The shared memory your AI agents read and write.

Tasks, decisions and docs in one workspace that Claude Code, Cursor, Codex and your teammates all work from, over MCP. Self-hosted, open source, one docker compose up.

CI License: AGPL-3.0 MCP Self-hosted

Quickstart · Install with an agent · Self-hosting · Connect an agent · Configuration

Why

Your team already works with agents, and every session starts from zero. What one agent decided on Monday lives in a chat nobody will reopen. Memory is locked inside each tool, per person. The next agent, on someone else's machine and a different model, contradicts last week's decision or redoes the work.

Bcontext is the place that work lands. An agent starts by asking for a brief: what is unblocked, which decisions are open, what changed since it last looked. It picks a task, does the work and closes it with a ## Result the next agent or person builds on. People see the same graph in the web app and steer it: review what agents wrote, fix it, decide.

flowchart LR
  subgraph Agents
    CC[Claude Code]
    CU[Cursor]
    CX[Codex / any MCP client]
  end
  subgraph Bcontext
    MCP["/mcp/org/workspace<br/>OAuth 2.1 · scoped tokens"]
    G[("Workspace graph<br/>tasks · decisions · docs<br/>meetings · bugs · ADRs")]
    R[Hybrid search<br/>pgvector + keyword]
  end
  W[Web app<br/>for the humans]
  CC & CU & CX <--> MCP
  MCP <--> G
  G --- R
  W <--> G

Related MCP server: contextos-memory

What a session looks like

you   ▸ Pick up the next payments task.

agent ▸ brief()
        3 unblocked · 1 open decision · 7 changes since yesterday
        ↳ "Retry failed webhook deliveries with backoff"   todo · high
        ↳ decision "Idempotency keys on every payment write" was accepted

agent ▸ nodes_write(update, status: in_progress)
        … writes the code, honouring the idempotency decision …
agent ▸ nodes_write(append, "## Result")
        Retries use pg-boss with exponential backoff (5 attempts, max 1h).
        Dead letters land in the Ops view. PR #142.

Tomorrow a teammate's agent, in another editor, starts from that result instead of from scratch.

Features

🧠 A typed knowledge graph Tasks, decisions, ADRs, docs, meetings, bugs, entities, datasets and goals, with typed links (depends_on, supersedes…), hierarchical tags, subtasks and a status lifecycle. Every ## heading is an addressable block (/n/<id>#result), so agents edit one section without clobbering another.

🔌 An MCP server built for agents Per-workspace endpoints, OAuth 2.1 or scoped agent tokens, and a tools/list filtered to what each caller may do. Optimistic concurrency on writes, a change feed to re-sync cheaply, and other MCP servers proxied behind capability_search / capability_call.

🔎 Retrieval that cites Hybrid pgvector + keyword search with one-hop graph expansion. Answers cite the nodes they came from. Works with no AI key at all (keyword search), with the Vercel AI Gateway, or with any OpenAI-compatible server such as Ollama or LiteLLM.

👥 Built for teams, with an audit trail Organizations, workspaces, invitations and per-principal grants. Every write records who made it, person or agent, in an append-only log with a hash chain. A collaborative editor for the humans.

🤖 Nexos: the workspace's own agents Agents that live inside a workspace with a shared brain: an inbox, a heartbeat, a monthly budget and a chat. They triage, flag contradictions between decisions and answer questions about the workspace.

🔗 Integrations Native connectors for GitHub, Slack, Linear and Notion, plus a long tail through a self-hosted Nango. What they bring in is extracted into candidates in a review inbox, accepted by a person or auto-accepted above a confidence threshold you set.

Screenshots

Quickstart

Let your agent install it

Paste this into Claude Code, Codex, Cursor or any agent with a shell:

Install Bcontext (https://github.com/Ibonarambarri/bcontext) on this machine.
Follow https://raw.githubusercontent.com/Ibonarambarri/bcontext/main/docs/install-with-an-agent.md
step by step: clone or update the repo, configure it, start it, wait until it
is healthy, then connect yourself to my workspace over MCP. Ask me only for
what you cannot decide.

It checks Docker, asks where it should run and your email, writes the configuration, starts the stack and, once you have created your account, connects itself over MCP. The steps it follows are in docs/install-with-an-agent.md.

Or by hand

You need Docker with Compose v2, openssl and about 4 GB of free RAM to build (the running stack uses under 1 GB).

git clone https://github.com/Ibonarambarri/bcontext.git && cd bcontext
./setup.sh --domain localhost --admin-email you@example.com -y
docker compose up -d

Open http://localhost, create your account and organization at /start, and you're in. The first up builds the images from source when no release image is available, which takes a few minutes. Port 80 taken? Add --http-port 8080 to setup.sh.

On a server with a real domain, Caddy gets the HTTPS certificate automatically: see docs/self-hosting.md for DNS, email, AI keys, backups and updates.

Connect your agent

In the web app, Agents → Add agent gives you a ready-to-paste snippet for each client. For Claude Code by hand:

claude mcp add --transport http bcontext https://your-host/mcp/<org>/<workspace>

Claude Code opens the browser to approve the connection (OAuth). For the plugin, which adds the working conventions as a skill and a /bcontext:brief command, and for Cursor, Codex and token auth, see docs/connect-agents.md.

Architecture

Service

What it runs

caddy

A single origin for everything: the web app, the API, /mcp and the Supabase gateway, with automatic HTTPS

web

The Next.js app (apps/web). It has no data of its own and calls the API over HTTP

api

REST, the MCP server and realtime WebSockets (apps/api)

worker

pg-boss queues: webhooks, connector syncs, Nexo runs, retention (same image as api)

migrate

One-shot: applies pending migrations, then exits; api and worker wait for it

db

Postgres 15 with pgvector (supabase/postgres)

auth, rest, storage, kong

Supabase Auth, PostgREST, Storage (files on a volume) and its gateway

errors (profile)

Optional error collector behind /admin/errors

studio, meta (profile)

Optional Supabase Studio on 127.0.0.1

apps/api            API, MCP server, worker, error collector, migrations (one image)
apps/web            Next.js web app
packages/contract   types and helpers both apps share
deploy/             Caddyfile, Supabase gateway and init SQL, migration runner
plugin/             Claude Code plugin: conventions skill and /bcontext:brief
docker-compose.yml  the self-hosted stack
setup.sh            writes .env with fresh secrets

Stack: TypeScript · Hono · Next.js 16 · React 19 · Postgres + pgvector · Supabase Auth/Storage · pg-boss · Vercel AI SDK · HeroUI · Caddy

Project status

Bcontext started as a commercial product and is now released as open source for anyone who wants to run it. It ran in production and works end to end, but it is maintained on a best-effort basis: issues and pull requests are welcome, and there are no response-time promises. Start with CONTRIBUTING.md. Agents working on the codebase, start with AGENTS.md.

License

GNU Affero General Public License v3.0 (AGPL-3.0-only). You can use, modify and self-host it freely. If you run a modified Bcontext as a network service, you must offer its source to its users.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Shared workspace your AI agents write to. CMMN case management with 184+ MCP tools: cases, tasks, event-driven CMMN workflows with sentries, persistent memory with semantic search, billing and invoicing. OAuth or token auth; cloud-hosted remote MCP endpoint.
    100
    23 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to persist and share durable memory — appending session logs with checkpoints and handoffs, claiming and completing tasks, and recording decision records — all stored as plain Markdown and JSONL files in a git repository. Everything written is full-text searchable, and the server speaks MCP so MCP-aware clients can plug in directly with zero vendor lock-in.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables a self-hosted AI workspace with persistent sessions, agent run/step execution logs, unified search across conversations and knowledge, and discovery/invocation of local and remote MCP tools.
    MIT