Doxygen文档MCP服务器
   
一个模型上下文协议(MCP)服务器,使AI代理能够抓取和解析Doxygen文档站点。该工具提供了对库和框架的API文档的实时访问,使人工智能代理可以轻松获取不太常用库的最新信息。
特性
- 通用Doxygen支持:适用于任何标准Doxygen文档网站
- 智能高速缓存:HTTP响应缓存(5分钟)和搜索索引缓存(30分钟)以获得最佳性能
- 全面解析:提取类、函数、模块、文件和相关页面
- 全文检索:具有内容片段和类型分类的快速搜索功能
- 实时集成测试:所有测试都在真实的文档网站上运行
- TypeScript支持:全型安全,接口全面
- 性能优化:测试在约10秒内完成,功能齐全
快速开始
安装
# Clone the repository
git clone https://github.com/akshaynexus/doxygen-docs-mcp.git
cd doxygen-docs-mcp
# Install dependencies
bun install用法
作为MCP服务器
# Start the MCP server (set base URL once)
bun run src/server.ts --baseUrl https://open.ys7.com/doc/en/pc程序化使用
import { EnhancedDoxygenCrawler } from './src/enhanced-crawler';
const crawler = new EnhancedDoxygenCrawler();
const baseUrl = 'https://open.ys7.com/doc/en/pc';
// Search documentation
const results = await crawler.searchDocs(baseUrl, 'SDK', 10);
// List all classes
const classes = await crawler.listClasses(baseUrl);
// Get class details
const details = await crawler.getClassDetails(baseUrl, 'STREAM_TIME');
// Get page content
const content = await crawler.getPageContent(baseUrl, 'index.html');
// Get navigation structure
const structure = await crawler.getNavigationStructure(baseUrl);
// Clean up
await crawler.close();支持的网站
此MCP服务器适用于任何标准Doxygen文档站点,包括:
- YS7 OpenSDK: https://open.ys7.com/doc/en/pc(广泛测试)
- 任何Doxygen生成的具有标准HTML结构的文档
- 自定义Doxygen主题(可能需要稍作调整)
测试
该项目包括全面的测试套件:
# Run all tests
bun test
# Run specific test files
bun test tests/live.test.ts
bun test tests/mcp-server.test.ts
bun test tests/unit.test.ts测试覆盖率
- 实时集成测试:对真实文档网站进行24次测试
- MCP服务器测试:15个以上测试模拟实际MCP服务器工作流程
- 单元测试:25+内部方法和边缘情况测试
- 性能测试:所有测试在约10秒内完成
API工具
当作为MCP服务器运行时,可以使用以下工具:
search_docs
在Doxygen文档中搜索特定内容。
参数:
baseUrl(字符串,可选):Doxygen站点的基本URL。如果省略,服务器将使用启动时通过传递的值--baseUrl.query(字符串,必填):搜索词maxResults(数字,可选):返回的最大结果数(默认值:10)
get_page_content
从特定文档页面提取干净的文本内容。
参数:
baseUrl(字符串,可选):Doxygen站点的基本URL。如果省略,服务器将使用启动时通过传递的值--baseUrl.path(string,必填):页面的相对路径
list_classes
列出文档中找到的所有类。
参数:
baseUrl(字符串,可选):Doxygen站点的基本URL。如果省略,服务器将使用启动时通过传递的值--baseUrl.
get_class_details
获取特定类的详细信息。
参数:
baseUrl(字符串,可选):Doxygen站点的基本URL。如果省略,服务器将使用启动时通过传递的值--baseUrl.className(string,必填):类的名称
性能特点
- HTTP缓存:响应缓存5分钟,以避免冗余请求
- 搜索索引缓存:搜索索引缓存30分钟,以便后续快速搜索
- 高效的DOM处理:优化的选择器和有限的处理速度
- 并行操作:支持多个同时请求
需求
- 包子:v1.2.20或更高版本
- TypeScript:v4.9或更高版本
- 网络接入:爬行文档站点所需
发展
# Install dependencies
bun install
# One-off: Configure repo hooks (pre-commit runs TypeScript typecheck)
bun run setup:hooks
chmod +x githooks/pre-commit
# Run tests in watch mode
bun test --watch
# Build TypeScript
bun build src/server.ts
# Run with hot reload
bun --hot src/server.ts贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 进行更改
- 运行测试:
bun test - 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
文档
有关API文档、配置选项和示例的详细信息,请参阅 docs.md.
