一个提供搜索功能的模型上下文协议(MCP)服务器,适用于任何由MkDocs驱动的网站。该服务器依赖于现有的MkDocs搜索实现,使用Lunr.Js搜索引擎。
请遵循Model Context Protocol 快速入门指南中的安装说明。您需要在MCP配置文件中添加如下部分:
{
"mcpServers": {
"my-docs": {
"command": "npx",
"args": [
"-y",
"@serverless-dna/mkdocs-mcp",
"https://your-doc-site",
"描述您启用搜索的内容,以帮助您的AI代理"
]
}
}
}
该项目实现了一个MCP服务器,使大型语言模型(LLMs)能够搜索任何已发布的mkdocs文档站点。它使用lunr.js进行高效的本地搜索,并提供可以总结并呈现给用户的搜索结果。
# 安装依赖
pnpm install
# 构建项目
pnpm build
该服务器可以作为MCP服务器运行,通过stdio通信:
npx -y @serverless-dna/mkdocs-mcp https://your-doc-site.com
服务器提供了一个searchMkDoc工具,参数如下:
search: 搜索查询字符串version: 可选版本字符串(仅适用于有版本的站点)示例响应:
{
"query": "logger",
"version": "latest",
"total": 3,
"results": [
{
"title": "Logger",
"url": "https://docs.example.com/latest/core/logger/",
"score": 1.2,
"preview": "结构化日志的Logger实用程序...",
"location": "core/logger/"
},
{
"title": "Configuration",
"url": "https://docs.example.com/latest/core/logger/#config",
"score": 0.8,
"preview": "使用自定义设置配置日志...",
"location": "core/logger/#config",
"parentArticle": {
"title": "Logger",
"location": "core/logger/",
"url": "https://docs.example.com/latest/core/logger/"
}
}
]
}
特性:
服务器提供了一个fetchMkDoc工具,用于检索和转换文档页面:
url: 要获取的文档页面的URL示例响应:
{
"title": "开始使用",
"markdown": "# 开始使用\n\n此指南将帮助您...\n\n## 安装\n\n```bash\nnpm install example\n```",
"code_examples": [
{
"title": "安装",
"description": "使用npm安装包",
"code": "```bash\nnpm install example\n```"
},
{
"title": "基本用法",
"description": "导入并初始化库",
"code": "```python\nfrom example import Client\nclient = Client()\n```"
}
],
"url": "https://docs.example.com/getting-started/"
}
服务器可以通过环境变量进行配置:
SEARCH_CONFIDENCE_THRESHOLD: 搜索结果的最小置信分数(默认:0.1)SEARCH_MAX_RESULTS: 返回的最大搜索结果数(默认:10)CACHE_BASE_PATH: 缓存存储的基本目录(默认:<system-tmp>/mkdocs-mcp-cache)示例:
SEARCH_MAX_RESULTS=20 SEARCH_CONFIDENCE_THRESHOLD=0.2 npx @serverless-dna/mkdocs-mcp https://your-doc-site.com
缓存位置: 默认情况下,服务器会在系统的临时目录中缓存搜索索引和转换后的文档:
/tmp/mkdocs-mcp-cache(或$TMPDIR)%TEMP%\mkdocs-mcp-cache您可以使用CACHE_BASE_PATH环境变量覆盖这一设置。
pnpm build
pnpm test
在开发过程中,您可以使用以下配置在Claude Desktop上运行MCP服务器。
下面的配置显示了在Windows Claude Desktop上开发时使用Windows子系统Linux(WSL)的情况。Mac或Linux环境也可以类似方式运行。
输出是一个捆绑文件,这使得安装在Windows上的Node可以运行MCP服务器,因为所有依赖项都被捆绑在一起。
{
"mcpServers": {
"powertools": {
"command": "node",
"args": [
"\\\\wsl$\\Ubuntu\\home\\walmsles\\dev\\serverless-dna\\mkdocs-mcp\\dist\\index.js",
"在线文档搜索"
]
}
}
}
MIT