Token导航 LogoToken导航TokenDH.com
Memory Exchange logo
搜索检索未说明官方级别未说明来源级核验

Memory Exchange

MCP Server

MemoryExchange是一个.NET工具,通过模型上下文协议(MCP)使Markdown知识文件可被GitHub Copilot或任何MCP兼容客户端搜索。

工具数

3

提示词数

0

GitHub Stars

2

资源数

0
本地搜索C#Cline混合搜索Cline

安装说明

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

作者 / 组织

MoaidHathot

提供方

MoaidHathot

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

内存交换

A.NET工具,使markdown知识文件(如Cline风格的“内存库”)可由GitHub Copilot(或任何兼容MCP的客户端)通过以下方式搜索 模型上下文协议(MCP).

它将markdown文件预处理为语义分块、向量嵌入的文档,并通过MCP服务器提供这些文档,该服务器具有搜索、检索文件和诊断索引健康状况的工具。

特性

  • 默认情况下完全本地 --SQLite+ONNX(all-MiniLM-L6-v2)嵌入,无云依赖
  • Azure提供商 可用——Azure AI搜索+Azure OpenAI用于云规模部署
  • 混合搜索 --FTS5 BM25关键字搜索+余弦向量相似度,通过互序融合(RRF)合并
  • 领域感知增强 --与用户当前文件域匹配的块被增强(1.3倍)
  • 指令增强.instructions.md 文件获得额外优先级(1.2x)
  • 头部感知组块 --markdown由具有面包屑上下文的标题分隔;代码块保持原子性
  • 零安装通过 dotnet dnx --直接运行 dotnet dnx --yes MemoryExchange
  • 也可作为安装。NET全局工具dotnet tool install -g MemoryExchange

快速开始

配置您的MCP客户端

将服务器添加到MCP客户端配置中(例如VS代码 mcp.json、克莱恩等):

选项A:通过 dotnet dnx (推荐--不需要安装,.NET 10+)

{
  "servers": {
    "memory-exchange": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "dnx",
        "--yes",
        "MemoryExchange",
        "--source-path", "/path/to/your/memory-exchange",
        "--provider", "local",
        "--build-index"
      ]
    }
  }
}

选项B:a。NET全局工具

dotnet tool install -g MemoryExchange
{
  "servers": {
    "memory-exchange": {
      "type": "stdio",
      "command": "memory-exchange",
      "args": [
        "--source-path", "/path/to/your/memory-exchange",
        "--provider", "local",
        "--build-index"
      ]
    }
  }
}

选项C:环境变量

{
  "servers": {
    "memory-exchange": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "dnx",
        "--yes",
        "MemoryExchange",
        "--build-index"
      ],
      "env": {
        "MEMORYEXCHANGE_SOURCEPATH": "/path/to/your/memory-exchange",
        "MEMORYEXCHANGE_PROVIDER": "local"
      }
    }
  }
}

选项D:来源

{
  "servers": {
    "memory-exchange": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--project", "/path/to/MemoryExchange/src/MemoryExchange.McpServer",
        "--",
        "--source-path", "/path/to/your/memory-exchange",
        "--provider", "local",
        "--build-index"
      ]
    }
  }
}
随着 --build-index,服务器在启动时对源目录进行索引(增量——只有更改的文件才会被重新处理),然后开始接受MCP连接。不需要单独的索引器步骤。 或者,使用 --watch 而不是 --build-index 在服务器运行时自动更新索引。监视器在启动时构建索引,然后监视文件更改(创建、编辑、删除、重命名),根据需要触发增量重新索引。

独立索引器

您还可以使用CLI索引器单独索引:

dotnet run --project src/MemoryExchange.Indexer -- \
  --source /path/to/your/memory-exchange \
  --provider local \
  --database-path /path/to/memoryexchange.db
标志描述
--source, -s(必填) 包含markdown文件的源目录的路径
--provider, -plocal (默认)或 azure
--database-pathSQLite数据库文件路径(默认为 memory_exchange.db 在源目录中)
--model-path自定义ONNX模型文件路径(本地提供程序)
--index-name逻辑索引名称(默认值: memory-exchange)
--force, -f强制完全重新索引,忽略缓存状态
--exclude要从索引中排除的全局模式(可以多次指定)
--watch, -w索引后,注意文件更改并增量重新索引(运行到Ctrl+C)

配置

配置加载了以下优先级(最高获胜):

  1. appsettings.json
  2. 环境变量(MEMORYEXCHANGE_ 前缀)
  3. CLI参数

环境变量

变量映射到
MEMORYEXCHANGE_SOURCEPATH源目录路径
MEMORYEXCHANGE_PROVIDERlocalazure
MEMORYEXCHANGE_INDEXNAME搜索索引名称
MEMORYEXCHANGE_DATABASEPATHSQLite数据库路径(默认为 memory_exchange.db 在源目录中)
MEMORYEXCHANGE_MODELPATHONNX模型文件路径
MEMORYEXCHANGE_BUILDINDEX设置为 true 建立创业指数
MEMORYEXCHANGE_WATCH设置为 true 启用文件监视模式
MEMORYEXCHANGE_DEBUG设置为 true 启用仅调试工具(例如。 get_index_status)
MEMORYEXCHANGE_AZURE_SEARCH_ENDPOINTAzure AI搜索端点
MEMORYEXCHANGE_AZURE_SEARCH_APIKEYAzure AI搜索API密钥
MEMORYEXCHANGE_AZURE_OPENAI_ENDPOINTAzure OpenAI端点
MEMORYEXCHANGE_AZURE_OPENAI_APIKEYAzure OpenAI API密钥
MEMORYEXCHANGE_AZURE_OPENAI_DEPLOYMENTAzure OpenAI嵌入部署名称

MCP服务器CLI参数

--source-path, --provider, --index-name, --database-path, --model-path, --build-index, --watch, --debug, --exclude, --azure-search-endpoint, --azure-search-key, --azure-openai-endpoint, --azure-openai-key, --azure-openai-deployment

--build-index --如果存在,MCP服务器在启动时会在接受连接之前运行增量索引。这消除了单独运行Indexer CLI的需要。需要 --source-path 待设定。 --watch --监控源目录中markdown文件的更改,并自动触发增量重新索引。暗示 --build-index 启动时(如果索引不存在,则构建索引,然后监视更改)。当 --watch 处于活动状态,单独 --build-index 标志是多余的。需要 --source-path 待设定。 --debug --启用仅调试MCP工具(例如。 get_index_status).如果没有此标志,这些工具将不会注册,并且对AI代理不可见。 --exclude --可选的glob模式,用于从索引中排除文件/目录。可以多次指定(例如。, --exclude "**/archive/**" --exclude "**/drafts/**").这 personal/ 无论此设置如何,目录始终被排除在外。 --database-path --如果省略,则默认为 memory_exchange.db 里面 --source-path 目录。

MCP工具

服务器公开了以下工具:

search_memory_bank

参数类型必填说明
querystring要搜索什么(例如“缓存是如何工作的”、“部署架构”)
currentFilePathstringno用户正在编辑的文件--启用域感知增强
topKintno结果数,1-10(默认值:5)

get_memory_file

从内存交换中检索特定markdown文件的完整内容。当搜索结果引用文件并且代理需要完整的上下文时很有用。

参数类型必填说明
filePathstringyesmarkdown文件的相对路径(例如“architecture/database.md”)

get_index_status *(仅调试)*

返回有关内存交换索引的诊断信息。使用此功能在搜索之前验证索引是否已填充,或诊断原因 search_memory_bank 不返回任何结果。

没有参数。返回源路径、提供程序、索引名称、块计数、文件计数和上次索引时间。当索引为空时,它包括可操作的故障排除提示。

此工具仅在服务器使用启动时注册 --debug 旗帜(或 MEMORYEXCHANGE_DEBUG=true).没有它,AI代理将看不到这个工具。

启动诊断

当MCP服务器启动时,它会将诊断信息打印到stderr,包括配置的提供程序、源路径、索引名称、监视/构建索引模式以及在源目录中找到的markdown文件的数量。此输出在MCP客户端的服务器日志中可见,可用于确认服务器配置正确。

建筑

src/
  MemoryExchange.Core/          Core abstractions, chunking, search orchestrator
  MemoryExchange.Azure/         Azure AI Search + Azure OpenAI provider
  MemoryExchange.Local/         SQLite + ONNX provider (default)
  MemoryExchange.Indexing/      Shared indexing pipeline (FileScanner + IndexingPipeline)
  MemoryExchange.Indexer/       CLI indexer tool
  MemoryExchange.McpServer/     MCP stdio server (supports --build-index)
tests/
  MemoryExchange.Indexer.LocalRunner/   Development test harness

提供者摘要

  • IEmbeddingService --从文本生成向量嵌入
  • ISearchService --读取端:混合搜索(关键字+向量)
  • ISearchIndex --写入端:追加/删除块

搜索管道

  1. 查询通过以下方式嵌入 IEmbeddingService
  2. ISearchService 运行FTS5 BM25+向量余弦相似度,通过RRF合并(k=60)
  3. SearchOrchestrator 应用域增强(1.3倍)和指令增强(1.2倍)
  4. 结果以2倍的倍数被超额提取,重新排序并修剪为 topK

本地提供商详细信息

  • 型号: all-MiniLM-L6-v2 (384昏暗,L2标准化)
  • 标记器: 自定义 WordPieceTokenizer 内置30k vocab
  • 储存: 带WAL模式的SQLite,FTS5虚拟表,嵌入为BLOB
  • 矢量搜索: 纯C#余弦相似度(归一化向量上的点积)

从源头构建

要求。NET 9.0 SDK。

1.下载ONNX型号

已发布的NuGet包捆绑了模型,但从源代码构建时需要手动下载。使用附带的脚本获取 all-MiniLM-L6-v2 来自HuggingFace的嵌入模型(约90 MB):

# Windows (PowerShell)
.\scripts\download-model.ps1
# Linux / macOS
./scripts/download-model.sh

这将模型放置在 src/MemoryExchange.Local/Models/all-MiniLM-L6-v2.onnx。如果需要,可以将自定义输出路径作为参数传递。

2.建造

dotnet build MemoryExchange.slnx

许可证

麻省理工学院 -版权所有(c)2026 Moaid Hathot

目录标签

目录标签

本地搜索C#Cline混合搜索Markdown搜索本地部署知识管理语义搜索

支持客户端

Cline

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP