🚀 Docs MCP Server
本項目提供了一個靈活的模型上下文協議(MCP)服務器,由 Probe 提供支持,旨在讓人工智能助手能夠搜索文檔或代碼庫。只需指定一個 Git 倉庫或文件夾,你就可以與代碼或文檔進行對話。

npx -y @buger/docs-mcp@latest --gitUrl https://github.com/buger/probe
🚀 快速開始
你可以通過以下命令快速啟動服務:
npx -y @buger/docs-mcp@latest --gitUrl https://github.com/buger/probe
✨ 主要特性
- 由 Probe 提供支持:利用 Probe 搜索引擎,提供高效且相關的搜索結果。
- 靈活的內容源:可以指定特定的本地目錄或克隆 Git 倉庫。
- 預構建內容:可選擇將文檔或代碼內容直接打包到軟件包中。
- 動態配置:可通過配置文件、命令行參數或環境變量來配置內容源、Git 設置和 MCP 工具細節。
- 自動 Git 更新:可按配置的時間間隔自動從 Git 倉庫拉取更改,保持內容新鮮。
- 可定製的 MCP 工具:可定義向 AI 助手公開的搜索工具的名稱和描述。
- AI 集成:可與支持模型上下文協議(MCP)的 AI 助手無縫集成。
📦 安裝指南
通過 Smithery 安裝
要通過 Smithery 自動為 Claude Desktop 安裝 Docs MCP Server,請運行以下命令:
npx -y @smithery/cli install @buger/docs-mcp --client claude
💻 使用示例
基礎用法
與任何 GitHub 倉庫進行對話
將服務器指向公共或私有 Git 倉庫,即可對其內容進行自然語言查詢。
npx -y @buger/docs-mcp@latest --gitUrl https://github.com/buger/probe
搜索你的文檔
將項目文檔(來自本地目錄或 Git)集成到服務器中,方便進行搜索。
{
"mcpServers": {
"tyk-docs-search": {
"command": "npx",
"args": [
"-y",
"@buger/docs-mcp@latest",
"--gitUrl",
"https://github.com/TykTechnologies/tyk-docs",
"--toolName",
"search_tyk_docs",
"--toolDescription",
"Search Tyk API Management Documentation"
],
"enabled": true
}
}
}
高級用法
創建自定義 MCP 服務器
使用本項目作為模板,創建針對特定文檔集甚至代碼庫的官方 MCP 服務器。
{
"mcpServers": {
"tyk-official-docs": {
"command": "npx",
"args": [
"-y",
"@tyk-technologies/docs-mcp@latest"
],
"enabled": true
}
}
}
📚 詳細文檔
配置
在根目錄中創建 docs-mcp.config.json 文件,定義構建和運行時使用的 默認 內容源和 MCP 工具細節(除非被命令行參數或環境變量覆蓋)。
示例 1:使用本地目錄
{
"includeDir": "/Users/username/projects/my-project/docs",
"toolName": "search_my_project_docs",
"toolDescription": "Search the documentation for My Project.",
"ignorePatterns": [
"node_modules",
".git",
"build",
"*.log"
]
}
示例 2:使用 Git 倉庫
{
"gitUrl": "https://github.com/your-org/your-codebase.git",
"gitRef": "develop",
"autoUpdateInterval": 15,
"toolName": "search_codebase",
"toolDescription": "Search the main company codebase.",
"ignorePatterns": [
"*.test.js",
"dist/",
"__snapshots__"
]
}
配置選項
| 屬性 |
詳情 |
includeDir |
(構建/運行時) 本地目錄的絕對路徑,其內容將在構建時複製到 data 目錄,或者在未指定 dataDir 時直接在運行時使用。可與 gitUrl 二選一。 |
gitUrl |
(構建/運行時) Git 倉庫的 URL。可與 includeDir 二選一。 - 如果 autoUpdateInterval 為 0(默認值),服務器將嘗試直接下載 .tar.gz 存檔(目前假設為 GitHub URL 結構:https://github.com/{owner}/{repo}/archive/{ref}.tar.gz),這樣啟動速度更快,但不支持更新。 - 如果 autoUpdateInterval > 0,服務器將執行 git clone 並啟用定期更新。 |
gitRef |
(構建/運行時) 從 gitUrl 使用的分支、標籤或提交哈希(默認值:main),用於下載 tarball 和 Git 克隆/拉取操作。 |
autoUpdateInterval |
(運行時) 自動檢查 Git 更新的時間間隔(分鐘,默認值:0,表示禁用)。將此值設置為大於 0 可啟用 Git 克隆和定期 git pull 操作,需要系統路徑中可使用 git 命令。 |
dataDir |
(運行時) 包含要搜索內容的目錄路徑,在運行時覆蓋從配置文件中定義的 includeDir 或 gitUrl 或打包到軟件包中的內容,可用於在不重新構建的情況下將服務器指向即時數據。 |
toolName |
(構建/運行時) 服務器公開的 MCP 工具的名稱(默認值:search_docs),應選擇與內容相關的描述性名稱。 |
toolDescription |
(構建/運行時) 向 AI 助手顯示的 MCP 工具的描述(默認值:"Search documentation using the probe search engine.")。 |
ignorePatterns |
(構建/運行時) 全局模式數組。 |
enableBuildCleanup |
(構建) 如果為 true(默認值),在構建步驟後從 data 目錄中刪除常見的二進制/媒體文件(圖像、視頻、存檔等)和大於 100KB 的文件。設置為 false 可禁用此清理操作。 - 如果在構建時使用 includeDir:複製到 data 時將排除匹配這些模式的文件,同時也會遵循 .gitignore 規則。 - 如果在運行時使用 gitUrl 或 dataDir:搜索索引器將忽略 data 目錄中匹配這些模式的文件。 |
優先級
- 運行時配置(最高):命令行參數(
--dataDir、--gitUrl 等)和環境變量(DATA_DIR、GIT_URL 等)將覆蓋所有其他設置,命令行參數優先於環境變量。
- 構建時配置:
docs-mcp.config.json 中的設置(includeDir、gitUrl、toolName 等)定義了 npm run build 期間使用的默認值,並且如果未被覆蓋,也將作為運行時的默認值。
- 默認值(最低):如果未提供任何配置,則使用內部默認值(例如,
toolName: 'search_docs',autoUpdateInterval: 5)。
注意:如果在 同一 配置源中同時提供了 includeDir 和 gitUrl(例如,都在配置文件中,或都作為命令行參數),gitUrl 將優先使用。
創建自己的預構建 MCP 服務器
你可以使用本項目作為模板,創建併發布自己的 npm 軟件包,其中預構建了文檔或代碼,為用戶提供零配置體驗(如上述示例 2)。
- 分叉/克隆此倉庫:從本項目的代碼開始。
- 配置
docs-mcp.config.json:定義指向內容源的 includeDir 或 gitUrl,設置默認的 toolName 和 toolDescription。
- 更新
package.json:更改 name(例如,@my-org/my-docs-mcp)、version、description 等。
- 構建:運行
npm run build,這將把你的內容克隆/複製到 data 目錄,並使軟件包準備就緒。
- 發佈:運行
npm publish(需要配置 npm 身份驗證)。
現在,用戶可以輕鬆運行你特定的文檔服務器:npx @my-org/my-docs-mcp@latest。
與 AI 助手一起使用
此 MCP 服務器通過模型上下文協議向連接的 AI 助手公開一個搜索工具,工具的名稱和描述可配置(請參閱配置部分),它將搜索當前活動的 data 目錄中的內容(由構建設置、配置文件、命令行參數或環境變量確定)。
工具參數
query:自然語言查詢或描述要搜索內容的關鍵字(例如,"how to configure the gateway"、"database connection example"、"user authentication"),服務器使用 Probe 的搜索功能查找相關內容(必需)。
page:處理多個匹配結果時的頁碼,省略時默認為 1(可選)。
工具調用示例
{
"tool_name": "search_tyk_docs",
"arguments": {
"query": "gateway rate limiting",
"page": 1
}
}
{
"tool_name": "search_tyk_official_docs",
"arguments": {
"query": "dashboard api access",
"page": 2
}
}
📄 許可證
本項目採用 MIT 許可證。