CHM文档索引服务

一个用于从Drop文件夹提取CHM文档、缓存为HTML并使用Lucene.NET进行索引的服务,适用于GitHub Copilot和Visual Studio。

  • by CodingRoman
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 CodingRoman/DokuMCP

使用说明

ChmMcpServer (NanaZip-first, .NET 8, STDIO)

MCP-Server für GitHub Copilot (Visual Studio), der .chm-Dokumentationen aus einem Drop-Ordner extrahiert (bevorzugt mit NanaZip/7-Zip, optional Fallback hh.exe), als HTML cached und mit Lucene.NET indiziert.

Features

  • Drop-Ordner: local\chm-drop\ (relativ zur EXE) – kein fester Pfad nötig
  • Extraktion: NanaZip/7-Zip zuerst, hh.exe nur als Fallback
  • Robust: per-Datei-Lock, Warten bis Datei „ready“, inkrementelles Update (SHA-256)
  • Persistent Index: local\index\
  • Cache-Limit: --max-cache-gb (FIFO-Aufräumen)
  • Tools: list_sources, search_docs(query, topK), get_topic(path)

Build & Setup

dotnet build -c Release
# Ordner (falls nicht vorhanden)
mkdir -Force .\local\chm-drop, .\local\cache, .\local\index
# Start (beobachtet Drop-Ordner)
.\src\ChmMcpServer in\Release
et8.0\ChmMcpServer.exe --watch

Standardpfade ohne feste Angaben: Drop=local\chm-drop, Cache=local\cache, Index=local\index (relativ zur EXE).

Visual Studio (global, ohne feste Pfade)

  1. Optional: scripts\install-global-mcp.ps1 ausführen (baut Release, fügt EXE-Pfad zum Benutzer-PATH, erstellt %USERPROFILE%\.mcp.json).
  2. In Copilot Chat → Tools → devexpress-chm aktivieren.

Nutzung

  • .chm-Dateien nach local\chm-drop\ kopieren oder entfernen.
  • Suche: search_docs("XAF Property Editor", 8)
  • HTML holen: get_topic("...\local\cache\<hash8>\path\to\file.htm")

Hinweise

  • Für Store-Installationen von NanaZip/7-Zip werden die App-Aliase (z. B. NanaZipC.exe, 7z.exe) automatisch gefunden.
  • CHMs, die von Windows blockiert sind (Zone.Identifier), ggf. mit Unblock-File oder per Eigenschaften Zulassen.