AVR文档MCP服务器与Wiki。JS集成
此MCP(模型上下文协议)服务器提供与Wiki的集成。JS用于搜索和列出Wiki中的页面。JS实例。
特性
- 搜索Wiki。JS页面:使用关键字或主题搜索页面
- 列出Wiki。JS页面:获取所有可用页面的分页列表
- 获取特定页面:通过ID检索特定页面
- 连接测试:测试与Wiki的连接。JS实例
- 多种运输方式:支持stdio和HTTP流模式
- Docker支持:已准备好使用带有健康检查的Docker镜像
设置
先决条件
- 一个正在运行的Wiki。JS实例
- 具有读取页面的适当权限的API密钥
环境变量
您可以通过两种方式设置环境变量:
选项1:使用.env文件(推荐)
- 复制示例环境文件:
cp .env.example .env- 编辑
.env文件中包含您的实际值:
# Wiki.JS Configuration
WIKI_JS_BASE_URL=https://your-wiki-instance.com
WIKI_JS_API_KEY=your-api-key-here
LOG_LEVEL=info
# MCP Server Configuration
MCP_MODE=stdio
PORT=3000选项2:使用系统环境变量
export WIKI_JS_BASE_URL="https://your-wiki-instance.com"
export WIKI_JS_API_KEY="your-api-key-here"
export LOG_LEVEL="info"
export MCP_MODE="stdio"
export PORT="3000"安装
- 安装依赖项:
npm install- 构建项目:
npm run build- 测试连接(可选):
npm test- 运行服务器:
npm start发展:
npm run dev运行模式
服务器支持两种操作模式:
标准模式(默认)
默认情况下,服务器在stdio模式下运行,通过标准输入/输出进行通信。这是传统的MCP模式。
npm start
# or
npm run start:http # for HTTP mode
# or
MCP_MODE=stdio npm startHTTP流模式
服务器也可以在HTTP模式下运行,为MCP通信提供带有服务器事件(SSE)的REST API。
npm run start:http
# or
MCP_MODE=http npm start在HTTP模式下运行时,服务器提供:
- 健康检查:
GET /health-返回服务器状态 - MCP端点:
POST /mcp-使用JSON-RPC 2.0的MCP通信端点
测试HTTP模式
您可以使用curl或Postman测试HTTP模式:
# Health check
curl http://localhost:3000/health
# Initialize MCP session
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "curl-client",
"version": "1.0.0"
}
}
}'
# List available tools (use session ID from initialize response)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "mcp-session-id: " \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'
# Call a tool (use session ID from initialize response)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "mcp-session-id: " \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "search_wiki_pages",
"arguments": {
"query": "deepgram",
"page": 1,
"limit": 10
}
}
}'或者使用内置的测试客户端:
npm run test:httpDocker 使用
使用Docker镜像
# Run in stdio mode (default)
docker run -d \
--name avr-docs-mcp \
-e WIKI_JS_BASE_URL="https://your-wiki-instance.com" \
-e WIKI_JS_API_KEY="your-api-key-here" \
agentvoiceresponse/avr-docs-mcp:latest
# Run in HTTP mode
docker run -d \
--name avr-docs-mcp \
-p 3000:3000 \
-e WIKI_JS_BASE_URL="https://your-wiki-instance.com" \
-e WIKI_JS_API_KEY="your-api-key-here" \
-e MCP_MODE="http" \
-e PORT="3000" \
agentvoiceresponse/avr-docs-mcp:latestDocker Compose
version: '3.8'
services:
avr-docs-mcp:
image: agentvoiceresponse/avr-docs-mcp:latest
container_name: avr-docs-mcp
ports:
- "3000:3000" # Only needed for HTTP mode
environment:
- WIKI_JS_BASE_URL=https://your-wiki-instance.com
- WIKI_JS_API_KEY=your-api-key-here
- MCP_MODE=http
- PORT=3000
- LOG_LEVEL=info
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3可用工具
1.搜索维基页面
在Wiki中搜索页面。JS使用关键字。
参数:
query(必填):搜索查询page(可选):分页页码(默认值:1)limit(可选):每页结果数(默认值:10,最大值:50)
2.list_wiki_pages
列出Wiki中的所有可用页面。JS。
参数:
page(可选):分页页码(默认值:1)limit(可选):每页结果数(默认值:20,最大值:50)
3.get_wiki_page
通过ID或路径获取特定页面。
参数:
pageId(必填):要检索的页面的ID(数字)或路径(字符串)。示例:ID为“3”,路径为“deepgram”
维基。JS API配置
此MCP服务器使用Wiki。JS GraphQL API(/graphql 端点)。确保你的Wiki。JS实例已启用API访问,并且您的API密钥具有以下权限:
page:read-阅读页面内容page:list-列出页面search:read-搜索页面
服务器自动处理所有操作的GraphQL查询和响应。请注意Wiki。JS GraphQL API有一些限制:
- 搜索和列表操作不支持本机分页,因此分页是在客户端模拟的
- 搜索结果不包括整页内容
- 列表结果不包括整页内容(使用
get_wiki_page完整内容) - 标签以字符串数组的形式返回,而不是逗号分隔的字符串
日志记录
服务器包括具有可配置日志级别的全面日志记录:
debug-详细的调试信息info-一般信息(默认)warn-仅警告消息error-仅错误消息
设置 LOG_LEVEL 环境变量,用于控制日志的详细程度。
错误处理
该服务器包括全面的错误处理功能,用于:
- 缺少环境变量
- 网络连接问题
- API身份验证失败
- 页面ID无效
- 速率限制
发展
要在热重新加载的开发模式下运行:
npm run watch建筑
为生产而构建:
npm run build编译后的JavaScript将位于 dist/ 目录。
支持与社区
- github: -报告问题,贡献代码。
- 不一致: https://discord.gg/DFTU69Hg74 -加入社区讨论。
- Docker Hub: -查找Docker镜像。
- 维基: https://wiki.agentvoiceresponse.com/en/home -项目文件和指南。
支持AVR
AVR是免费和开源的。 任何支持都是完全自愿的,旨在表达个人的感激之情。 捐赠不提供功能、服务或特殊福利,无论捐赠如何,该项目都是完全可用的。
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
