Skip to main content
Glama

Quarkdown MCP Server

by Lillard01
record.md8.29 kB
# Quarkdown MCP 项目更新记录 ## 项目改进历程 ### 第一阶段:系统性功能改进 (2024年12月) #### 改进概述 根据深度分析结果,我们对 Quarkdown MCP 项目进行了系统性改进,主要解决了以下问题: #### 1. 命令行参数映射错误修正 **问题描述** - `wrapper.py` 中的 `compile_document` 方法使用了错误的命令行参数 - 使用了 `--output-format` 和 `--output-path`,但 Quarkdown CLI 实际使用 `-o`/`--out` 和 `-r`/`--render` **解决方案** - **文件**: `src/quarkdown_mcp/core/wrapper.py` - **修改**: 第 500-600 行的 `compile_document` 方法 - **变更**: - `--output-format` → `-r` (render target) - `--output-path` → `-o` (output directory) - 添加了 `--pretty` 和 `--nowrap` 选项支持 #### 2. 错误处理机制改进 **问题描述** - 即使编译失败,工具仍可能返回 `success=True` - 缺少对编译输出内容的错误模式检查 **解决方案** - **增强错误检测**: - 检查返回码 (`return_code != 0`) - 搜索输出中的错误关键词 (`"error"`, `"failed"`, `"unresolved"`) - 改进错误消息解析和报告 #### 3. 语法验证功能增强 **问题描述** - `validate_syntax` 方法功能有限 - 缺少对 Quarkdown 特定语法的检查 - 没有详细的错误和警告分类 **解决方案** - **文件**: `src/quarkdown_mcp/core/wrapper.py` - **新增功能**: - `strict_mode` 参数支持 - `_check_quarkdown_syntax` 方法,检查常见语法问题 - 详细的错误和警告分类 - 支持检查: - `.callout` 缺少 type 参数 - 函数调用语法错误 - 未知容器类型 - 图片缺少 alt 文本 #### 4. 配置类功能扩展 **问题描述** - `QuarkdownConfig` 类缺少 `create_temp_dir` 方法 - `wrapper.py` 中调用了不存在的方法 **解决方案** - **文件**: `src/quarkdown_mcp/core/config.py` - **新增方法**: `create_temp_dir(prefix="quarkdown_")` - **功能**: 创建临时目录,支持自定义前缀 #### 5. 工具接口更新 **问题描述** - `validate_markdown` 工具需要支持新的 `strict_mode` 参数 - 工具调用需要适配改进后的 `validate_syntax` 方法 **解决方案** - **文件**: `src/quarkdown_mcp/tools/validate.py` - **更新**: - 工具定义中已包含 `strict_mode` 参数 - 更新 `execute` 方法以正确调用改进后的 `validate_syntax` - 合并所有警告信息 (`warnings + additional_warnings`) #### 6. 代码清理 **问题描述** - `wrapper.py` 中存在重复的 `validate_syntax` 方法定义 **解决方案** - 删除重复的方法定义 - 保留改进后的版本 #### 第一阶段测试验证 创建了 `test_improvements.py` 测试脚本,验证了: ✅ **配置类改进**: - `QuarkdownConfig.create_temp_dir` 方法正常工作 - 临时目录创建和清理功能正常 ✅ **语法检查改进**: - `_check_quarkdown_syntax` 方法正常工作 - 能够检测到 1 个错误和 3 个警告: - 错误: 函数调用缺少闭合括号 - 警告: Callout 缺少 type 参数 - 警告: 未知容器类型 - 警告: 图片缺少描述性 alt 文本 ### 第二阶段:测试流程优化 (2024年12月) #### 问题描述 原有的测试流程存在以下问题: 1. 测试等待时间过长,影响开发效率 2. 复杂的测试依赖导致环境配置困难 3. 测试失败时难以快速定位问题 #### 解决方案 **1. 创建快速基础测试 (quick_test.py)** - **目的**: 快速验证项目基本功能 - **测试内容**: - 模块导入测试 - 配置创建测试 - 包装器创建测试 - 工具模块导入测试 - Java 环境检测 - **优势**: 执行时间短,能快速发现基础问题 **2. 创建功能验证测试 (functional_test.py)** - **目的**: 验证各个工具的核心功能 - **测试内容**: - 编译工具 (CompileDocumentTool) - 验证工具 (ValidateMarkdownTool) - 预览工具 (PreviewServerTool) - 项目创建工具 (CreateProjectTool) - 批量转换工具 (ConvertBatchTool) - JAR 文件存在性检查 - **优势**: 全面覆盖主要功能,便于功能回归测试 **3. 修复的技术问题** **缩进错误修复** - **文件**: `src/quarkdown_mcp/tools/preview.py` - **问题**: 第154行 `_clean_and_validate_params` 方法缩进不正确 - **解决**: 调整方法缩进到正确的类方法级别 **属性访问错误修复** - **问题**: 测试脚本尝试直接访问 `tool.name` 属性 - **原因**: 工具类继承自 `BaseTool`,名称通过 `get_tool_definition().name` 获取 - **解决**: 修改所有测试脚本使用正确的属性访问方式 #### 第二阶段测试结果 **快速基础测试结果** ``` ✅ 模块导入测试: 通过 ✅ 配置创建测试: 通过 ✅ 包装器创建测试: 通过 ✅ 工具模块导入测试: 通过 ✅ Java 环境检测: 通过 📊 基础测试结果: 5/5 通过 ``` **功能验证测试结果** ``` ✅ 编译工具: 通过 (compile_document) ✅ 验证工具: 通过 (validate_markdown) ✅ 预览工具: 通过 (preview_server) ✅ 项目创建工具: 通过 (create_project) ✅ 批量转换工具: 通过 (convert_batch) ✅ JAR 文件检查: 通过 (23.2 MB) 📊 功能验证结果: 6/6 通过 ``` ## 技术架构验证 ### 工具架构 - **基础类**: `BaseTool` - 提供统一的工具接口 - **配置管理**: `QuarkdownConfig` - 统一配置管理 - **核心包装器**: `QuarkdownWrapper` - Java 交互层 - **工具实现**: 各个具体工具类继承 `BaseTool` ### MCP 集成 - 所有工具都正确实现了 MCP 协议要求的接口 - `get_tool_definition()` 方法返回标准的 `Tool` 对象 - 输入参数通过 JSON Schema 定义 - 支持异步执行模式 ### Java 环境 - JAR 文件正确构建并存在 - 文件大小: 23.2 MB - 位置: `quarkdown/build/libs/quarkdown.jar` ## 项目改进效果总结 ### 功能改进效果 1. **命令行兼容性**: 修正了与 Quarkdown CLI 的参数不匹配问题 2. **错误处理**: 提供更准确的编译状态判断和错误报告 3. **语法验证**: 增强了对 Quarkdown 特定语法的检查能力 4. **代码质量**: 消除了重复代码,增加了缺失的方法 5. **用户体验**: 提供更详细的错误信息和建议 ### 测试策略优化效果 1. **分层测试**: 基础测试 + 功能测试,快速定位问题层级 2. **快速反馈**: 优先运行快速测试,减少等待时间 3. **全面覆盖**: 功能测试覆盖所有主要工具和组件 ### 代码质量改进 1. **统一接口**: 确保所有工具类遵循相同的接口规范 2. **错误处理**: 改进错误信息,便于问题诊断 3. **文档完善**: 测试脚本包含清晰的功能说明 ### 开发效率提升 1. **快速验证**: 从长时间等待改为秒级验证 2. **问题定位**: 清晰的测试输出便于快速定位问题 3. **持续集成**: 测试脚本可集成到 CI/CD 流程 ## 注意事项 - 所有改进都保持了向后兼容性 - 新增的功能都有合理的默认值 - 错误处理更加健壮,不会因为单个检查失败而影响整体功能 - 测试验证了核心功能的正确性 ## 后续改进建议 1. **单元测试**: 为每个工具类添加详细的单元测试 2. **集成测试**: 测试工具间的协作功能 3. **性能测试**: 测试大文件和批量处理的性能 4. **错误场景**: 测试各种错误输入和异常情况 5. **文档生成**: 自动生成 API 文档和使用示例 6. 添加更多的单元测试覆盖新增功能 7. 考虑添加集成测试验证完整的编译流程 8. 可以考虑添加更多的 Quarkdown 语法检查规则 9. 优化错误消息的用户友好性 ## 结论 通过两个阶段的系统性改进,Quarkdown MCP 项目现在具备了: - ✅ **功能完整性**: 修复了核心功能的关键问题 - ✅ **快速验证**: 基础功能秒级验证 - ✅ **全面测试**: 所有主要功能覆盖 - ✅ **问题定位**: 清晰的错误信息和测试输出 - ✅ **代码质量**: 修复了发现的技术问题 - ✅ **开发效率**: 大幅提升测试和调试效率 - ✅ **用户体验**: 提供更准确的错误报告和建议 项目现在具备了稳定可靠的功能基础和测试体系,为后续开发和维护提供了有力保障。

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Lillard01/quarkdown-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server