mcpField
C
Connapse

Connapse

本地服务
github.com/Destrayon记忆与知识20今天更新

关于 Connapse

Connapse 是可自托管的知识后端,为 AI Agent 提供可持久保存、可检索的记忆。它支持上传文档或接入 Amazon S3 与本地文件系统,并通过 MCP 工具、REST API 和命令行供 Agent 使用。

主要功能

  1. 01混合检索(向量加关键词)
  2. 02按容器隔离知识与检索配置
  3. 03接入 S3、MinIO 与本地文件系统
  4. 04运行时修改嵌入与分块配置
  5. 05MCP、REST API、命令行与 Web UI 四种入口
  6. 06基于角色的访问控制与审计日志

适用场景

  1. 01为 Agent 保存跨会话的研究资料
  2. 02让 Agent 整理并检索项目文档库
  3. 03将已有 S3 存储或本地目录纳入检索

MCP 相关

Connapse 内置 MCP 服务,向客户端暴露 11 个工具,包括容器管理、文件上传与删除、文件列表、文档读取和 search_knowledge 搜索。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"destrayon-connapse": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/destrayon/connapse:v0.3.2"
]
}
}
}
启动命令docker run -i --rm ghcr.io/destrayon/connapse:v0.3.2

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/destrayon/connapse:v0.3.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Connapse 徽标

别再让 AI 会话之间丢失上下文。为你的 Agent 提供持久、可搜索的记忆。

许可证:MIT .NET 构建 测试 欢迎提交 PR GitHub Issues GitHub Stars Connapse MCP 服务 Docker

Connapse 演示 — 上传 PDF,通过向量与关键词混合搜索进行查询,几秒钟内获取带来源引用的结果

你的 AI Agent 会在会话之间忘记一切。Connapse 可以解决这个问题。

每次开始新对话时,你的 AI Agent 都会从零开始——不记得之前的研究,无法访问你的文档,也没有积累的知识。Connapse 是一个开源知识后端,为 Agent 提供持久、可搜索的记忆。你可以上传文档,也可以指定现有的 Amazon S3 存储桶或本地文件系统。Agent 可通过 11 个 MCP 工具、REST API 或 CLI 查询并构建自己的研究语料库。容器隔离、混合搜索(向量 + 关键词)、可自托管且私密。使用 Docker,只需 60 秒即可部署。基于 .NET 10 构建。

🤖 AI Agent 集成 — Claude 通过 MCP 查询并构建你的知识库

Claude 通过 MCP 服务查询 Connapse 知识库 — 询问如何防止微服务中的级联故障,并获得引用 distributed-systems-notes.md 中断路器模式详情的结构化答案

AI Agent 通过 MCP 服务查询你的知识库,获取带有文档来源引用的结构化答案。

🎛️ 知识由你掌控,规则由你制定 — 无需重启即可运行时配置

Connapse 设置面板 — 切换嵌入提供方、调整分块参数,并在运行时配置搜索设置,无需重启

切换嵌入提供方、调整分块参数并配置搜索——所有操作均可在运行时完成,无需重启。


📦 快速开始

git clone https://github.com/Destrayon/Connapse.git && cd Connapse && docker-compose up -d
# Open http://localhost:5001
前置条件
使用 Docker Compose 运行
# Clone the repository
git clone https://github.com/Destrayon/Connapse.git
cd Connapse

# Set required auth environment variables (or use a .env file)
export [email protected]
export CONNAPSE_ADMIN_PASSWORD=YourSecurePassword123!
export Identity__Jwt__Secret=$(openssl rand -base64 64)

# Start all services (PostgreSQL, MinIO, Web App)
docker-compose up -d

# Open http://localhost:5001 — log in with the admin credentials above

首次运行将会:

  1. 拉取 Docker 镜像(约需 2-5 分钟)
  2. 使用 pgvector 扩展初始化 PostgreSQL,并运行 EF Core 迁移
  3. 创建 MinIO 存储桶
  4. 创建管理员账户(使用环境变量中的信息),并启动 Web 应用
开发环境设置
# Start infrastructure only (database + object storage)
docker-compose up -d postgres minio

# Run the web app locally
dotnet run --project src/Connapse.Web

# Run all tests
dotnet test

# Run just unit tests
dotnet test --filter "Category=Unit"
命令行客户端

connapse CLI 单独发布于 Destrayon/connapse-cli。

安装:

dotnet tool install -g Connapse.CLI
# or: download a binary from https://github.com/Destrayon/connapse-cli/releases/latest

开始使用:

connapse auth login --server https://localhost:5001
connapse --help
与 Claude(MCP)配合使用

Connapse 包含一个模型上下文协议(MCP)服务,可与 Claude 和任何 MCP 客户端集成。

设置:通过 Web UI 创建 Agent API 密钥(Settings → Agent API Keys),然后为你的客户端添加配置片段:

Claude Code(CLI)
claude mcp add connapse --transport streamable-http http://localhost:5001/mcp --header "X-Agent-Api-Key: YOUR_API_KEY"
Claude Desktop

添加到你的 claude_desktop_config.json:

{
  "mcpServers": {
    "connapse": {
      "transport": "streamable-http",
      "url": "http://localhost:5001/mcp",
      "headers": {
        "X-Agent-Api-Key": "YOUR_API_KEY"
      }
    }
  }
}
VS Code / Cursor

添加到你的 .vscode/settings.json(VS Code)或 Cursor MCP 配置中:

{
  "mcp": {
    "servers": {
      "connapse": {
        "transport": "streamable-http",
        "url": "http://localhost:5001/mcp",
        "headers": {
          "X-Agent-Api-Key": "${input:connapseApiKey}"
        }
      }
    }
  }
}

VS Code 会在首次使用时提示输入 API 密钥。

MCP 服务提供以下工具:

工具描述
container_create创建一个新容器,用于整理文件
container_list列出所有容器及其文档数量
container_delete删除一个容器
container_stats获取容器统计信息(文档、分块、存储、嵌入)
upload_file将单个文件上传到容器
bulk_upload一次操作最多上传 100 个文件
list_files列出指定路径下的文件和文件夹
get_document获取文档完整的解析后文本内容
delete_file从容器中删除单个文件
bulk_delete一次操作最多删除 100 个文件
search_knowledge在容器中进行语义、关键词或混合搜索

**完整参考:**请参阅 docs/mcp-tools.md,了解参数表、返回格式、错误情况和使用示例。

容器与来源:container_list 会为每个范围标记 managed 或 source。来源是 Connapse 以只读方式镜像的外部系统——可以搜索,但无法浏览,也无法写入。list_files 和所有写入工具只解析容器;传入来源 ID 时,它们会报告未找到。请参阅 docs/connectors.md。

提示词示例 — 可以向你的 Agent 提出什么请求
  • “创建一个名为 'project-research' 的容器,用来存放我的架构笔记”
  • “将下载文件夹中的所有 PDF 上传到 project-research 容器”
  • “在我的 project-research 容器中搜索有关速率限制策略的信息”
  • “列出我的 project-research 容器中 /notes/ 文件夹下的所有文件”
  • “获取 project-research 中 distributed-systems-notes.md 的完整文本”
  • “从 project-research 中删除 meeting-2026-03-14.md,并上传这个更新后的版本”
  • “删除 project-research 中 /drafts/ 文件夹下的所有文件”
  • “我的 project-research 容器中有多少个文档和分块?”
故障排除

localhost:5001 上的连接被拒绝 — Docker 未运行或端口冲突。检查 docker compose ps 和 docker compose logs web。

401 未授权 / API 密钥无法使用 — 在 Settings > Agent API Keys 中检查密钥。密钥仅在创建时显示一次。

Claude 中未显示工具 — 配置更改后重启 MCP 客户端。使用 curl http://localhost:5001/mcp 验证端点。

上传失败或超时 — 检查文件类型是否在允许列表中。最大文件大小取决于服务配置。

搜索没有结果 — 上传后,文档需要一些时间进行嵌入。检查容器统计信息以查看嵌入进度。


🚀 功能

  • 🗂️ 容器隔离的知识 — 每个项目都有自己的向量索引、存储连接器和搜索配置。不同项目、团队或客户端之间互不干扰。
  • 🔍 混合搜索 — 向量相似度 + 关键词全文搜索,并支持可配置的融合方式(凸组合、DBSF、AutoCut)。获取纯向量搜索会遗漏的结果。
  • 🧠 多提供商 AI — 可在 Ollama、OpenAI、Azure OpenAI 和 Anthropic 之间切换,用于嵌入和大模型;可在运行时按容器切换,无需重启。
  • 🔌 为现有存储编制索引 — 连接 MinIO、本地文件系统(实时文件监控)或 Amazon S3(IAM 身份验证)。文件仍保留在原处。
  • 🤖 4 种访问方式 — Web UI、REST API、CLI(原生二进制文件)和适用于 Claude 的 MCP 服务。为用户、脚本和 AI Agent 同样打造。
  • 🔐 企业级身份验证 — 多层级 RBAC(Cookie + OAuth 2.1 + PAT + JWT),并支持 AWS 身份关联。配置身份关联后,将按 AWS 权限对每位用户的搜索结果进行过滤(可选;在此之前不受限制)。
  • 🐳 一条命令即可部署 — 使用 Docker Compose,包含 PostgreSQL + pgvector、MinIO 和可选的 Ollama。内置结构化审计日志和速率限制。
查看全部功能
  • 📄 多格式数据导入:PDF、Office 文档、Markdown、纯文本 — 自动解析、分块和嵌入
  • ⚡ 实时处理:在后台导入数据,并通过 SignalR 实时更新进度
  • 🎛️ 运行时配置:按容器更改分块策略、嵌入模型和搜索设置,无需重启
  • ☁️ 云身份关联:支持 AWS IAM Identity Center (SAML) 身份关联。配置后,将按每位用户的 AWS 权限进行过滤(可选;在此之前不受限制)
  • 👥 仅限邀请访问:由管理员控制用户注册,支持四种角色(Admin / Editor / Viewer / Agent)
  • 🤖 Agent 管理:专用 Agent 实体,支持 API 密钥生命周期管理、权限范围限定和审计跟踪
  • 📋 审计日志:对上传、删除、容器操作和身份验证事件进行结构化审计记录
  • 📦 CLI 分发:提供原生独立二进制文件(Windows/Linux/macOS)和通过 NuGet 分发的 .NET 全局工具
  • 🔄 跨模型搜索:在项目中途切换嵌入模型 — 对旧向量自动从语义搜索回退到混合搜索

🎯 Connapse 适合哪些人?

  • AI Agent 开发者:需要一个 Agent 既能查询又能构建的知识后端 — 上传研究资料、整理语料库,并通过 MCP 或 REST API 搜索
  • .NET / Azure 团队:希望 RAG 平台适配现有技术栈和云身份体系
  • 企业团队:需要项目隔离的知识库,并具备完善的 RBAC 和审计跟踪
  • 厌倦了反复上传文件的所有人:让 Connapse 连接现有的 Amazon S3/文件系统存储
⚠️ 安全状态(v0.3.x)

此项目正处于积极开发阶段(v0.3.2),并正在迈向可用于生产环境。

v0.3.x 新增了云连接器架构、多提供商嵌入和大模型支持、云身份关联以及速率限制。

  • ✅ 身份验证和授权(v0.2.0)
  • ✅ 基于角色的访问控制(Admin / Editor / Viewer / Agent)
  • ✅ 审计日志
  • ✅ 云身份关联 — AWS IAM Identity Center (SAML)
  • ✅ 按用户搜索过滤(可选) — 配置 AWS 身份关联后启用(AWS S3 Access Grants,失败时拒绝);未配置的部署不会按用户过滤,参见 SECURITY.md
  • ✅ 速率限制 — 内置 ASP.NET Core 中间件,支持按用户和按 IP 设置策略(v0.3.2)
  • ⚠️ 在生产环境中设置强度足够的 Identity__Jwt__Secret — 参见部署指南

完整安全策略请参阅 SECURITY.md。


🏗️ 架构

┌──────────────────────────────────────────────────────────────────────┐
│                         Access Surfaces                              │
│  Web UI (Blazor)  │  REST API  │  CLI  │  MCP Server                │
└─────────────┬────────────────────────────────────────────────────────┘
              │
┌─────────────▼────────────────────────────────────────────────────────┐
│                       Core Services Layer                            │
│  Document Store  │  Vector Store  │  Search  │  Ingestion           │
└─────────────┬────────────────────────────────────────────────────────┘
              │
┌─────────────▼────────────────────────────────────────────────────────┐
│                        Connectors Layer                              │
│  MinIO  │  Filesystem  │  Amazon S3  │                               │
└─────────────┬────────────────────────────────────────────────────────┘
              │
┌─────────────▼────────────────────────────────────────────────────────┐
│                        Infrastructure                                │
│  PostgreSQL+pgvector  │  MinIO (S3)  │  Ollama (optional)           │
└──────────────────────────────────────────────────────────────────────┘
数据流:上传 → 搜索
[Upload] → [Parse] → [Chunk] → [Embed] → [Store] → [Searchable]
              ↓
         [Metadata]
              ↓
        [Document Store]

目标:上传后 30 秒内即可搜索。

关键技术:

  • 数据库:PostgreSQL 17 + pgvector,用于向量嵌入
  • 对象存储:托管存储抽象层 — 默认使用 MinIO(兼容 S3),可按部署覆盖
  • 后端:ASP.NET Core 10 Minimal APIs
  • 前端:Blazor Server(交互模式)
  • 嵌入:Ollama(默认)、OpenAI、Azure OpenAI(可配置)
  • 大模型:Ollama、OpenAI、Azure OpenAI、Anthropic(可配置)
  • 搜索:向量 + 关键词混合搜索,采用凸组合融合
  • 连接器:托管存储(默认使用 MinIO)、文件系统、Amazon S3

📚 文档


🗺️ 路线图

Connapse 尚未达到 1.0 版本。重大设计工作在 Discussions 中跟踪。

v0.1.0 — 基础(已完成)
  • ✅ 文档摄取管道(PDF、Office、Markdown、文本)
  • ✅ 混合搜索(向量 + 关键词,采用凸组合融合)
  • ✅ 带文件夹的容器文件浏览器
  • ✅ Web UI、REST API、CLI、MCP 服务
v0.2.0 — 安全与身份验证(已完成)
  • ✅ 三级身份验证:Cookie + 个人访问令牌 + JWT(HS256)
  • ✅ 基于角色的访问控制(Admin / Editor / Viewer / Agent)
  • ✅ 仅限邀请的用户注册(由管理员控制)
  • ✅ 一流的 Agent 实体,具备 API 密钥生命周期管理
  • ✅ Agent 管理 UI + PAT 管理 UI
  • ✅ 审计日志(上传、删除、容器操作)
  • ✅ CLI 身份验证命令(auth login、auth whoami、auth pat)
  • ✅ GitHub Actions 发布管道(原生二进制文件 + NuGet 工具)
  • ✅ 256 项测试通过(单元测试 + 集成测试)
v0.3.0 — 连接器架构(已完成)
  • ✅ 3 种连接器类型:托管存储(默认使用 MinIO,提供商抽象)、文件系统(FileSystemWatcher)、Amazon S3(仅限 IAM)
  • ↩️ Azure Blob Storage 连接器(托管身份)— 于 v0.3.0 发布,之后已移除(#476):未经验证,为了干净地重建而拆除
  • ✅ 按容器覆盖设置(分块、嵌入、搜索、上传)
  • ↩️ 云身份关联:Azure AD(OAuth2+PKCE)— 于 v0.3.0 发布,之后与 Azure Blob 连接器一同移除(#476)
  • ↩️ AWS IAM Identity Center(设备身份验证流程)— 于 v0.3.0 发布,之后已移除(#435):设备流程无法将每个用户的身份传递到令牌中
  • ⚠️ 基于 IAM 的范围强制执行 — v0.3.0 中的 CloudScopeService 已构建,但从未接入搜索(#422),之后已移除;每用户 AWS 搜索过滤已基于 ISearchScopeResolver + AWS S3 Access Grants 重建(史诗任务 #436)— 选择启用;配置 AWS 身份关联后将采用失败关闭策略
  • ✅ 多提供商嵌入:Ollama、OpenAI、Azure OpenAI
  • ✅ 多提供商大模型:Ollama、OpenAI、Azure OpenAI、Anthropic
  • ✅ 支持多种向量维度,并为每个模型提供部分 IVFFlat 索引
  • ✅ 跨模型搜索:针对旧版向量自动从语义搜索回退到混合搜索
  • ✅ 后台同步:本地使用 FileSystemWatcher,云容器每 5 分钟轮询一次
  • ✅ 所有提供商均支持连接测试(Amazon S3、MinIO、大模型、嵌入)
  • ✅ 457 项测试通过(单元测试 + 集成测试)
v0.3.2 — 加固与完善(已完成)
  • ✅ 强化输入验证:文件名长度、路径深度、控制字符、搜索参数、Agent 字段
  • ✅ 安全修复:空 API 密钥导致的身份验证绕过、路径遍历、安全标头中间件
  • ✅ 统一上传管道(IUploadService),供 API 和 MCP 共用
  • ✅ 上传文件类型允许列表
  • ✅ 速率限制中间件(按用户和按 IP)
  • ✅ 批量 MCP 工具:bulk_upload 和 bulk_delete
  • ✅ CLI 改进:files 命令、container stats、--pre 更新、--help 标志
  • ✅ 使用自托管字体(不依赖 CDN)
  • ✅ 在 ghcr.io 发布 Docker 软件包
未来计划
  • v0.4.0:通信连接器(Slack、Discord)。(按用户划分的 AWS 搜索权限——史诗任务 #436,通过 IAM Identity Center SAML 身份关联实现,而非 Cognito——已发布。)
  • v0.5.0:知识平台连接器(Notion、Confluence、GitHub)
  • v1.0.0:可用于生产环境的稳定版本

❓ 常见问题

Connapse 需要访问互联网吗? — 不需要。使用 Ollama 即可完全离线地生成嵌入并进行搜索。

它能处理多少文档? — 每个容器可处理数千份文档。基于 PostgreSQL + pgvector 构建。

哪些 MCP 客户端可与 Connapse 配合使用? — 任何支持 Streamable HTTP 传输的客户端都可以,例如 Claude Desktop、Claude Code、VS Code、Cursor 等。

我的数据是私密的吗? — 完全可自托管。使用 Ollama 时,任何数据都不会离开你的设备。云服务提供商(OpenAI、Azure)为可选项。

支持哪些嵌入提供商? — Ollama(本地)、OpenAI 和 Azure OpenAI。无需重新部署即可在运行时切换。


🤝 参与贡献

欢迎贡献!请参阅 CONTRIBUTING.md 了解指南。

快速贡献清单:

  • Fork 此仓库并创建功能分支
  • 遵循 CONTRIBUTING.md 中的代码规范
  • 为新功能编写测试(xUnit + FluentAssertions)
  • 确保所有测试通过:dotnet test
  • 如有需要,更新文档
  • 提交拉取请求

适合新手的首批问题:查看标记为 good-first-issue 的问题


📄 许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE。

你可以自由:

  • ✅ 用于商业用途
  • ✅ 修改
  • ✅ 分发
  • ✅ 再许可
  • ✅ 私下使用

唯一的要求是在软件的任何重要部分中包含版权声明和许可证。


💬 支持与社区


🙏 致谢

本项目基于以下技术构建:


⭐ 如果你觉得这个项目有用,请为仓库点星以表达支持!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。