知识库服务器

Minerva是一个基于Rails 8 MCP协议的知识库服务器,为AI代理提供增强的推理能力和动态工具使用,通过RAG驱动的文档检索提升AI应用。

  • by jorgegorka
  • Ruby
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 jorgegorka/rails-mcp

使用说明

美耐华

Rails 8 MCP(模型上下文协议)服务器,为AI代理提供知识库。通过RAG支持的文档检索,增强推理和动态工具使用,提升您的人工智能应用程序。

特性

  • 多项目支持 --通过自动数据隔离和轻松切换,将您的知识库组织到单独的项目中
  • 文档管理 --通过web UI创建和组织markdown文档
  • PDF处理 --上传带有自动文本提取功能的PDF
  • 网站抓取 --从网页导入内容并抓取整个网站
  • RAG搜索 --基于pgvector嵌入的向量相似性搜索
  • MCP接口 --直接连接到Claude、Cursor或任何兼容MCP的AI代理
  • 驱动器CLI --基于Tmux的终端自动化,用于管理会话、运行命令和进程管理
  • 控制台UI --基于Web的终端会话查看器,具有实时输出、进程监控和会话管理功能

需求

安装

# Clone the repository
git clone https://github.com/your-org/minerva.git
cd minerva

# Install dependencies
bundle install

# Set up environment variables (optional, defaults work for local development)
export POSTGRES_USER=your_user
export POSTGRES_PASSWORD=your_password
export POSTGRES_HOST=127.0.0.1

# Set up database with pgvector
bin/rails db:prepare

# Pull the embedding model
ollama pull nomic-embed-text:v1.5

# Start the server
bin/dev

web界面将在 http://localhost:3000.

连接到AI代理

Minerva在以下位置暴露MCP端点 POST /mcp.配置您的AI代理以连接:

克劳德代码

添加到您的 ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "minerva": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

光标

添加到MCP设置中:

{
  "minerva": {
    "url": "http://localhost:3000/mcp"
  }
}

用法

  1. 创建项目 --设置一个项目来组织你的知识库(所有内容都按项目范围划分)
  2. 添加文档 --使用web UI创建markdown文档或上传PDF
  3. 废弃网站 --添加网站URL以自动导入其内容
  4. 组织 --使用类别来组织您的知识库
  5. 查询 --您的AI代理可以通过以下方式搜索和检索相关文档 DocumentSearch 工具

注: MCP终点位于 /mcp 在所有项目中全局提供文档,因此无论UI中哪个项目处于活动状态,您的AI代理都可以访问您的整个知识库。

驱动器CLI

Drive是一个基于tmux的终端自动化工具,用于管理会话、运行命令和监视进程。入口点: bin/drive.

关键命令:

命令 描述
drive session create NAME 创建新的tmux会话
drive session list 列出所有tmux会话
drive session kill NAME 终止tmux会话
drive run SESSION CMD 运行命令并等待完成
drive send SESSION TEXT 向会话发送原始按键
drive logs SESSION 捕获窗格输出
drive poll SESSION 等待与模式匹配的输出
drive fanout CMD 并行跨多个会话运行命令
drive proc list 列出具有过滤功能的进程
drive proc kill PID 按PID或名称终止进程
drive proc tree PID 显示流程树

控制台UI --web界面位于 /consoles 允许您查看tmux会话,监视正在运行的进程,并直接从浏览器发送命令。

发展

bin/dev                          # Start development server
bin/rails test                   # Run tests
bin/rubocop                      # Lint Ruby code
bin/brakeman --no-pager          # Security scan

建筑

  • 多项目范围界定 — Current.project 和 ProjectScoped 关注点提供每个项目的自动数据隔离
  • PostgreSQL 使用pgvector进行矢量存储(768个dim嵌入,HNSW索引)
  • 实心队列/缓存/电缆 用于后台作业和缓存(不需要Redis)
  • 传动轴+进口地图轨道 对于资产(不需要Node.js)
  • 驱动器CLI --Tmux自动化层 lib/drive/ web控制台位于 /consoles
  • 卡莫尔 用于部署

贡献者

许可证

麻省理工学院