MCP Hub
Back to servers

Magic-API

Magic-API MCP Server integrates with the Magic-API development environment to provide API lifecycle management, Magic-Script debugging with breakpoints, and comprehensive Java class introspection via MCP tools.

Stars
19
Forks
6
Tools
59
Updated
Dec 15, 2025
Validated
Jan 11, 2026

Magic-API MCP Server 使用指南

🚀 快速开始

本项目集成了 Model Context Protocol (MCP) 功能,为 Magic-API 开发提供高级交互能力。

1. 安装与测试

# 如果尚未安装 uv (推荐方式)
pip install uv

# 安装项目依赖
uv sync
# 或者安装 fastmcp
uv add fastmcp

2. MCP 配置

基础配置(适用于大多数用户):

{
  "mcpServers": {
    "magic-api-mcp-server": {
      "command": "uvx",
      "args": ["magic-api-mcp-server@latest", "--transport", "stdio"],
      "timeout": 600
    }
  }
}

高级配置(需要自定义环境):

{
  "mcpServers": {
    "magic-api-mcp-server": {
      "command": "uvx",
      "args": ["magic-api-mcp-server@latest", "--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"
      }
    }
  }
}

MCP 提示词 (非常重要)

提示词概述

当使用支持 MCP 的 AI 助手(如 Claude Desktop、Cursor 等)时,请务必使用以下提示词让助手了解 Magic-API MCP Server 的功能和用途。

核心提示词
你现在是一个专业的 Magic-API 开发者助手,具备强大的 MCP (Model Context Protocol) 工具(Magic-API MCP Server)支持。

## 🎯 你的核心职能
- 提供 Magic-API 脚本语法指导和最佳实践
- 帮助用户编写高效的数据库查询和业务逻辑
- 解答 Magic-API 配置和部署相关问题
- 提供代码示例和调试建议

## ⚠️ 强制要求:代码编写前语法规则获取
**重要:** 在编写任何 Magic-Script 代码前,你必须首先调用 `get_full_magic_script_syntax` 工具获取完整的语法规则。
Magic-Script 是一种小众语言,具有独特的语法规则,不遵循标准 JavaScript 或 Java 语法。
不获取完整语法规则而直接编写代码将导致严重的语法错误。

**重要:** 在API脚本开发(create/edit API scripts)编写编辑脚本前,你必须:
1. 调用 `get_full_magic_script_syntax` 获取完整的 Magic-Script 语法规则
2. 调用 `get_development_workflow` 获取开发工作流指南
3. 遵循标准化的开发流程:准备→信息采集→执行→校验→总结

## 🧭 MagicAPI MCP Agent 核心工作流
> 流转需按顺序推进,用户可随时指令跳转。
按照以下流程调用 MCP 工具,确保每一步都有依据:
- **[需求洞察]** → `search_knowledge`、`get_development_workflow`,识别目标场景与约束
- **语法对齐** → `get_full_magic_script_syntax`、`get_script_syntax`,确认Magic-Script写法
- **[资源定位]** → `get_resource_tree`、`get_api_details_by_path`、`search_api_endpoints`,查阅现有资产
- **[实现与调试]** → `create_api_resource`、`replace_api_script`、`call_magic_api`、`call_api_with_debug`、`set_breakpoint`,落实代码并验证
- **[结果反馈]** → `get_practices_guide`、`get_common_pitfalls`、`list_backups`,输出结论并保证可回溯

## 🛠️ 可用工具能力

在本文档第 3 节中详细介绍了所有可用工具,包括:
- **文档工具** (DocumentationTools): 语法、文档、示例、最佳实践等
- **API 工具** (ApiTools): 接口调用和测试
- **资源管理工具** (ResourceManagementTools): 资源的CRUD操作
- **查询工具** (QueryTools): 资源检索
- **调试工具** (DebugTools): 断点管理
- **搜索工具** (SearchTools): 内容搜索
- **备份工具** (BackupTools): 数据备份管理
- **类方法工具** (ClassMethodTools): Java类和方法查询
- **系统工具** (SystemTools): 系统元信息查询

详情请参见下方第 3 节 "本项目 MCP 工具功能"。

## 📋 使用指南

##### 问题分析
首先理解用户的需求和上下文,再选择合适的工具。

##### 知识搜索策略
🔍 **当你不确定某个功能或语法时,优先使用搜索工具:**
- 调用 `search_knowledge` 进行全文搜索,关键词可以是功能名称、语法关键词等
- 例如:搜索"数据库连接"、"缓存使用"、"文件上传"等
- 可以限定搜索分类:syntax(语法)、modules(模块)、functions(函数)、web_docs(文档)等

##### 最佳实践
- 🔍 **遇到不确定的问题时,先搜索知识库**
- 📚 优先使用文档查询工具了解功能
- 🔍 开发时先用查询工具了解现有资源
- 🐛 调试时设置断点逐步排查问题
- 💾 重要的变更操作前先备份

##### 错误处理
- 🔍 遇到未知错误时,使用 `search_knowledge` 搜索相关解决方案
- 🌐 网络错误时检查 Magic-API 服务状态
- 🔐 权限错误时确认用户认证配置
- 📁 资源不存在时先用查询工具确认路径

## ⚠️ 注意事项
- 所有工具都支持中文和英文参数
- API 调用支持自定义请求头和参数

记住:你现在具备了完整的 Magic-API 开发工具链,可以为用户提供专业、高效的开发支持!
简短提示词 (适用于快速配置)
你是一个专业的 Magic-API 开发者助手,拥有以下 MCP 工具:

⚠️ 强制要求:
- 编写任何 Magic-Script 代码前必须先调用 get_full_magic_script_syntax 获取完整语法规则!
- API脚本开发(create/edit API scripts)编写编辑脚本前必须调用 get_development_workflow 获取工作流指南!

📚 文档查询: get_full_magic_script_syntax[强制], get_development_workflow[强制], search_knowledge[推荐], get_script_syntax, get_module_api, get_best_practices, get_examples
🔧 API 调用: call_magic_api
📁 资源管理: get_resource_tree, create_api_resource, delete_resource
🔍 查询工具: get_api_details_by_path, get_api_details_by_id, search_api_endpoints
🐛 调试工具: 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

🔍 不确定时优先使用 search_knowledge 搜索知识库,代码编写前必须获取完整语法规则。
🧭 按核心工作流顺序完成需求洞察→语法对齐→资源定位→实现调试→结果反馈。
配置提示词 (Cursor/VS Code 等编辑器)
{
  "mcpServers": {
    "magic-api-mcp-server": {
      "command": "uvx",
      "args": ["magic-api-mcp-server@latest", "--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 管理到调试和部署,全方位提升开发效率。

🧠 Prompts (提示词模板)

Magic-API MCP Server 提供了可复用的提示词模板,帮助您快速配置专业的 Magic-API 开发者助手。

可用 Prompts

magic_api_developer_guide

生成专业的 Magic-API 开发者助手提示词,包含:

  • 完整的工具能力介绍
  • 使用指南和最佳实践
  • 错误处理建议
  • 工具选择策略

使用方法:

# 通过 MCP 客户端调用
prompt = await client.get_prompt("magic_api_developer_guide")
content = prompt.messages[0].content.text

适用场景:

  • 配置新的 AI 助手
  • 标准化开发工作流
  • 培训新团队成员
  • 创建一致的开发环境

工具组合配置

本项目支持多种工具组合,可根据需要选择:

  • full: 完整工具集 - 适用于完整开发环境 (默认)
  • minimal: 最小工具集 - 适用于资源受限环境
  • development: 开发工具集 - 专注于开发调试
  • production: 生产工具集 - 生产环境稳定运行
  • documentation_only: 仅文档工具 - 文档查询和学习
  • api_only: 仅API工具 - 接口测试和调用
  • backup_only: 仅备份工具 - 数据备份和管理
  • class_method_only: 仅类方法工具 - Java类和方法查询
  • search_only: 仅搜索工具 - 快速搜索定位

工具组合使用场景

场景组合模式适用环境特点
新手学习documentation_only学习阶段专注文档查询和语法学习
API开发development开发环境接口开发、测试和调试
生产运维production生产环境系统运维和资源管理
问题调试minimal调试场景问题排查,启用DEBUG日志

基础配置模板

{
  "mcpServers": {
    "magic-api-server": {
      "command": "uvx",
      "args": ["magic-api-mcp-server@latest", "--composition", "{组合模式}", "--transport", "stdio"],
      "timeout": 600
    }
  }
}

3. 本项目 MCP 工具功能

Magic-API MCP 服务器为 Magic-API 开发提供以下专业工具:

3.1 系统工具 (SystemTools)

系统信息和元数据工具

  • get_assistant_metadata: 获取Magic-API MCP Server的完整元信息,包括版本、功能列表和配置

3.2 文档工具 (DocumentationTools)

文档查询与知识库工具,覆盖语法、实践、示例与流程

  • get_full_magic_script_syntax ⚠️ [强制]: 获取完整的Magic-Script语法规则 - 大模型编写代码前必须调用此工具
  • search_knowledge 🔍 [推荐]: 在Magic-API知识库中进行全文搜索 - 不确定时优先使用此工具
  • get_magic_script_syntax: 查询 Magic-Script 语法规则与示例
  • get_magic_script_examples: 获取脚本示例,支持关键词过滤
  • get_magic_api_docs: 查看官方文档索引或详细内容
  • get_best_practices: 查阅最佳实践列表
  • get_common_pitfalls: 查阅常见问题与规避建议
  • get_development_workflow: 获取标准化开发流程指南
  • get_module_api_docs: 查询内置模块 API 文档
  • list_available_modules: 查看可用模块与自动导入模块
  • get_function_docs: 获取内置函数库文档
  • get_extension_docs: 获取类型扩展文档(默认禁用,启用后可用)
  • get_config_docs: 获取配置项文档(默认禁用)
  • get_plugin_docs: 获取插件系统文档(默认禁用)
  • get_examples / list_examples: 统一查询示例分类与代码片段
  • get_docs: 获取 Magic-API 官方站点索引

3.3 API 工具 (ApiTools)

API调用和测试工具,支持灵活的接口调用和测试

  • call_magic_api: 调用Magic-API接口并返回请求结果,支持GET、POST、PUT、DELETE等HTTP方法
🔍 API响应智能检查

Magic-API MCP Server 支持多种API响应格式的智能成功/失败判断:

优先级顺序

  1. 🚀 message="success" - 最高优先级,直接匹配message字段是否等于"success"
  2. 🔢 Code字段检查 - 检查code字段是否等于配置的成功码(默认1,可配置)
  3. 📊 Status字段检查 - 检查status字段(某些自定义响应格式)
  4. 错误字段检查 - 检查是否存在error、exception、failure等错误字段
  5. 默认成功 - 兼容模式,对没有明确标识的响应默认视为成功

支持的响应格式示例

// 标准格式
{"code": 1, "message": "success", "data": {...}}

// 自定义状态码
{"code": 200, "message": "ok", "data": {...}}

// Message优先(最高优先级)
{"code": 500, "message": "success", "data": {...}} // 仍然成功!

{"code": 1, "message": "operation failed", "data": {...}} // 失败!

// 自定义格式
{"status": 1, "msg": "success", "body": {...}}

// 错误响应
{"code": 500, "message": "Internal Error", "data": {...}}
{"error": "something went wrong"}

配置方式

# 通过环境变量配置成功状态码和消息
MAGIC_API_SUCCESS_CODE=200
MAGIC_API_SUCCESS_MESSAGE=ok
MAGIC_API_INVALID_CODE=400
MAGIC_API_EXCEPTION_CODE=500

3.4 资源管理工具 (ResourceManagementTools)

完整的资源管理系统,支持资源树查询与批量操作

  • get_resource_tree: 获取资源树,支持过滤、导出多种格式(JSON/CSV/树形),向后兼容CSV参数
  • save_group: 保存分组,支持单个分组创建或更新,包含完整的分组配置选项
  • create_api_resource / create_api_endpoint: 创建单个或批量 API
  • replace_api_script: 按接口 ID 替换 Magic-Script 片段,支持一次或全量替换
  • copy_resource: 复制资源
  • move_resource: 移动资源
  • delete_resource: 删除单个或批量资源
  • lock_resource / unlock_resource: 批量锁定或解锁资源
  • list_resource_groups: 列出与搜索资源分组
  • get_resource_stats: 统计资源数量与类型分布

3.5 查询工具 (QueryTools)

高效的资源查询和检索工具

  • get_api_details_by_path: 根据API路径直接获取接口的详细信息,支持模糊匹配
  • get_api_details_by_id: 根据接口ID获取完整的接口详细信息和配置
  • search_api_endpoints: 搜索和过滤Magic-API接口端点,返回包含ID的完整信息列表

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: 搜索脚本中的 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: 生成工作流模板代码

3.11 提示词工具 (PromptTools)

提供可复用的提示词模板,确保助手严格遵循 MCP 工具化流程

  • magic_api_developer_guide: 输出最新版“Magic-API 开发者助手”系统提示词,强调“仅依赖 MCP 工具”工作守则、六步工具工作流以及结构化输出要求

3.12 工作流知识库亮点

magicapi_tools/utils/kb_practices.py 新增 "mcp_tool_driven" 等工作流,调用 get_development_workflowget_practices_guide 时可获取:

  • 🔍 智能搜索驱动:遇到不确定的问题时,优先调用 search_knowledge 工具进行知识库全文搜索,确保获取最新和准确的信息。
  • MCP 工具优先的通用流程:覆盖准备、信息采集、执行、校验、总结全链路,并针对每一步给出对应工具提示。
  • api_script_development / diagnose / optimize / refactor 等场景化流程:提供原则说明、步骤拆解以及工具列表,确保在接口开发、故障排查、性能优化与重构中全程依赖 MCP 工具完成。
  • 结合 magic_api_developer_guide 提示词,可让大模型在对话中主动引用工具证据,输出可验证的结论。

4. 环境变量

变量用途默认值
MAGIC_API_BASE_URLMagic-API 服务基础 URLURL 地址http://127.0.0.1:10712
MAGIC_API_WS_URLMagic-API WebSocket URLWebSocket 地址ws://127.0.0.1:10712/magic/web/console
MAGIC_API_USERNAMEMagic-API 认证用户名字符串
MAGIC_API_PASSWORDMagic-API 认证密码字符串
MAGIC_API_TOKENMagic-API 认证令牌字符串
MAGIC_API_AUTH_ENABLED是否启用认证true/falsefalse
MAGIC_API_TIMEOUT_SECONDS请求超时时间(秒)数字30.0
MAGIC_API_SUCCESS_CODEAPI成功状态码数字1
MAGIC_API_SUCCESS_MESSAGEAPI成功消息文本字符串success
MAGIC_API_INVALID_CODE参数验证失败状态码数字0
MAGIC_API_EXCEPTION_CODE系统异常状态码数字-1
LOG_LEVEL日志级别DEBUG/INFO/WARNING/ERRORINFO
FASTMCP_TRANSPORTFastMCP 传输协议stdio/httpstdio

5. 本地运行方式

# 推荐方式:使用 uvx 运行最新版本(适用于已发布到 pip 的包)
uvx magic-api-mcp-server@latest

# 或安装后使用本地命令
magic-api-mcp-server

# 或者直接运行 Python 脚本(开发时)
uv run fastmcp run run_mcp.py:mcp --transport http --port 8000

# 指定工具组合运行
uvx magic-api-mcp-server@latest --composition development

# 使用特定配置运行
MAGIC_API_BASE_URL=http://localhost:8080 uvx magic-api-mcp-server@latest

6. Docker 运行方式

使用 Docker Compose (推荐)

# 使用 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)

# 1. 构建镜像
docker build -t magic-api-mcp-server .

# 2. 运行容器 (stdio模式)
docker run --rm --entrypoint uvx magic-api-mcp-server \
  magic-api-mcp-server@latest --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@latest --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_URLMagic-API 服务基础 URLhttp://host.docker.internal:10712
MAGIC_API_WS_URLMagic-API WebSocket URLws://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
MAGIC_API_SUCCESS_CODEAPI成功状态码1
MAGIC_API_SUCCESS_MESSAGEAPI成功消息文本success
MAGIC_API_INVALID_CODE参数验证失败状态码0
MAGIC_API_EXCEPTION_CODE系统异常状态码-1
LOG_LEVEL日志级别INFO
FASTMCP_TRANSPORTMCP传输协议stdio

网络配置注意事项

  • Linux: 使用 host.docker.internal 访问宿主机服务
  • macOS/Windows: Docker Desktop 自动提供 host.docker.internal
  • 自定义网络: 可通过 docker network 创建专用网络

Docker 构建问题解决

如果遇到网络证书验证问题,请尝试以下解决方案:

方案1: 使用国内镜像源

# 修改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代理

# 创建或修改 ~/.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验证 (仅用于测试)

# 临时跳过TLS验证构建
docker build --build-arg DOCKER_TLS_VERIFY=0 -t magic-api-mcp-server:test .

方案4: 使用预构建镜像

# 如果网络问题持续,可考虑使用预构建的基础镜像
# 或者在有稳定网络的环境中构建

故障排除

# 使用 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

7. 项目结构

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 # 资源管理器

8. 安装方式

从 PyPI 安装(推荐)

# 安装已发布的包
pip install magic-api-mcp-server

# 或使用 uv 安装
uv add magic-api-mcp-server

# 运行 MCP 服务器(推荐使用最新版本)
uvx magic-api-mcp-server@latest

# 或使用安装后的命令
magic-api-mcp-server

开发者本地安装

# 本项目已包含完整的 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  # 资源管理器

AIMCP Electron 客户端附录(含 Mermaid 架构图)

本附录面向基于 Electron 的 AIMCP 客户端,指导如何对接本 Magic-API MCP Server,并提供关键流程可视化。适合作为独立开源仓库 README 模板片段复用。

项目简介(AIMCP)

  • 目标:在 Electron 应用中,通过 MCP 协议统一调用 Magic-API 能力,覆盖查询、资源管理与调试。
  • 栈特性:Electron(Main/Renderer/Preload) + Node MCP 客户端 + FastMCP Server(Python) + Magic-API(HTTP/WS)。

架构总览

flowchart LR
  subgraph Renderer[Electron Renderer UI]
    R[React/Vue/Svelte UI]
  end
  subgraph Main[Electron Main Process]
    IPC[IPC Router]
    C[Node MCP Client]
  end
  subgraph Server[magic-api-mcp-server (Python/FastMCP)]
    S[Tools: Api/Query/Debug/...]
  end
  subgraph MagicAPI[Magic-API Backend]
    A[(HTTP API)]
    W[(WS Console)]
    DB[(Database)]
  end

  R -->|ipcRenderer.invoke| IPC --> C
  C <--> |stdio/http| S
  S --> A --> DB
  S -. WebSocket Debug .-> W

关键调用时序

sequenceDiagram
  participant U as User
  participant R as Renderer
  participant M as Main
  participant C as MCP Client
  participant S as MCP Server
  participant A as Magic-API
  participant W as WS Console

  U->>R: 点击“调用接口”
  R->>M: ipcRenderer.invoke('call-magic-api', payload)
  M->>C: call_tool(name=call_magic_api, args)
  C->>S: MCP Tool Invocation
  S->>A: HTTP 请求(method/path/params)
  A-->>S: JSON 响应
  S-->>C: ToolResponse(success/data)
  C-->>M: 结果
  M-->>R: IPC 返回并渲染
  R-->>U: 展示数据
  opt 调试模式
    M->>C: set_breakpoint + call_api_with_debug
    C->>S: 调试会话
    S-->>W: 断点事件(WS)
  end

快速集成(Electron Main)

// main/mcp.ts
import { spawn } from 'node:child_process'
import { StdioClientTransport, Client } from '@modelcontextprotocol/sdk/client'

export async function createMcpClient() {
  const child = spawn('uvx', ['magic-api-mcp-server@latest', '--transport', 'stdio'], {
    stdio: ['pipe', 'pipe', 'pipe']
  })

  const transport = new StdioClientTransport({
    stdin: child.stdin!, stdout: child.stdout!, stderr: child.stderr!
  })

  const client = new Client({ name: 'AIMCP', version: '0.1.0' }, transport)
  await client.connect()
  return { client, child }
}

// 调用示例
export async function callMagicApi(client: Client, args: any) {
  return client.callTool({ name: 'call_magic_api', arguments: args })
}
// main/ipc.ts
import { ipcMain } from 'electron'
import { createMcpClient, callMagicApi } from './mcp'

let mcp: Awaited<ReturnType<typeof createMcpClient>> | null = null

ipcMain.handle('call-magic-api', async (_e, payload) => {
  if (!mcp) mcp = await createMcpClient()
  const res = await callMagicApi(mcp.client, payload)
  return res
})

渲染进程调用示例

// renderer/api.ts
export async function callApi(payload: {
  method: 'GET'|'POST'|'PUT'|'DELETE', path: string, params?: any, headers?: any
}) {
  return window.electron.ipc.invoke('call-magic-api', payload)
}

配置与安全建议

  • 在 Electron 主进程通过环境变量注入 MAGIC_API_BASE_URL/MAGIC_API_WS_URL 等,勿在 Renderer 暴露密钥。
  • 生产环境启用 MAGIC_API_AUTH_ENABLED 并使用 TOKEN 访问。
  • 调试开关建议以 Feature Flag 控制(仅开发环境允许 set_breakpoint)。

常用功能映射

  • API 调用:call_magic_api(支持自定义 success 判断,详见前文环境变量)。
  • 资源检索:search_api_endpoints、get_api_details_by_path。
  • 调试会话:set_breakpoint、call_api_with_debug、resume_breakpoint_execution。

目录建议(AIMCP 客户端)

app/
├─ main/            # Electron Main(进程生命周期、MCP 客户端、IPC)
│  ├─ mcp.ts
│  └─ ipc.ts
├─ preload/         # 受限桥接,仅暴露安全 IPC 能力
├─ renderer/        # 前端 UI(调用 ipcRenderer.invoke)
└─ config/          # env/配置与 Feature Flags

开发与打包提示

  • 开发:同时运行 Electron 与 MCP Server(Main 进程首调用时自动拉起 uvx 进程)。
  • 打包:确保将 uv/uvx 作为外部依赖或在安装阶段预置;或改为 HTTP 模式连接已部署的 MCP Server。

故障排查速查

  • 无响应:检查 Main 进程是否成功 spawn uvx;查看 child.stderr。
  • 401/403:确认 MAGIC_API_AUTH_ENABLED 与 TOKEN 配置。
  • 断点不生效:检查 Magic-API WS 地址与权限;确认调试工具组合启用。

Reviews

No reviews yet

Sign in to write a review