@ragrabbit/mcp

@ragrabbit/mcp

访问 RagRabbit 开源 AI 站点搜索索引的任何文档。

内容获取
AI内容生成
访问服务器

README

<h1 style="font-weight:normal"> <a href="https://ragrabbit.com"> <img src="./apps/saas/public/logo.svg" alt="RagRabbit" width=35> </a>  RagRabbit  <a href="https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmadarco%2Fragrabbit&env=OPENAI_API_KEY,AUTH_USERNAME,AUTH_PASSWORD,AUTH_SECRET&envDescription=Get%20an%20OpenAI%20Api%20Key%20and%20set%20AUTH_USERNAME%20and%20AUTH_PASSWORD%20to%20the%20desired%20credentials%20to%20secure%20the%20admin%20section.%20Also%20be%20sure%20to%20enable%20the%20Postgres%20database%20integration&envLink=https%3A%2F%2Fplatform.openai.com%2Fapi-keys&demo-title=RagRabbit%20-%20AI%20Site%20Search%20and%20LLM.txt&demo-description=Site%20AI%20Search%20and%20LLM.txt%20in%20Minutes%2C%20Open%20Source%20with%201%20Click%20Deploy%20on%20Vercel.&demo-url=https%3A%2F%2Fragrabbit.vercel.app%2F&demo-image=https%3A%2F%2Fragrabbit.vercel.app%2Fopengraph-image.png&stores=%5B%7B%22type%22%3A%22postgres%22%7D%5D&root-directory=apps/saas"><img src="https://img.shields.io/badge/deploy%20on-vercel-black.svg"></a> <a href="https://github.com/madarco/ragrabbit/blob/master/license.md"><img src=https://img.shields.io/github/license/madarco/ragrabbit.svg?colorB=ff0000></a> <a href="https://www.npmjs.com/package/@ragrabbit/mcp"><img src="https://img.shields.io/npm/d18m/%40ragrabbit%2Fmcp?label=npm" /></a> <img src="https://img.shields.io/github/stars/madarco/ragrabbit" /> </h1>

自托管站点 AI 搜索,LLMs.txt,MCP 服务器,可抓取您的内容。在 Vercel 上一键部署。 <br>

<p align="center">

RagRabbit </p>

Deploy with Vercel

工作原理

RagRabbit 是一个 Next.js Turborepo 应用程序,它使用 LlamaindexpgVector

特性

  • 💬 聊天小部件:可嵌入的 AI 聊天代理和即时搜索
  • 🕸️ 网站爬虫:使用 pgVector 和 PostgreSQL 抓取和索引页面
  • 📄 LLMs.txt 生成:完全可自定义,带有 ToC 重新排序
  • 🔌 MCP 服务器npx @ragrabbit/mcp 从 Claude Desktop 和 Cursor IDE 访问您的文档
  • 🛠️ 灵活:身份验证、开源、API 密钥访问
  • 🚀 轻松部署:在 Vercel 上一键设置

集成:

演示

查看 RagRabbit 演示页面

RagRabbit 演示

安装

要在 Vercel 上安装:

Deploy with Vercel

要求:

  • Node.js 20.x
  • 带有 pgVector 的 PostgreSQL
  • OpenAI API 密钥
  • (可选)Trigger.dev API 密钥

配置

设置以下环境变量:

  • OPENAI_API_KEY

对于用户名/密码登录:

  • ADMIN_USER
  • ADMIN_PASSWORD

对于电子邮件登录:

  • RESEND_AUTH=true
  • 要限制对这些电子邮件的访问:RESEND_ALLOWED_EMAILS="test@test.com,foo@bar.com"
  • 要不发送电子邮件,而是记录登录链接(在 Vercel 日志中):SIMULATE_EMAILS=true

有关完整列表,请参见 .env.example

如何使用

使用索引部分添加要索引的新 url/网站,可以是单个 url 或要递归抓取的网站:

RagRabbit 索引 RagRabbit 抓取模态框

然后启动 Job Runner(保持选项卡打开直到完成)

RagRabbit Job Runner

在 LLM.txt 部分,您可以预览生成的 LLM.txt 文件:

RagRabbit LLM.txt

然后,您可以使用以下代码段将小部件嵌入到您的网站中:

聊天按钮

在页面底部嵌入一个按钮:

<script src="https://<your deployed app>/widget.js"></script>

RagRabbit 嵌入小部件按钮

聊天小部件

在页面中的任意位置插入搜索输入:

RagRabbit 小部件

<script src="https://ragrabbit.com/widget.js?type=search"></script>
<ragrabbit-search></ragrabbit-search>

与 React.js 一起使用

"use client";

import Script from "next/script";

export function RagRabbitSearch() {
  return (
    <>
      <Script src="/widget.js?type=search" strategy="lazyOnload" />
      <style>{`
        ragrabbit-search .ragrabbit-search-input {
            padding: 6px 12px;
        }
      `}</style>
      <div className="ml-auto min-w-[300px] flex-1 sm:flex-initial">
        {/* @ts-ignore - Custom element will be mounted by external script */}
        <ragrabbit-search></ragrabbit-search>
      </div>
    </>
  );
}

MPC 服务器

MCP 服务器允许任何受支持的 AI 客户端使用语义搜索从您的文档中检索页面。

Claude Desktop

添加一个自定义 mcp 服务器,其中包含您的产品名称,以便 Claude AI 在查找有关它的信息时可以使用它。

claude_desktop_config.json 中(Claude -> 设置 -> 开发者 -> 编辑配置)

{
  "mcpServers": {
    "<name_of_your_documentation_no_spaces>": {
      "command": "npx",
      "args": ["@ragrabbit/mcp", "http://<RagRabbit install>/", "<name of your documentation>"]
    }
  }
}

在 Cursor IDE 中

转到 Cursor -> 设置 -> Cursor 设置 -> MCP

并添加一个类型为 command 的新 MCP,命令为:

npx @ragrabbit/mcp", "http://<RagRabbit install>/", "<name of your documentation>"

参数:

  • ragrabbit-url:(必需)您的 RagRabbit 实例的基本 URL,例如 https://my-ragrabbit.vercel.com/
  • name:(必需)文档搜索服务的自定义名称(默认为“RagRabbit”),以便 AI 知道在查找信息时使用它

配置选项

聊天按钮

您可以通过将以下参数添加到 widget.js 脚本标记来配置聊天按钮:

buttonText

<script src="https://ragrabbit.com/widget.js?buttonText=Ask%20AI"></script>

搜索小部件

您可以通过添加以下参数并使用 mountSearch 调用来配置搜索小部件:

searchPlaceholder

<div id="search-container"></div>
<script>
  window.mountSearch("search-container", { searchPlaceholder: "Search documentation..." });
</script>

集成

Fumadocs

创建一个组件来替换搜索对话框:

pnpm add @ragrabbit/search-react
"use client";
import type { SharedProps } from "fumadocs-ui/components/dialog/search";
import { RagRabbitModal } from "@ragrabbit/search-react";

export default function SearchDialog({ open, onOpenChange }: SharedProps) {
  return <RagRabbitModal
    domain="http://localhost:3000/"
    open={open}
    onOpenChange={onOpenChange}
    />;
}

然后在 layout.tsx 中设置它:

<RootProvider
  search={{
    SearchDialog,
  }}
>
  ...
</RootProvider>

(可选)添加浮动聊天按钮:

"use client";
import { RagRabbitChatButton } from "@ragrabbit/search-react";

export default function ChatButton() {
  return <RagRabbitChatButton domain="http://localhost:3000/" />;
}

并将其添加到 layout.tsx

<body className="flex flex-col min-h-screen">
  <ChatButton />
  ...

开发

# 启动数据库(需要 Docker)
pnpm dev:utils # 启动带有 pgvector 的 postgresql、Storybook 和 Drizzle ORM Studio

# 启动应用程序
cd apps/saas
pnpm dev

目录结构:

RagRabbit 是一个带有 Turborepo 的 monorepo,一个 Next.js 应用程序和一个具有独立包的模块化设计。

apps/
├── docs -> 文档站点
├── saas -> 主应用程序
└── web -> 网站
packages/
├── db -> 带有 Drizzle ORM 的数据库
├── auth -> 带有 Auth.js 的身份验证
├── core -> 共享实用程序
├── design -> 设计系统
├── rag -> 带有 LlamaIndexTS 的 LLM 和 RAG 包
├── jobs -> 带有 Trigger.dev 的作业运行器
└── storybook -> 一个 Next.js Storybook 应用程序
.cursorrules -> 使用所有位置微调的 Cursor 规则,以使用 monorepo

作者

Marco D'Alia - @madarco - Linkedin

许可证

MIT

推荐服务器

mult-fetch-mcp-server

mult-fetch-mcp-server

一个多功能的、符合 MCP 规范的网页内容抓取工具,支持多种模式(浏览器/Node)、格式(HTML/JSON/Markdown/文本)和智能代理检测,并提供双语界面(英语/中文)。

精选
本地
AIO-MCP Server

AIO-MCP Server

🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。

精选
本地
Knowledge Graph Memory Server

Knowledge Graph Memory Server

为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。

精选
本地
Hyperbrowser

Hyperbrowser

欢迎来到 Hyperbrowser,人工智能的互联网。Hyperbrowser 是下一代平台,旨在增强人工智能代理的能力,并实现轻松、可扩展的浏览器自动化。它专为人工智能开发者打造,消除了本地基础设施和性能瓶颈带来的麻烦,让您能够:

精选
本地
https://github.com/Streen9/react-mcp

https://github.com/Streen9/react-mcp

react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。

精选
本地
any-chat-completions-mcp

any-chat-completions-mcp

将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。

精选
Exa MCP Server

Exa MCP Server

一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。

精选
AI 图像生成服务

AI 图像生成服务

可以用于 Cursor 集成 MCP 服务器。

精选
mcp-perplexity

mcp-perplexity

Perplexity API 的 MCP 服务器。

精选
MCP Web Research Server

MCP Web Research Server

一个模型上下文协议服务器,使 Claude 能够通过集成 Google 搜索、提取网页内容和捕获屏幕截图来进行网络研究。

精选