streamable-httpMITupdated 3mo ago
Stop re-explaining yourself to Agents. Give it the right context, right when needed.
What can you do with Context Book?
Stop re-explaining yourself to Agents. Give it the right context, right when needed.
LLMs are stateless โ each conversation starts from scratch. ContextBook gives your AI tools a persistent, searchable knowledge library to draw the right context when they need it. No bloatware, no pre-loaded junk. Just the right information, at the right time.
How It Works
flowchart LR
AI["๐ค AI Clients\nClaude ยท Cursor ยท Windsurf"]
Browser["๐ Browser Dashboard"]
MCP["๐ MCP Server :8081\n8 Bearer-authenticated tools"]
API["โ๏ธ REST API :8080\nOAuth 2.0 ยท Books ยท Pages ยท Search"]
DB["๐๏ธ PostgreSQL\npgvector ยท pg_trgm"]
VOYAGE["๐ง Voyage AI\nvoyage-4 (1024-dim)"]
AI -- "MCP ยท Bearer Token" --> MCP
Browser -- "Session ยท HTTP JSON" --> API
MCP --- DB
API --- DB
API -- "OAuth 2.0 PKCE" --> AI
DB --- VOYAGE
Two Go binaries share a PostgreSQL database:
- API server (
cmd/api) โ the control plane: user login, OAuth 2.0, dashboard, book/page CRUD - MCP server (
cmd/mcp) โ the data plane: 8 MCP tools for AI agents, protected by Bearer tokens
MCP Tools
All tools require a valid Bearer token and are scoped to the authenticated user.
| Tool | Description |
|---|---|
book_create_or_update |
Create a Book or update its metadata |
book_list |
Paginated list of Book metadata |
book_get |
Retrieve all pages of a Book |
page_insert |
Push an atomic page into a Book; embeds immediately |
page_update |
Replace a page's content; re-embeds |
page_delete |
Remove a page (indices not re-numbered) |
page_search |
Semantic search across all Books |
readme |
Returns the usage guide (call once per session) |
Quick Start
Prerequisites
1. Set up the database
CREATE DATABASE contextbook_db;
\c contextbook_db
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
Migrations run automatically on API server startup.
2. Configure environment
cp .env.example backend/.env
# Edit backend/.env โ set DATABASE_URL, API_KEY_SALT, VOYAGE_API_KEY
3. Run the backend
cd backend
go run ./cmd/api/main.go # API + dashboard (:8080)
go run ./cmd/mcp/main.go # MCP server (:8081)
4. Run the frontend (optional)
cd frontend
npm install && npm run dev # Vite dev server on :5173
5. Connect an AI client
For Cursor (.cursor/mcp.json):
{
"mcpServers": {
"contextbook": {
"url": "http://localhost:8081/mcp"
}
}
}
For any MCP-compatible client, point the server URL to http://localhost:8081/mcp.
Documentation
- Backend README โ API routes, auth flows, database schema, MCP tools, configuration
- Frontend README โ components, routing, design system, development setup
- Architecture โ full system overview with Mermaid diagrams
Project Structure
context-book/
โโโ backend/
โ โโโ cmd/api/main.go REST API + auth server
โ โโโ cmd/mcp/main.go MCP tool server
โ โโโ internal/
โ โโโ api/ REST handlers + routes
โ โโโ auth/ OAuth 2.0 PKCE, sessions, SSO
โ โโโ context/ Book/Page business logic
โ โโโ db/ pgx queries + migrations
โ โโโ embedding/ Voyage AI client
โ โโโ logger/ slog + HTTP access logging
โ โโโ mcp/ 8 MCP tool handlers
โโโ frontend/ React 19 + Vite + TypeScript SPA
โ โโโ src/
โ โโโ App.tsx Router + app shell
โ โโโ lib/api.ts HTTP client
โ โโโ components/ UI components
โโโ Dockerfile API server container
โโโ Dockerfile.mcp MCP server container
โโโ go.work Go workspace
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes
- Ensure the backend compiles (
cd backend && go build ./cmd/api ./cmd/mcp) - Ensure the frontend builds (
cd frontend && npm run build) - Commit and push
- Open a Pull Request
License
MIT โ see the LICENSE file for details.
Install
Add Context Book to your client. Pick the one you use.
claude mcp add --transport http context-book https://context-book-mcp-production.up.railway.appcodex mcp add context-book --url https://context-book-mcp-production.up.railway.app{
"mcpServers": {
"context-book": {
"url": "https://context-book-mcp-production.up.railway.app"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"context-book": {
"type": "http",
"url": "https://context-book-mcp-production.up.railway.app"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"context-book": {
"url": "https://context-book-mcp-production.up.railway.app"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"context-book": {
"serverUrl": "https://context-book-mcp-production.up.railway.app"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance22/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 86 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 1.0.2Latest | May 17, 2026 |
| 1.0.1 | May 17, 2026 |
| 1.0.0 | May 17, 2026 |