草稿本
AI代理的知识管道应用程序。通过REST API和MCP分类收集笔记,并通过web UI查看。
特性
- REST API -来自AI代理(Claude Chrome扩展程序等)的推送/查询注释
- MCP服务器 -AI代理(OpenCode、Claude Desktop)使用数据的HTTP传输
- Web用户界面 -以青少年工程为主题的只读HTMX界面
- 全文搜索 -用于跨笔记搜索的MongoDB文本索引
- 分类 -按主题组织笔记(例如推特分析、内容创意)
快速开始
# Install dependencies
make deps
# Run development server (hot reload)
make dev
# Or build and run production
make build
./bin/server服务器启动时间http://localhost:7521
API终点
REST API
| 方法 | 端点 | 描述 |
|---|---|---|
| 职位 | /api/notes | 创建笔记 {category, content} |
| 得到 | /api/notes | 列出注释(查询: category, limit, offset) |
| 得到 | /api/notes/search | 搜索(查询: q, category, since, until) |
| 得到 | /api/notes/{id} | 获取单音符 |
| 删除 | /api/notes/{id} | 删除注释 |
| 得到 | /api/categories | 列出所有有计数的类别 |
MCP工具(通过 /mcp)
| 工具 | 说明 |
|---|---|
list_categories | 列出所有有计数的类别 |
get_notes | 按类别获取笔记 |
search_notes | 带日期过滤器的全文搜索 |
get_recent_notes | 获取所有类别的最新笔记 |
get_note | 按ID获取笔记 |
示例用法
推送便条(来自Claude Chrome扩展程序)
curl -X POST http://localhost:7521/api/notes \
-H "Content-Type: application/json" \
-d '{
"category": "twitter-analytics",
"content": "## Insight\n\nEngagement rate for threads is 3x higher than single tweets..."
}'搜索笔记
curl "http://localhost:7521/api/notes/search?q=engagement&category=twitter-analytics&since=2026-01-01"MCP配置(用于OpenCode)
添加到MCP配置中:
{
"mcpServers": {
"scratchpad": {
"url": "http://localhost:7521/mcp"
}
}
}配置
环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
MONGODB_URI | mongodb://oracle-vm:27017 | MongoDB连接字符串 |
PORT | 7521 | 服务器端口 |
部署
使用smdctl(systemd):
make build
smdctl run -f smdctl.yml
smdctl status scratchpad
smdctl logs -f scratchpad技术栈
- 转到1.22+ -后端
- MongoDB -带有文本索引的数据库
- 模板 -类型安全模板
- HTMX -网络交互性
- Pico CSS -造型(青少年工程主题)
- mcp走 -带HTTP传输的MCP服务器
- 记录搜索接收机 -Markdown渲染
