Token导航 LogoToken导航TokenDH.com
My Own Little Rag MCP logo
搜索检索stdio官方级别未说明来源级核验

My Own Little Rag MCP

MCP Server

基于Microsoft.Extensions.AI框架的RAG系统原型,支持内存和Neo4j存储,可与Claude Desktop等AI助手集成,提供检索增强生成功能。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
检索增强生成图数据库C#Claude向量搜索Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ted-sharp

提供方

ted-sharp

最后核验

2026/5/17 20:22

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --name neo4j \

详细介绍

带有MCP支持的RAG原型

这是使用Microsoft.Extensions.AI框架实现的RAG(检索增强生成)原型。它也可以作为模型上下文协议(MCP)服务器运行,并且可以被Claude Desktop等AI助手使用。

📋 概述

此项目是基于2025年推荐的Microsoft.Extensions.AI框架的RAG系统原型:

  • 简单的实现核心逻辑约120行
  • 多种存储选项

- 内存内使用System.Numerics.Tensors进行快速余弦相似度搜索 - Neo4j(注:这是一个专有名词,通常不翻译,直接保留原名,若需解释性翻译,可译为“Neo4j图数据库”或“Neo4j图形数据库软件”)图表增强RAG(混合搜索:向量+图表遍历)

  • 与OpenAI兼容支持OpenAI API和LM Studio
  • MCP服务器可直接从 Claude Desktop 使用
  • .NET 9.0最新的.NET平台

🚀 快速入门

前提条件

  • .NET 9.0 SDK
  • OpenAI API密钥(或LM Studio)

构建

cd src_dotnet
dotnet build

执行方法

1. 控制台应用程序(内存版)

cd src_dotnet/RagPrototype.Console

# 環境変数を設定
export OPENAI_API_KEY="your-api-key-here"

# 実行
dotnet run

可用命令

  • add - 添加文档
  • ask - 提问
  • count - 显示文档数量
  • clear - 清除所有文档
  • exit - 结束

1-B. 控制台应用程序(Neo4j版)

# Neo4j起動(Docker推奨)
docker run --name neo4j \
  -p 7474:7474 -p 7687:7687 \
  -e NEO4J_AUTH=neo4j/password \
  neo4j:latest

# 環境変数を設定
export NEO4J_URI=neo4j://localhost:7687
export NEO4J_PASSWORD=password
export OPENAI_API_KEY="your-api-key-here"

# 実行
cd src_dotnet/RagPrototype.Console.Neo4j
dotnet run

Neo4j版的附加命令

  • relate [type] - 在文档之间创建关系
  • (其他命令与内存版相同)

Neo4j版的特点

  • 📊 表格、数据图表 混合搜索向量相似度+图遍历
  • 🔗(这个符号在中文里通常没有直接对应的翻译,它是一个链接或超链接的符号,可以表示“链接”或“点击这里”等意思,具体翻译需根据上下文确定。) 关系建模明确定义文档间的关系
  • 💾 代表“软盘”或“存储设备”的符号。 持久化数据被保存在磁盘上
  • 📈 表示“上升趋势”或“上升的图表”,在中文中常用来描述数据、价格等呈上升状态。 可扩展性支持数百万节点/关系

2. MCP服务器(与Claude Desktop联动)

详情 MCP_SETUP.md 翻译为中文是:“MCP 设置说明文件” 或 “MCP 配置指南(Markdown 格式)”。这里,“MCP”可能代表某个特定的项目、系统或配置的名称,而“SETUP”表示设置或配置,“.md”表示这是一个使用 Markdown 格式编写的文件 请参考。

简单设置示例(内存版)

Claude Desktop 配置文件(%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "rag-prototype": {
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "C:\\git\\git-ai\\my-own-little-rag-mcp\\src_dotnet\\RagPrototype.McpServer\\RagPrototype.McpServer.csproj"
      ],
      "env": {
        "OPENAI_API_KEY": "your-api-key-here"
      }
    }
  }
}

Neo4j版本的设置

{
  "mcpServers": {
    "rag-neo4j": {
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "C:\\git\\git-ai\\my-own-little-rag-mcp\\src_dotnet\\RagPrototype.McpServer.Neo4j\\RagPrototype.McpServer.Neo4j.csproj"
      ],
      "env": {
        "OPENAI_API_KEY": "your-api-key-here",
        "NEO4J_URI": "neo4j://localhost:7687",
        "NEO4J_PASSWORD": "password"
      }
    }
  }
}

Neo4j MCP服务器的附加工具:

  • add_relationship - 在文档间建立关系
  • 其他工具将自动适配混合搜索

📁 项目结构

my-own-little-rag-mcp/
├── src_dotnet/
│   ├── RagPrototype.sln                  # ソリューションファイル
│   ├── RagPrototype.Core/                # コアライブラリ
│   │   ├── Models/                       # データモデル
│   │   ├── Services/                     # RAG サービス実装
│   │   │   ├── SimpleRagService.cs       # インメモリRAG
│   │   │   └── Neo4jRagService.cs        # Neo4jグラフRAG
│   │   └── Configuration/                # 設定クラス
│   │       ├── RagOptions.cs
│   │       └── Neo4jOptions.cs
│   ├── RagPrototype.Console/             # CLI(インメモリ)
│   ├── RagPrototype.Console.Neo4j/       # CLI(Neo4j)
│   ├── RagPrototype.McpServer/           # MCPサーバー(インメモリ)
│   └── RagPrototype.McpServer.Neo4j/     # MCPサーバー(Neo4j)
├── doc/                                  # リサーチドキュメント
│   ├── compass_artifact_*.md             # グラフDB/RAG/MCPリサーチ
├── MCP_SETUP.md                          # MCP セットアップガイド
├── CLAUDE.md                             # 開発者向けガイド
└── README.md                             # このファイル

🔧 设置

环境变量

共同设置

变量名说明默认值
(无)(无)(无)OPENAI_API_KEY
OpenAI API密钥(必填)RAG_CHAT_MODELgpt-4o-mini聊天模特
RAG_EMBEDDING_MODELtext-embedding-3-small嵌入式模型
RAG_TOP_K3搜索结果数
LM_STUDIO_ENDPOINT

| LM Studio 端点 | (可选) |Neo4j配置(仅限Neo4j版)

: | 变量名 | 说明 | 默认值 | |--------|------|-------------| NEO4J_URI | neo4j://localhost:7687 | Neo4j连接URI | | NEO4J_USERNAME | neo4j | Neo4j用户名 | | NEO4J_PASSWORD | password | Neo4j密码 | | NEO4J_DATABASE | neo4j | 数据库名 |

|

export LM_STUDIO_ENDPOINT="http://localhost:1234/v1"
export RAG_CHAT_MODEL="local-model"
export RAG_EMBEDDING_MODEL="nomic-embed-text"

使用LM Studio时

🏗️ 建筑

核心组件 SimpleRagService 翻译为中文是“简易RAG服务”

  • \- 主要RAG服务
  • 文档管理(添加、删除、搜索)
  • 向量嵌入生成(OpenAI 嵌入API)
  • 余弦相似度搜索(System.Numerics.Tensors)

上下文相关回答生成(OpenAI Chat API) 文件

public class Document
{
    public required string Id { get; init; }
    public required string Text { get; init; }
    public DateTime CreatedAt { get; init; }
}

- 文档模型 RagOptions(注:此词可能为特定上下文或软件中的专有名词,直接翻译为“RAG选项”或根据具体语境可能有更贴切的译法,但在此提供一个通用翻译)

public class RagOptions
{
    public string OpenAiApiKey { get; set; }
    public string ChatModel { get; set; }
    public string EmbeddingModel { get; set; }
    public int TopK { get; set; }
    public string? LmStudioEndpoint { get; set; }
}

- 配置类

ユーザー入力
    ↓
[質問の埋め込み生成]
    ↓
[ベクトル類似度検索] → Top K ドキュメント取得
    ↓
[コンテキスト構築] → 関連ドキュメント + 質問
    ↓
[LLM 生成] → OpenAI Chat API
    ↓
回答

数据流

🧪 使用示例

$ dotnet run

Available commands: add  | ask  | count | clear | exit

> add RAGはRetrieval-Augmented Generationの略です
Document added: doc-001

> ask RAGとは何ですか?
RAGはRetrieval-Augmented Generationの略で、検索拡張生成と呼ばれる技術です...

> count
Total documents: 1

控制台应用程序

あなた: 次のドキュメントを知識ベースに追加して:
「Microsoft.Extensions.AIは2025年推奨のRAGフレームワークです」

Claude: [add_document ツールを使用]
✅ Document added (ID: abc123)

あなた: おすすめのRAGフレームワークは?

Claude: [ask_question ツールを使用]
Microsoft.Extensions.AIが2025年推奨のRAGフレームワークです。

在 Claude Desktop 上的使用

  • 📚 技术栈 .NET 9.0
  • - 最新的.NET平台 OpenAI SDK 2.5.0
  • - OpenAI API 客户端 System.Numerics.Tensors(在中文中可表述为)“系统数值计算张量库”或简化为“数值张量库(System)”,但具体翻译可能根据上下文和专业术语习惯有所调整。在编程或技术文档中,通常直接保留原英文命名,以体现其专业性和准确性。因此,直接使用“System.Numerics.Tensors”作为表述也是合适的
  • - 向量运算 Neo4j.Driver 5.28.3
  • - Neo4j官方驱动程序(完全支持.NET 8.0/9.0) Microsoft.Extensions.DependencyInjection 翻译为中文是“Microsoft 扩展依赖注入服务”。这个命名反映了它在 .NET 生态系统中提供依赖注入功能的扩展性角色
  • - DI容器 System.Text.Json(在中文语境中通常直接保留原名,不进行翻译,因为它是一个特定的命名空间或库名)
  • - JSON序列化 模型上下文协议

- AI助手协作

🔍 主要特点

  • 1\. 简单的实现
  • 核心逻辑大约有120行(内存版)
  • 最低限度的依赖关系

易于理解的代码结构

2. 多种存储选项内存版

  • 使用System.Numerics.Tensors优化的余弦相似度计算
  • Top-K搜索支持

最适合用于原型开发Neo4j版

  • :混合搜索
  • 向量相似度+图遍历(精度提升5-10%)HNSW索引
  • O(log n)的快速向量搜索关系建模
  • 明确保存文件间的关系图表扩展
  • 自动获取相关文档并增强语境持久化
  • 数据保存在磁盘上可扩展性

支持数百万节点/关系

  • 3\. 灵活的设定
  • 通过环境变量进行设置
  • 兼容OpenAI和LM Studio

模型切换容易

  • 4\. MCP服务器整合
  • 可直接从Claude Desktop使用
  • JSON-RPC 2.0协议实现
  • 内存版:4个工具

Neo4j版:5个工具(添加关系)

🛠️ 开发

代码质量工具

cd src_dotnet

# 全自動修正(推奨)
.\_fix-all.ps1

# 高速チェック(dotnetツールのみ)
.\_fix-all.ps1 -Fast

# CI/PRゲート(検証のみ)
.\_fix-all.ps1 -CheckOnly

该项目包含自动化代码质量管理脚本:

  • 所含工具:
  • dotnet format(自动格式化)
  • ReSharper CLI(高级分析 - 选项)

SonarQube(技术债务分析 - 可选) 详情:

src_dotnet/README_SCRIPTS.md(可译为):src_dotnet/脚本说明文件README_SCRIPTS.md

cd src_dotnet
dotnet test

执行测试

# コンソールアプリのデバッグ
cd src_dotnet/RagPrototype.Console
dotnet run

# MCP サーバーのデバッグ
cd src_dotnet/RagPrototype.McpServer
dotnet run

# 手動でJSON-RPCメッセージを送信してテスト
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}

调试

# デバッグビルド
dotnet build

# リリースビルド
dotnet build -c Release

# リリースビルド(自動化スクリプト)
.\_build-release.ps1

# 発行
dotnet publish -c Release

构建配置

  • 📖 文档 MCP_SETUP.md 翻译为中文是:“MCP设置说明文件(或:MCP配置指南)”。这里,“MCP”可能代表某个特定的系统、软件或项目名称,而“SETUP.md”通常指的是一个用于设置或配置的Markdown格式文档文件
  • - 与 Claude Desktop 的协作详细指南 CLAUDE.md(文件名,可译为“克劳德文档”或保持原样,根据上下文决定是否需要具体翻译文件名)
  • - 面向开发者的技术文档 src_dotnet/README.md(文件名,可翻译为“源代码.NET/README.md”或保持原样,因为文件名通常不翻译)
  • - 项目结构详情 src_dotnet/README_SCRIPTS.md(翻译为中文可保持原文件名不变,或解释为“DotNet源代码目录下的脚本说明文件README_SCRIPTS.md”)

- 开发脚本使用指南

⚠️ 限制事项和建议事项

  • 内存版的限制不持久
  • 数据将在重启时丢失可扩展性
  • 不适合大规模数据集(超过10万条)关系性

无法对文档间的关系进行建模 解决方案 如需正式环境或数据持久化时 Neo4j版

请使用

  • Neo4j版本的前提条件Neo4j服务器
  • 需要Docker或原生安装内存
  • 建议最低4GB(建议8-16GB)设置

比内存版更复杂的初始设置 推荐

原型开发为内存版,正式部署为Neo4j版

  1. 建议的改进(未来版本) ✅ ~~持久化~~ →
  2. 已在Neo4j版本中实现分块处理
  3. 长文档的自动分割元数据
  4. 文档的标签、类别和日期筛选其他向量数据库
  5. Qdrant、Pinecone、Weaviate集成流媒体
  6. 支持MCP协议的流式响应监视

日志、指标、追踪

🤝 贡献

此原型为研究目的而制作。欢迎通过 Issue 提出改进建议或报告漏洞。

📄 许可证

麻省理工学院许可证

- 文件夹内的研究资料: - 图数据库综合对比调查(2024-2025年最新版) - RAG MCP构建最佳实践完全指南 - 使用C# .NET的MCP RAG系统编码最佳实践指南

DeepResearch与RAG实现对比(2025年版)

👤 制作者

______________________________________________________________________

RAG原型实施项目-2025下一步 MCP_SETUP.md 翻译为中文是:“MCP设置说明文件”或“MCP配置指南(Markdown格式)”。这里,“MCP”可能代表某个特定的系统、项目或模块的名称,而“SETUP”通常指的是设置或配置,“.md”表示这是一个Markdown格式的文件

目录标签

目录标签

检索增强生成图数据库C#Claude向量搜索本地部署AI助手集成自然语言处理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP