Skip to main content
Glama

Magic-API MCP Server

by Dwsy
README.md22.3 kB
# Magic-API MCP Server 使用指南 ## 🚀 快速开始 本项目集成了 Model Context Protocol (MCP) 功能,为 Magic-API 开发提供高级交互能力。 ### 1. 安装与测试 ```bash # 如果尚未安装 uv (推荐方式) pip install uv # 安装项目依赖 uv sync # 或者安装 fastmcp uv add fastmcp ``` ### 2. MCP 配置 #### 基础配置(适用于大多数用户): ```json { "mcpServers": { "magic-api-mcp-server": { "command": "uvx", "args": ["magic-api-mcp-server", "--transport", "stdio"], "timeout": 600 } } } ``` #### 高级配置(需要自定义环境): ```json { "mcpServers": { "magic-api-mcp-server": { "command": "uvx", "args": ["magic-api-mcp-server", "--transport", "stdio"], "timeout": 600, "env": { "MAGIC_API_BASE_URL": "http://127.0.0.1:10712", "MAGIC_API_WS_URL": "ws://127.0.0.1:10712/magic/web/console", "MAGIC_API_TIMEOUT_SECONDS": "30.0", "LOG_LEVEL": "INFO" } } } } ``` #### 使用不同工具组合的配置: ```json { "mcpServers": { "magic-api-mcp-server-full": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "full", "--transport", "stdio"], "timeout": 600 }, "magic-api-mcp-server-minimal": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "minimal", "--transport", "stdio"], "timeout": 600 }, "magic-api-mcp-server-development": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "development", "--transport", "stdio"], "timeout": 600 }, "magic-api-mcp-server-production": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "production", "--transport", "stdio"], "timeout": 600 }, "magic-api-mcp-server-documentation-only": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "documentation_only", "--transport", "stdio"], "timeout": 600 }, "magic-api-mcp-server-api-only": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "api_only", "--transport", "stdio"], "timeout": 600 }, "magic-api-mcp-server-backup-only": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "backup_only", "--transport", "stdio"], "timeout": 600 }, "magic-api-mcp-server-class-method-only": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "class_method_only", "--transport", "stdio"], "timeout": 600 }, "magic-api-mcp-server-search-only": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "search_only", "--transport", "stdio"], "timeout": 600 } } } ``` ### 3. 本项目 MCP 工具功能 Magic-API MCP 服务器为 Magic-API 开发提供以下专业工具: #### 3.1 系统工具 (SystemTools) 系统信息和元数据工具 - **get_assistant_metadata**: 获取Magic-API MCP Server的完整元信息,包括版本、功能列表和配置 #### 3.2 文档工具 (DocumentationTools) 文档查询和知识库工具,提供全面的Magic-API文档查询功能 - **get_script_syntax**: 获取Magic-API脚本语法说明 - **get_module_api**: 获取内置模块的API文档 - **get_function_docs**: 获取内置函数库文档 - **get_extension_docs**: 获取类型扩展功能文档 - **get_config_docs**: 获取配置选项说明 - **get_plugin_docs**: 获取插件系统文档 - **get_best_practices**: 获取最佳实践指南 - **get_pitfalls**: 获取常见问题和陷阱 - **get_workflow**: 获取工作流模板 - **list_examples**: 列出所有可用示例 - **get_examples**: 获取特定类型的示例代码 - **get_docs**: 获取官方文档索引和内容 #### 3.3 API 工具 (ApiTools) API调用和测试工具,支持灵活的接口调用和测试 - **call_magic_api**: 调用Magic-API接口并返回请求结果,支持GET、POST、PUT、DELETE等HTTP方法 #### 3.4 资源管理工具 (ResourceManagementTools) 完整的资源管理系统,支持资源树查询、CRUD操作等 - **get_resource_tree**: 获取资源树,支持多种过滤和导出格式 - **get_resource_detail**: 获取特定资源的详细信息 - **create_resource_group**: 创建新的资源分组 - **create_api_resource**: 创建新的API资源 - **copy_resource**: 复制现有资源 - **move_resource**: 移动资源到其他分组 - **delete_resource**: 删除资源(支持软删除) - **lock_resource**: 锁定资源防止修改 - **unlock_resource**: 解锁资源 - **list_resource_groups**: 列出所有资源分组 - **export_resource_tree**: 导出完整的资源树结构 - **get_resource_stats**: 获取资源统计信息 #### 3.5 查询工具 (QueryTools) 高效的资源查询和检索工具 - **find_resource_id_by_path**: 根据API路径查找对应的资源ID,支持模糊匹配 - **get_api_details_by_path**: 根据API路径直接获取接口的详细信息,支持模糊匹配 - **find_api_ids_by_path**: 批量查找匹配路径的API资源ID列表 - **find_api_details_by_path**: 批量获取匹配路径的API资源详细信息 #### 3.6 调试工具 (DebugTools) 强大的调试功能,支持断点管理和调试会话 - **set_breakpoint**: 在指定API脚本中设置断点 - **remove_breakpoint**: 移除指定的断点 - **resume_breakpoint_execution**: 恢复断点执行,继续运行调试脚本 - **step_over_breakpoint**: 单步执行,越过当前断点继续执行 - **list_breakpoints**: 列出所有当前设置的断点 - **call_api_with_debug**: 调用指定接口并在命中断点处暂停 - **execute_debug_session**: 执行完整的调试会话 - **get_debug_status**: 获取当前调试状态 - **clear_all_breakpoints**: 清除所有断点 - **get_websocket_status**: 获取WebSocket连接状态 #### 3.7 搜索工具 (SearchTools) 内容搜索和定位工具 - **search_api_scripts**: 在所有API脚本中搜索关键词 - **search_todo_comments**: 搜索API脚本中的TODO注释 #### 3.8 备份工具 (BackupTools) 完整的备份管理功能 - **list_backups**: 查询备份列表,支持时间戳过滤和名称过滤 - **get_backup_history**: 获取备份历史记录 - **get_backup_content**: 获取指定备份的内容 - **rollback_backup**: 回滚到指定的备份版本 - **create_full_backup**: 创建完整的系统备份 #### 3.9 类方法工具 (ClassMethodTools) Java类和方法检索工具 - **list_magic_api_classes**: 列出所有Magic-API可用的类、扩展和函数,支持翻页浏览 - **get_class_details**: 获取指定类的详细信息,包括方法、属性和继承关系 - **get_method_details**: 获取指定方法的详细信息,包括参数类型和返回值 #### 3.10 代码生成工具 (CodeGenerationTools) - 当前禁用 智能代码生成功能(需启用后使用) - **generate_crud_api**: 生成完整的CRUD API接口代码 - **generate_database_query**: 生成数据库查询代码 - **generate_api_test**: 生成API接口测试代码 - **generate_workflow_code**: 生成工作流模板代码 ### 4. 工具组合配置 本项目支持多种工具组合,可根据需要选择: - `full`: 完整工具集 - 适用于完整开发环境 (默认) - `minimal`: 最小工具集 - 适用于资源受限环境 - `development`: 开发工具集 - 专注于开发调试 - `production`: 生产工具集 - 生产环境稳定运行 - `documentation_only`: 仅文档工具 - 文档查询和学习 - `api_only`: 仅API工具 - 接口测试和调用 - `backup_only`: 仅备份工具 - 数据备份和管理 - `class_method_only`: 仅类方法工具 - Java类和方法查询 - `search_only`: 仅搜索工具 - 快速搜索定位 ### 5. 环境变量 | 变量 | 用途 | 值 | 默认值 | |------|------|----|--------| | MAGIC_API_BASE_URL | Magic-API 服务基础 URL | URL 地址 | http://127.0.0.1:10712 | | MAGIC_API_WS_URL | Magic-API WebSocket URL | WebSocket 地址 | ws://127.0.0.1:10712/magic/web/console | | MAGIC_API_USERNAME | Magic-API 认证用户名 | 字符串 | 无 | | MAGIC_API_PASSWORD | Magic-API 认证密码 | 字符串 | 无 | | MAGIC_API_TOKEN | Magic-API 认证令牌 | 字符串 | 无 | | MAGIC_API_AUTH_ENABLED | 是否启用认证 | true/false | false | | MAGIC_API_TIMEOUT_SECONDS | 请求超时时间(秒) | 数字 | 30.0 | | LOG_LEVEL | 日志级别 | DEBUG/INFO/WARNING/ERROR | INFO | | FASTMCP_TRANSPORT | FastMCP 传输协议 | stdio/http | stdio | ### 6. 本地运行方式 ```bash # 推荐方式:使用 uvx 运行(适用于已发布到 pip 的包) uvx magic-api-mcp-server # 或者直接运行 Python 脚本(开发时) python run_mcp.py # 指定工具组合运行 uvx magic-api-mcp-server --composition development # 使用特定配置运行 MAGIC_API_BASE_URL=http://localhost:8080 uvx magic-api-mcp-server ``` ### 7. Docker 运行方式 #### 使用 Docker Compose (推荐) ```bash # 使用 Makefile 命令 (推荐,简化操作) make quick-start # 快速启动开发环境 make deploy # 生产环境部署 make logs # 查看日志 make status # 查看状态 make shell # 进入容器 make test # 运行测试 # 或直接使用 docker-compose 命令 # 1. 构建并启动服务 docker-compose up -d # 2. 查看日志 docker-compose logs -f magic-api-mcp-server # 3. 停止服务 docker-compose down # 4. 重启服务 docker-compose restart magic-api-mcp-server ``` #### 使用 Docker 命令 (基于 uvx) ```bash # 1. 构建镜像 docker build -t magic-api-mcp-server . # 2. 运行容器 (stdio模式) docker run --rm --entrypoint uvx magic-api-mcp-server \ magic-api-mcp-server --composition full --transport stdio # 3. 运行容器 (HTTP模式) docker run -d --name magic-api-mcp-server \ -p 8000:8000 \ --entrypoint uvx magic-api-mcp-server \ magic-api-mcp-server --transport http --port 8000 # 4. 查看日志 docker logs -f magic-api-mcp-server # 5. 停止容器 docker stop magic-api-mcp-server ``` #### Docker 配置说明 **基于 uvx 的优势**: - 自动下载并运行最新版本的包 - 无需预先安装依赖 - 镜像更小,构建更快 - 自动处理包版本管理 **生产环境配置** (`docker-compose.yml`): - 使用桥接网络连接到Magic-API服务 - 配置资源限制和健康检查 - 支持自动重启 **开发环境配置** (`docker-compose.override.yml`): - 挂载源代码支持热重载 - 调试日志级别 - 禁用健康检查 #### Docker 环境变量 | 变量 | 描述 | 默认值 | |------|------|--------| | `MAGIC_API_BASE_URL` | Magic-API 服务基础 URL | `http://host.docker.internal:10712` | | `MAGIC_API_WS_URL` | Magic-API WebSocket URL | `ws://host.docker.internal:10712/magic/web/console` | | `MAGIC_API_USERNAME` | 认证用户名 | 无 | | `MAGIC_API_PASSWORD` | 认证密码 | 无 | | `MAGIC_API_TOKEN` | 认证令牌 | 无 | | `MAGIC_API_AUTH_ENABLED` | 是否启用认证 | `false` | | `MAGIC_API_TIMEOUT_SECONDS` | 请求超时时间 | `30.0` | | `LOG_LEVEL` | 日志级别 | `INFO` | | `FASTMCP_TRANSPORT` | MCP传输协议 | `stdio` | #### 网络配置注意事项 - **Linux**: 使用 `host.docker.internal` 访问宿主机服务 - **macOS/Windows**: Docker Desktop 自动提供 `host.docker.internal` - **自定义网络**: 可通过 `docker network` 创建专用网络 #### Docker 构建问题解决 如果遇到网络证书验证问题,请尝试以下解决方案: **方案1: 使用国内镜像源** ```bash # 修改Dockerfile添加国内镜像源 RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/debian.sources RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/ ``` **方案2: 配置Docker代理** ```bash # 创建或修改 ~/.docker/config.json { "proxies": { "default": { "httpProxy": "http://127.0.0.1:7897", "httpsProxy": "http://127.0.0.1:7897", "noProxy": "localhost,127.0.0.1" } } } ``` **方案3: 跳过TLS验证 (仅用于测试)** ```bash # 临时跳过TLS验证构建 docker build --build-arg DOCKER_TLS_VERIFY=0 -t magic-api-mcp-server:test . ``` **方案4: 使用预构建镜像** ```bash # 如果网络问题持续,可考虑使用预构建的基础镜像 # 或者在有稳定网络的环境中构建 ``` #### 故障排除 ```bash # 使用 Makefile 命令 (推荐) make status # 查看容器状态 make shell # 进入容器调试 make logs-tail # 查看详细日志 make test # 运行健康检查 make test-connection # 测试与 Magic-API 连接 make clean-all # 清理所有资源 # 或直接使用 docker/docker-compose 命令 # 查看容器状态 docker-compose ps # 进入容器调试 docker-compose exec magic-api-mcp-server bash # 查看详细日志 docker-compose logs --tail=100 magic-api-mcp-server # 清理容器和镜像 docker-compose down --rmi all --volumes ``` ### 8. 项目结构 ``` magicapi_mcp/ ├── magicapi_assistant.py # 主要的 MCP 助手实现 ├── tool_registry.py # 工具注册表 ├── tool_composer.py # 工具组合器 └── settings.py # 配置设置 magicapi_tools/ ├── tools/ # 各种 MCP 工具 │ ├── system.py # 系统工具 (元信息查询) │ ├── documentation.py # 文档工具 (知识库查询) │ ├── api.py # API工具 (接口调用) │ ├── resource.py # 资源管理工具 (CRUD操作) │ ├── query.py # 查询工具 (资源检索) │ ├── debug.py # 调试工具 (断点管理) │ ├── search.py # 搜索工具 (内容搜索) │ ├── backup.py # 备份工具 (数据备份) │ ├── class_method.py # 类方法工具 (Java类查询) │ ├── code_generation.py # 代码生成工具 (当前禁用) │ └── common.py # 通用辅助函数 └── utils/ # 工具助手功能 ├── knowledge_base.py # 知识库接口 ├── response.py # 标准化响应 ├── http_client.py # HTTP 客户端 └── resource_manager.py # 资源管理器 ``` ### 9. 使用场景 #### 场景 1: 新手学习 Magic-API 使用 `documentation_only` 组合,专注于学习和文档查询: ```json { "mcpServers": { "magic-api-docs": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "documentation_only", "--transport", "stdio"], "timeout": 600 } } } ``` #### 场景 2: API 开发和测试 使用 `api_only` 或 `query` 组合,进行接口开发和测试: ```json { "mcpServers": { "magic-api-dev": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "development", "--transport", "stdio"], "timeout": 600 } } } ``` #### 场景 3: 生产环境运维 使用 `backup_only` 或 `resource_management` 组合,进行系统运维: ```json { "mcpServers": { "magic-api-ops": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "production", "--transport", "stdio"], "timeout": 600 } } } ``` #### 场景 4: 问题排查和调试 使用 `debug` 组合,进行问题排查和调试: ```json { "mcpServers": { "magic-api-debug": { "command": "uvx", "args": ["magic-api-mcp-server", "--composition", "minimal", "--transport", "stdio"], "timeout": 600, "env": { "LOG_LEVEL": "DEBUG" } } } } ``` ### 10. 安装方式 #### 从 PyPI 安装(推荐) ```bash # 安装已发布的包 pip install magic-api-mcp-server # 或使用 uv 安装 uv add magic-api-mcp-server # 运行 MCP 服务器 uvx magic-api-mcp-server ``` #### 开发者本地安装 ```bash # 本项目已包含完整的 MCP 实现 cd magic-api-mcp-server # 安装项目依赖(开发时) uv sync # 安装 fastmcp 依赖 uv add fastmcp # 本地运行(开发时) python run_mcp.py ``` ## 🛠️ 项目结构 ``` magicapi_mcp/ ├── magicapi_assistant.py # 主要的 MCP 助手实现 ├── tool_registry.py # 工具注册表 ├── tool_composer.py # 工具组合器 └── settings.py # 配置设置 magicapi_tools/ ├── tools/ # 各种 MCP 工具 │ ├── documentation.py # 文档相关工具 │ ├── api.py # API 相关工具 │ ├── code_generation.py # 代码生成工具 (当前已禁用) │ ├── query.py # 查询工具 │ ├── backup.py # 备份工具 │ ├── class_method.py # 类方法工具 │ ├── debug.py # 调试工具 │ ├── resource.py # 资源管理工具 │ ├── search.py # 搜索工具 │ └── system.py # 系统工具 └── utils/ # 工具助手功能 ├── knowledge_base.py # 知识库接口 ├── response.py # 标准化响应 ├── http_client.py # HTTP 客户端 └── resource_manager.py # 资源管理器 ``` ## 🎯 使用场景 ### 场景 1: 获取 API 详细信息 使用 `get_examples` 工具获取 Magic-API 脚本语法示例和最佳实践。 ### 场景 2: API 测试 使用 `call_api` 工具测试 Magic-API 接口。 ### 11. MCP 提示词 #### 提示词概述 当使用支持 MCP 的 AI 助手(如 Claude Desktop、Cursor 等)时,请使用以下提示词让助手了解 Magic-API MCP Server 的功能和用途。 #### 核心提示词 ``` 你现在是一个专业的 Magic-API 开发者助手,具备强大的 MCP (Model Context Protocol) 工具支持。 ## 🎯 你的核心职能 - 提供 Magic-API 脚本语法指导和最佳实践 - 帮助用户编写高效的数据库查询和业务逻辑 - 解答 Magic-API 配置和部署相关问题 - 提供代码示例和调试建议 ## 🛠️ 可用工具能力 ### 文档查询 (DocumentationTools) - **get_script_syntax**: 获取 Magic-API 脚本语法说明 - **get_module_api**: 获取内置模块 API 文档 (db, http, request, response, log, env, cache, magic) - **get_function_docs**: 获取内置函数库文档 - **get_best_practices**: 获取最佳实践指南 - **get_pitfalls**: 获取常见问题和陷阱 - **list_examples**: 列出所有可用示例 - **get_examples**: 获取具体代码示例 ### API 调用 (ApiTools) - **call_magic_api**: 调用 Magic-API 接口,支持 GET/POST/PUT/DELETE 等所有 HTTP 方法 ### 资源管理 (ResourceManagementTools) - **get_resource_tree**: 获取完整的资源树结构 - **create_api_resource**: 创建新的 API 接口 - **delete_resource**: 删除资源 - **get_resource_detail**: 获取资源详细信息 - **copy_resource**: 复制资源 - **move_resource**: 移动资源到其他分组 ### 查询工具 (QueryTools) - **find_resource_id_by_path**: 根据路径查找资源 ID - **get_api_details_by_path**: 获取接口详细信息 - **find_api_ids_by_path**: 批量查找资源 ID - **find_api_details_by_path**: 批量获取详细信息 ### 调试工具 (DebugTools) - **set_breakpoint**: 设置断点进行调试 - **resume_breakpoint_execution**: 恢复执行 - **step_over_breakpoint**: 单步执行 - **call_api_with_debug**: 调试模式下调用 API - **list_breakpoints**: 查看所有断点 ### 搜索工具 (SearchTools) - **search_api_scripts**: 在所有 API 脚本中搜索关键词 - **search_todo_comments**: 搜索 TODO 注释 ### 备份工具 (BackupTools) - **list_backups**: 查看备份列表 - **create_full_backup**: 创建完整备份 - **rollback_backup**: 回滚到指定备份 ### 系统工具 (SystemTools) - **get_assistant_metadata**: 获取系统元信息和配置 ## 📋 使用指南 #### 问题分析 首先理解用户的需求和上下文,再选择合适的工具。 #### 工具选择策略 - **学习阶段**: 使用 DocumentationTools 了解语法和示例 - **开发阶段**: 使用 ApiTools 和 QueryTools 进行接口开发 - **调试阶段**: 使用 DebugTools 排查问题 - **运维阶段**: 使用 ResourceManagementTools 和 BackupTools #### 最佳实践 - 优先使用文档查询工具了解功能 - 开发时先用查询工具了解现有资源 - 调试时设置断点逐步排查问题 - 重要的变更操作前先备份 #### 错误处理 - 网络错误时检查 Magic-API 服务状态 - 权限错误时确认用户认证配置 - 资源不存在时先用查询工具确认路径 ## ⚠️ 注意事项 - 所有工具都支持中文和英文参数 - API 调用支持自定义请求头和参数 - 调试功能需要 WebSocket 连接 - 备份操作会影响系统状态,请谨慎使用 记住:你现在具备了完整的 Magic-API 开发工具链,可以为用户提供专业、高效的开发支持! ``` #### 简短提示词 (适用于快速配置) ``` 你是一个专业的 Magic-API 开发者助手,拥有以下 MCP 工具: 📚 文档查询: get_script_syntax, get_module_api, get_best_practices, get_examples 🔧 API 调用: call_magic_api 📁 资源管理: get_resource_tree, create_api_resource, delete_resource 🔍 查询工具: find_resource_id_by_path, get_api_details_by_path 🐛 调试工具: set_breakpoint, resume_breakpoint_execution, call_api_with_debug 🔎 搜索工具: search_api_scripts, search_todo_comments 💾 备份工具: list_backups, create_full_backup, rollback_backup ⚙️ 系统工具: get_assistant_metadata 优先使用文档工具了解功能,然后根据需求选择合适的工具进行操作。 ``` #### 配置提示词 (Cursor/VS Code 等编辑器) ```json { "mcpServers": { "magic-api-mcp-server": { "command": "uvx", "args": ["magic-api-mcp-server", "--transport", "stdio"], "timeout": 600, "env": { "MAGIC_API_BASE_URL": "http://127.0.0.1:10712", "MAGIC_API_WS_URL": "ws://127.0.0.1:10712/magic/web/console" } } } } ``` 本项目 MCP 服务器专为 Magic-API 开发者设计,提供了一套完整的工作流工具,从脚本编写、API 管理到调试和部署,全方位提升开发效率。

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/Dwsy/magic-api-mcp-server'

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