内存搜索服务

Arra Oracle是一种本地内存和搜索层,支持通过HTTP、MCP、CLI和插件等多种方式访问和搜索存储在SQLite中的笔记和文本文件。

  • by Soul-Brews-Studio
  • TypeScript
  • 本地部署
  • 90 星标
  • 更新于
在 GitHub 查看 Soul-Brews-Studio/oracle-v2

使用说明

Arra Oracle V3——Docker首创MCP内存+搜索

— Vercel快速入门

Docker运行→ arra mine ~/notes → 打开UI→ 搜索你的记忆。

Arra-Oracle是Oracle家族的本地存储和搜索层。它存储您的 SQLite中的注释,使用支持FTS/矢量的API进行搜索,并公开相同的内容 通过HTTP、MCP、 arra CLI、插件和Studio UI。

快速入门:Docker是主要路径

你只需要Docker, curl,以及一个笔记文件夹。此路径启动HTTP 服务器,矿山 ~/notes,打开内置UI,并执行第一次搜索。 不需要本地Bun安装、API密钥、模式选择或矢量服务。

1.运行Arra Oracle

export ARRA_PORT="${ARRA_PORT:-47778}"
export ARRA_URL="http://127.0.0.1:${ARRA_PORT}"
export ARRA_CONTAINER="${ARRA_CONTAINER:-arra-oracle}"
export ARRA_VOLUME="${ARRA_VOLUME:-arra-oracle-data}"
export ARRA_NOTES_DIR="${ARRA_NOTES_DIR:-$HOME/notes}"

mkdir -p "$ARRA_NOTES_DIR"
docker volume create "$ARRA_VOLUME" >/dev/null

docker run --rm -d --name "$ARRA_CONTAINER" \
  -p "${ARRA_PORT}:47778" \
  -v "${ARRA_VOLUME}:/data" \
  -v "${ARRA_NOTES_DIR}:${ARRA_NOTES_DIR}:ro" \
  ghcr.io/soul-brews-studio/arra-oracle-v3:http

until curl -sf "${ARRA_URL}/api/health" >/dev/null; do sleep 1; done
echo "Arra Oracle is ready: ${ARRA_URL}"

中频端口 47778 忙,快跑 export ARRA_PORT=47878 第一。如果你的笔记还活着 其他地方,设置 ARRA_NOTES_DIR=/path/to/notes 之前 docker run.

2.挖掘你的笔记

使用运行容器中捆绑的CLI,以便摄入写入相同的内容 Docker卷作为服务器:

arra() {
  docker exec "$ARRA_CONTAINER" bun dist-cli/index.js "$@"
}

arra mine ~/notes

重新 arra mine 是安全的:未更改的Markdown、MDX和文本文件 使用确定性ID跳过。如果你指出 ARRA_NOTES_DIR 在别处, 跑 arra mine "$ARRA_NOTES_DIR".

3.打开用户界面

在浏览器中打开简单模式:

echo "${ARRA_URL}/simple"

简单模式显示运行状况、保存/搜索操作以及高级曲面的链接。

4.搜索

使用UI搜索框,或者直接调用HTTP API:

curl -sfS "${ARRA_URL}/api/v1/search?q=runbook&mode=fts&limit=5"

对于有引文的有根据的答案:

curl -sfS "${ARRA_URL}/api/v1/ask" \
  -H 'content-type: application/json' \
  -d '{"q":"What did I write about runbooks?","limit":5,"llm":false}'

"llm": false 保持答案的提取性和局部性。

停止、重新启动或检查

curl -sf "${ARRA_URL}/api/health"
docker logs "$ARRA_CONTAINER"
docker stop "$ARRA_CONTAINER"

稍后重新运行 docker run 块。你的记忆留在 Docker卷命名方式 $ARRA_VOLUME.

使用Docker的MCP客户端

当桌面或代理需要Oracle MCP工具时,使用stdio映像。它可以共享 与HTTP服务器相同的Docker卷:

claude mcp add arra-oracle -- docker run --rm -i \
  -e ORACLE_LOG_TARGET=stderr \
  -v "${ARRA_VOLUME:-arra-oracle-data}:/data" \
  ghcr.io/soul-brews-studio/arra-oracle-v3:stdio

claude mcp list

MCP界面包括Oracle搜索、阅读、学习、回顾、简介、研究 注释、跟踪和工具目录功能。

什么船

区域 它给你什么
Docker HTTP镜像 端口上的本地服务器长时间运行 47778 其中包含SQLite数据 /data.
arra mine 文件夹的第一个摄取路径 .md, .mdx,以及 .txt 笔记。
简单模式UI 浏览器入口点 /simple 健康、保存和搜索。
HTTP API /api/v1/search, /api/v1/ask, /api/v1/learn、矢量状态、插件、菜单和MCP工具发现。
MCP服务器 用于Claude、Codex、Docker MCP Toolkit和代理车队的Stdio工具服务器。
内存契约 置信度排序检索、可逆取代历史、来源和租户范围的读/写。
插件 CLI命令、API/菜单行、MCP工具、sidecars、导出和生命周期挂钩的统一清单。
边缘/前端 Cloudflare Worker形状、Vercel Studio代理、React/Tauri Studio和画布表面。

建筑概览

Notes / agents / browsers / MCP clients
        │
        ├── Docker HTTP: ghcr.io/...:http on :47778
        ├── Docker stdio MCP: ghcr.io/...:stdio
        ├── CLI: arra mine/search/learn/export
        └── Studio and Simple Mode UI
                  │
        Elysia routes + MCP tools + plugin registry
                  │
        SQLite + FTS + optional vector stores + local vault files

设计目标是一个带有薄型适配器的内存核。CLI、HTTP、MCP、插件, canvas和web/桌面表面重用共享契约,而不是复制 商业逻辑。

源代码开发路径

仅在编辑Arra Oracle本身时使用本地签出:

git clone https://github.com/Soul-Brews-Studio/arra-oracle-v3.git
cd arra-oracle-v3
bun install
bunx tsc --noEmit
bun run server

然后打开 http://localhost:47778/simple 或致电 http://localhost:47778/api/v1/search?q=oracle&mode=fts.

PR前的有用检查:

bunx tsc --noEmit
bun test tests/http/<cluster>/
bun test tests/docs/link-checker.test.ts

工作目标 alpha;切勿直接推送或合并到 main.保持来源,测试, 以及250行或以下的文档文件。

更多文档

许可证

Arra Oracle V3根据BUSL-1.1获得许可。看 许可证.

致谢

灵感源自 克劳德·梅 通过亚历克斯 Newman——流程管理器模式、工人服务架构和钩子系统 概念。