关于 Context Book
Context Book 为 AI 工具提供可搜索的持久化知识库,适用于希望 Agent 按需获取上下文的团队。它通过书籍和页面组织内容,并支持语义搜索。
主要功能
- 01持久化书籍与页面
- 02跨书籍语义搜索
- 03创建、更新和删除页面
- 04Bearer 令牌认证
- 05REST API 与仪表板
适用场景
- 01保存 Agent 后续可检索的项目背景
- 02按主题组织并查找参考内容
MCP 相关
MCP 服务提供 8 个需要 Bearer 令牌的工具,用于管理书籍和页面、搜索内容及读取使用指南。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
服务地址
https://context-book-mcp-production.up.railway.app一键复制安装命令
Claude CodeTerminal
claude mcp add --transport http context-book https://context-book-mcp-production.up.railway.appCursor.cursor/mcp.json
{"mcpServers":{"context-book":{"type":"http","url":"https://context-book-mcp-production.up.railway.app"}}}在 Cursor 中打开VS Code.vscode/mcp.json
{"servers":{"context-book":{"type":"http","url":"https://context-book-mcp-production.up.railway.app"}}}在 VS Code 中打开Claude Desktopclaude_desktop_config.json
{"mcpServers":{"context-book":{"type":"http","url":"https://context-book-mcp-production.up.railway.app"}}}Windsurf~/.codeium/windsurf/mcp_config.json
{"mcpServers":{"context-book":{"serverUrl":"https://context-book-mcp-production.up.railway.app"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
别再反复向 Agent 解释。及时为它提供正确的上下文。
大模型没有状态——每次对话都从头开始。ContextBook 为你的 AI 工具提供一个持久、可搜索的知识库,让它们在需要时获取正确的上下文。没有臃肿软件,也没有预加载的杂项。只在恰当的时间提供恰当的信息。
工作原理
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
两个 Go 二进制程序共用一个 PostgreSQL 数据库:
- API 服务(
cmd/api)——控制平面:用户登录、OAuth 2.0、仪表盘、书籍/页面 CRUD - MCP 服务(
cmd/mcp)——数据平面:为 AI Agent 提供 8 个 MCP 工具,并通过 Bearer 令牌进行保护
MCP 工具
所有工具都需要有效的 Bearer 令牌,并且仅限已通过身份验证的用户使用。
| 工具 | 说明 |
|---|---|
book_create_or_update | 创建书籍或更新其元数据 |
book_list | 分页列出书籍元数据 |
book_get | 获取一本书的所有页面 |
page_insert | 向书籍中推送一个原子页面;立即生成嵌入向量 |
page_update | 替换页面内容;重新生成嵌入向量 |
page_delete | 移除页面(不重新编号索引) |
page_search | 跨所有书籍进行语义搜索 |
readme | 返回使用指南(每个会话调用一次) |
快速开始
前置要求
1. 设置数据库
CREATE DATABASE contextbook_db;
\c contextbook_db
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
API 服务启动时会自动运行迁移。
2. 配置环境
cp .env.example backend/.env
# Edit backend/.env — set DATABASE_URL, API_KEY_SALT, VOYAGE_API_KEY
3. 运行后端
cd backend
go run ./cmd/api/main.go # API + dashboard (:8080)
go run ./cmd/mcp/main.go # MCP server (:8081)
4. 运行前端(可选)
cd frontend
npm install && npm run dev # Vite dev server on :5173
5. 连接 AI 客户端
Cursor(.cursor/mcp.json)配置如下:
{
"mcpServers": {
"contextbook": {
"url": "http://localhost:8081/mcp"
}
}
}
对于任何兼容 MCP 的客户端,将服务 URL 指向 http://localhost:8081/mcp。
文档
项目结构
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
参与贡献
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/my-feature) - 进行修改
- 确保后端可以编译(
cd backend && go build ./cmd/api ./cmd/mcp) - 确保前端可以构建(
cd frontend && npm run build) - 提交并推送
- 创建 Pull Request
许可证
MIT — 详情请参阅 LICENSE 文件。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。