Token导航 LogoToken导航TokenDH.com
dir2MCP (Dirstral) logo
文档知识未说明官方级别未说明来源级核验

dir2MCP (Dirstral)

MCP Server

dir2mcp是一个将本地目录部署为MCP知识服务器的工具,支持索引、检索和引用功能,优化了Mistral模型在嵌入、OCR、转录和生成方面的使用。

工具数

9

提示词数

0

GitHub Stars

3

资源数

0
知识管理GoClaudeClaude

安装说明

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

作者 / 组织

dirstral

提供方

dirstral

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

2mcp

将任何本地目录部署为具有索引、检索和引用功能的MCP知识服务器,旨在最大限度地在嵌入、OCR、转录和生成过程中使用Mistral模型。可选层包括ElevenLabs通过专用桥接二进制和x402请求门控(支付/请求门控协议)进行语音输出。

为什么dir2mcp

  • 西北风第一管道:

- 嵌入: mistral-embed (文本)+ codestral-embed (代码) - OCR: mistral-ocr-latest - STT默认值: voxtral-mini-latest - RAG一代:Mistral聊天模型

  • Single Go二进制(dir2mcp)当地第一州 .dir2mcp/
  • 伴随桥二进制(elevenlabs-bridge)ElevenLabs webhook工具
  • MCP Streamable HTTP服务器,具有稳定的工具界面
  • 多模式摄取:文本/代码、文档提取(文档或OCR)、转录本、结构化注释
  • 引文感知检索和RAG式应答
  • 可选的主持人支持的x402支付门控 tools/call
  • 具有两个二进制文件的回购布局:

- dir2mcp:MCP服务器和索引/运行时主机 - elevenlabs-bridge:ElevenLabs webhook工具的HTTP助手

  • dirstral 终端客户端在单独的 dirstral-cli 回购。

安装

安装 dir2mcp 通过Homebrew水龙头:

brew install dirstral/tap/dir2mcp

然后验证:

dir2mcp version

从源代码构建仍然可用作替代方案:

git clone --recurse-submodules https://github.com/Dirstral/dir2mcp
cd dir2mcp
make build
现有克隆:git submodule update --init --recursivedirstral-spec 子模块。 要将规范更新为最新的固定版本,请执行以下操作: git submodule update --remote dirstral-spec.

运行时先决条件(按场景)

选择与你跑步方式相匹配的行 dir2mcp:

场景必填
仅限本地MCP(127.0.0.1)dir2mcp 二进制,加上 doclingMISTRAL_API_KEY 取决于提取器/生成模式
公共MCP(无隧道)本地MCP要求+可访问的主机/端口+安全身份验证令牌模式
通过Cloudflare隧道的公共MCP本地MCP要求+ cloudflared 已安装
通过ngrok公开MCP本地MCP要求+ ngrok 已安装+验证的ngrok帐户+authtoken
x402门控MCP公共MCP要求+主持人URL+主持人令牌+完整的x402路线策略字段

快速入门

构建先决条件(仅限源构建): 转到1.22+(go.dev/dl)以及 make.

git clone https://github.com/Dirstral/dir2mcp
cd dir2mcp
cp .env.example .env        # add your API keys
# optional: create `.env.local` for local overrides
# (it takes precedence over `.env`)
# cp .env.example .env.local
make build
./dir2mcp up

或者直接构建每个二进制文件:

  • go build -o dir2mcp ./cmd/dir2mcp/
  • go build -o elevenlabs-bridge ./cmd/elevenlabs-bridge/

服务器在启动时打印其MCP端点URL。将您的MCP客户端指向该URL。 优先级(从高到低):shell环境变量> .env.local > .env.

当地发展环境

dir2mcp 自动加载两者 .env.env.local 从工作目录中; .env.local 覆盖 .env,并且实际的shell环境变量具有最终优先级。

托管演示烟雾手册

要快速进行托管就绪检查(问题#19范围),请运行:

DIR2MCP_DEMO_URL="https://your-host.example/mcp" \
DIR2MCP_DEMO_TOKEN="" \
./scripts/smoke_hosted_demo.sh

笔记:

  • DIR2MCP_DEMO_TOKEN 每当启用身份验证时都需要。
  • 该脚本现在运行完整的MCP初始化序列(initialize -> notifications/initialized -> tools/list -> tools/call).
  • 如果你的端点是x402门控的, tools/call 返回HTTP 402 随着 PAYMENT-REQUIRED 被视为健康。

它验证了什么:

  • initialize 返回HTTP 200和有效的 MCP-Session-Id
  • tools/list 返回带有工具元数据的HTTP 200
  • tools/call 为了 dir2mcp_list_files 返回HTTP 200或HTTP 402 PAYMENT-REQUIRED 启用x402时

隧道设置(复制/粘贴)

Cloudflare快速隧道(无需帐户的快速模式):

cloudflared tunnel --url http://127.0.0.1:8087 --no-autoupdate

ngrok(需要经过验证的帐户+authtoken):

ngrok config add-authtoken 
ngrok http http://127.0.0.1:8087

从本地API获取ngrok公共URL:

curl -sS http://127.0.0.1:4040/api/tunnels \
  | jq -r '.tunnels[] | select(.proto=="https") | .public_url'

如果你没有 jq,从ngrok web UI复制公共URL(http://127.0.0.1:4040).

然后对任一隧道URL运行托管烟雾探测器:

DIR2MCP_DEMO_URL="https://
/mcp" \
DIR2MCP_DEMO_TOKEN="$(cat .dir2mcp/secret.token)" \
./scripts/smoke_hosted_demo.sh

CLI命令

命令描述
up启动MCP服务器并开始索引
status显示语料库和索引状态
ask ""传统兼容性垫片;更喜欢 dirstral-cli 客户端用户体验
search ""传统兼容性垫片;更喜欢 dirstral-cli 客户端用户体验
open-file 传统兼容性垫片;更喜欢 dirstral-cli 客户端用户体验
list-files传统兼容性垫片;更喜欢 dirstral-cli 客户端用户体验
reindex强制完全重新摄入
config init创建基线 .dir2mcp.yaml
config print打印有效配置
install 将dir2mcp安装到受支持的MCP客户端(例如。 dir2mcp install claude)
uninstall 从支持的MCP客户端中删除dir2mcp
doctor 运行客户端集成诊断
print-config 打印客户端所需的MCP服务器JSON代码段
version打印版本

跑步 dir2mcp 无参数打印用法,您可以随时查阅以查看可用命令。 ask, search, open-file,以及 list-files 是传统的兼容性垫片;新客户端/编排器UX属于 dirstral-cli.

MCP工具

工具说明
dir2mcp_search索引内容的语义搜索
dir2mcp_askRAG风格的带引文问答
dir2mcp_ask_audio用TTS音频响应提问
dir2mcp_transcribe从语料库转录音频文件
dir2mcp_annotate文档的结构化注释
dir2mcp_transcribe_and_ask转录后询问结果
dir2mcp_open_file使用span上下文按路径检索文件
dir2mcp_list_files列出带有元数据的索引文件
dir2mcp_stats语料库统计

配置

YAML配置(.dir2mcp.yaml)

磁盘上的主要配置文件是 .dir2mcp.yaml (由创建 dir2mcp config init). 将其用于持久、非敏感的设置,如连接器定义、默认值和其他选项 您可能希望检查源代码管理。此处定义的值可能会在运行时被以下内容覆盖 环境变量。

环境变量(覆盖/机密)

敏感密钥和临时运行时覆盖是通过环境变量提供的。他们采取 优先于YAML文件中的条目,并且便于API密钥、令牌或设置 因部署而异。常用的变量有:

变量必填描述
MISTRAL_API_KEY条件嵌入、基于Mistral的提取/STT和生成所需;不需要仅记录只读提取流
DIR2MCP_INGEST_EXTRACTOR提取提供程序模式: auto (默认), docling, mistral,或 off
DIR2MCP_DOCLING_COMMAND用于文档提取的可选本地命令模板(默认值: docling --to md --output - {input});设置/可用时,首选PDF/图像/办公风格文档提取
MISTRAL_BASE_URLMistral基本URL(默认值: https://api.mistral.ai)
DIR2MCP_MISTRAL_MAX_OCR_PAYLOAD_BYTESOCR和转录请求的最大编码Mistral上传有效载荷大小(以字节为单位)(默认值: 20971520);对于大型PDF或音频文件增加
DIR2MCP_AUTH_TOKEN身份验证令牌覆盖
DIR2MCP_SERVER_NAME覆盖MCP服务器名称(并建议 claude mcp add 别名)。默认为唯一 dir2mcp-- 从索引目录派生
DIR2MCP_SESSION_INACTIVITY_TIMEOUT会话不活动超时(默认值: 24h)
DIR2MCP_SESSION_TIMEOUT已弃用的别名 DIR2MCP_SESSION_INACTIVITY_TIMEOUT;仍受支持,但已弃用
DIR2MCP_SESSION_MAX_LIFETIME最大会话生存期
DIR2MCP_HEALTH_CHECK_INTERVAL连接器运行状况轮询间隔(默认值: 5s)
DIR2MCP_ALLOWED_ORIGINS逗号分隔的其他浏览器来源
DIR2MCP_X402_FACILITATOR_TOKENx402主持人携带令牌
ELEVENLABS_API_KEYTTS/STT的ElevenLabs密钥
ELEVENLABS_BASE_URLElevenLabs基本URL(默认值: https://api.elevenlabs.io)

对于Homebrew和其他已安装的工作流,您可以在 .dir2mcp.yaml:

mistral_max_ocr_payload_bytes: 26214400
ingest_extractor: auto
docling_command: docling --to md --output - {input}

或者覆盖一次运行:

dir2mcp up --mistral-max-ocr-payload-bytes 26214400

服务器标识

dir2mcp up 实例报告从索引目录导出的唯一MCP服务器名称。, dir2mcp-stas-legal-a1b2c3dir2mcp-research-notes-9f44ee)使它们在MCP客户端列表中易于区分。

  • 默认形状: dir2mcp--,在哪里 ` 是索引目录的模糊基名,以及 ` 哈希其绝对路径(因此该名称在从同一位置重新运行时是稳定的)。
  • 开发人员构建(本地构建的二进制文件,没有发布标签-- dir2mcp version 报告 v0.0.0-devvdev-,可选配 +dirty)使用a dir2mcp-dev-- 前缀,因此从您的仓库运行的开发构建在brew安装的版本旁边显示为一个单独的条目 claude mcp list.
  • 通过YAML覆盖(server.name: my-alias)或env(DIR2MCP_SERVER_NAME=my-alias).重写将逐字应用并绕过默认生成的名称,包括 dir2mcp-dev-... dev构建使用的前缀。
  • dir2mcp up 横幅打印即贴 claude mcp add --transport http ... 使用此名称的行;您注册的客户端别名由您选择。

身份验证令牌行为

dir2mcp 承载身份验证可以来自:

  1. `--auth file:

` (显式文件源)

  1. DIR2MCP_AUTH_TOKEN (环境)
  2. 自动生成 secret.token 在州目录中(auth=auto 默认)

操作指南:

  • 在共享环境中,不要直接在命令行上传递承载令牌。
  • 更喜欢令牌文件(`--auth file:

`)或环境变量。

ElevenLabs桥

elevenlabs-bridge 是一个单独的Go助手,用于转发ElevenLabs webhook 呼唤跑步 dir2mcp MCP终点。它从以下位置读取其配置 当前环境,并回归到合理的默认值:

变量必填描述
MCP_URL没有dir2mcp MCP端点URL。未设置时,网桥首先尝试 $STATE_DIR/connection.json,然后回落到 http://127.0.0.1:8087/mcp
MCP_TOKEN用于的显式承载令牌 dir2mcp。设置后,将覆盖所有其他令牌源。未设置时,网桥按顺序解析凭据:首先检查 connection.json.token_file (里面 $STATE_DIR/connection.json 由...撰写 dir2mcp 使用时 `--auth file:
)那么 $STATE_DIR/secret.token`,如果不存在身份验证,则最终退回到无身份验证
STATE_DIR没有dir2mcp 用于定位的状态目录 connection.json 以及令牌文件。违约: .dir2mcp 在桥接工作目录中
PORT网桥侦听端口。默认值: 8088

用途:

dir2mcp bridge elevenlabs

# Override defaults when needed.
MCP_URL="http://127.0.0.1:8087/mcp" \
STATE_DIR="/path/to/corpus/.dir2mcp" \
PORT=8088 \
dir2mcp bridge elevenlabs

# Legacy wrapper binary still works and forwards to the same integrated command.
make build-elevenlabs-bridge
./elevenlabs-bridge --state-dir /path/to/corpus/.dir2mcp

如果你 dir2mcp 服务器已使用 --auth none,您可以省略 MCP_TOKENSTATE_DIR.

安全默认值

  • 默认侦听地址为本地(127.0.0.1:0)
  • --public 绑定到 0.0.0.0 (除非明确 --listen 提供)
  • --public 随着 --auth none 除非被拒绝 --force-insecure 已设置
  • 浏览器来源已分配(本地主机默认值+显式添加)

可选x402模式

x402是可选的和附加的。配置为 --x402 off|on|required 以及主持人设置。

模式行为
off禁用(默认)
on已启用;如果配置不完整,则无法打开
required严格的验证和门控

必填字段 required 模式:

  • --x402-facilitator-url
  • --x402-resource-base-url
  • --x402-network (例如,CAIP-2 eip155:8453)
  • --x402-price
  • --x402-scheme
  • --x402-asset
  • --x402-pay-to
  • DIR2MCP_X402_FACILITATOR_TOKEN (或等效的秘密来源)

最小示例:

DIR2MCP_X402_FACILITATOR_TOKEN="" \
dir2mcp up \
  --public \
  --listen 0.0.0.0:8092 \
  --x402 required \
  --x402-facilitator-url https:// \
  --x402-resource-base-url https:// \
  --x402-network eip155:8453 \
  --x402-price 1000 \
  --x402-scheme exact \
  --x402-asset usdc \
  --x402-pay-to 0x1111111111111111111111111111111111111111

如果未付费呼叫被正确阻止, tools/call 返回HTTP 402PAYMENT-REQUIRED.

目录规范/docs/x402-支付适配器规范.md 对于完整的主持人适配器合同。

项目状态

实现了核心服务器、摄取管道、检索、引用和x402门控。看 问题 正在进行的工作。

生态系统分裂状态

问题 #113 跟踪回购拆分。

  • dir2mcp (此仓库):MCP服务器实现+桥接二进制
  • dirstral-spec:规范规范/模式/版本控制
  • dirstral-conformance:黑盒一致性线束
  • dirstral-cli:客户端/编排器用户体验
  • landfall:代码导航MCP服务器产品存根

拆分前审计总结:

  • 交叉产品进口:无 dir2mcp 实现(组成边界为MCP)。
  • CLI边界: internal/cli 这里是服务器/引导CLI;客户端UX属于 dirstral-cli.
  • 落地来源:产品范围来自问题 #112,现在由一个单独的存根回购表示。
  • 文档目标映射:

- docs/SPEC.md -> dirstral-spec/docs/SPEC.md - docs/ECOSYSTEM.md -> dirstral-spec/docs/ECOSYSTEM.md - docs/x402-payment-adapter-spec.md -> dirstral-spec/docs/x402-payment-adapter-spec.md

CLI所有权/处置矩阵:

路径组所有权处置
internal/cli/up.go, internal/cli/reindex.go, internal/cli/status.godir2mcp保持
internal/cli/config_cmd.go, internal/cli/bridge.godir2mcp保持
internal/cli/ask.go, internal/cli/remote_commands.godirstral-cli 用户体验问题保持面向协议的兼容性垫片(传统)
tests/cli/* 用于服务器/引导命令dir2mcp保持
tests/cli/* 对于传统的远程/客户端风格的命令转换覆盖率保留,直到完全提取完成

文档

规范性文件保存在 dirstral-spec 子模块(单一真相来源 docs/*.md 这里的文件是指针存根):

发展

make check        # fmt + vet + lint + cyclo + test + build
make cyclo        # gocyclo -over 15 ./internal/ (install: go install github.com/fzipp/gocyclo/cmd/gocyclo@v0.6.0)
make build        # build dir2mcp binary
make build-elevenlabs-bridge  # build ElevenLabs bridge wrapper binary
make benchmark    # run retrieval benchmarks

发布自动化:

  • 推a v* 标签触发器 .github/workflows/release.yml 并通过GoReleaser发布工件。
  • Homebrew配方更新需要 HOMEBREW_TAP_GITHUB_TOKEN 具有写入权限 dirstral/homebrew-tap.

API注释:

  • retrieval.NewEngine 现在需要一个上下文作为其第一个参数:

retrieval.NewEngine(ctx, stateDir, rootDir, cfg).

  • Engine.Ask 获得了一个上下文感知变体 AskWithContext

原始的 Ask 继续作为兼容性的薄包装而存在。

make check 包括 make lint,这需要 golangci-lint 本地安装。 make cyclo 运行CI使用的圈复杂度门。CI运行后,Go报告卡会从外部更新;如果徽章延迟,请从此存储库的goreportcard.com报告页面刷新它。

贡献者和代理指南: 代理商.md · CLAUDE.md

许可证

MIT。看 许可证.

目录标签

目录标签

知识管理GoClaude本地部署Mistral模型OCR语音转录

支持客户端

Claude

接入字段

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

未说明

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

token

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明token部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP