YepCode MCP Server

官方

在YepCode安全且可扩展的沙箱环境中执行任何LLM生成的代码,并使用JavaScript或Python创建自己的MCP工具,完全支持NPM和PyPI包。

文档

YepCode MCP Server Preview

NPM version NPM Downloads GitHub Workflow Status

Trust Score smithery badge

什么是 YepCode MCP 服务器?

一个 MCP(模型上下文协议)服务器,使 AI 平台能够与 YepCode 的基础设施进行交互。运行 LLM 生成的脚本,并将你的 YepCode 流程转变为 AI 助手可以直接使用的强大工具。YepCode 是构建动态 MCP 工具服务器的完美环境:将每个流程作为一个工具暴露出来(支持 OAuth、API 令牌或你的凭据),使用 JSON Schema 定义每个工具的参数以获得完全的灵活性,并用 PythonNode.js 实现工具——所有这些都在一个混合多种语言的服务器中完成。

为什么选择 YepCode MCP 服务器?

  • 无缝 AI 集成:零配置将 YepCode 流程转换为 AI 就绪的工具
  • 实时流程控制:实现 AI 系统与你的工作流之间的直接交互
  • 企业级安全:在 YepCode 隔离的、生产就绪的环境中执行代码
  • 通用兼容性:与任何支持模型上下文协议的 AI 平台集成

YepCode:动态 MCP 工具服务器的理想环境

YepCode 旨在成为运行动态 MCP 工具服务器的理想平台:

  • 一个流程,一个工具:每个 YepCode 流程都可以作为一个 MCP 工具暴露出来。为你的流程打上标签(例如 mcp-toolcoreautomation),它们就会成为 AI 助手可以调用的工具。你可以使用 OAuthAPI 令牌或你现有的 YepCode 凭据来保护访问——每个工具都在你的工作区中以相同的安全模型运行。

  • 完全控制工具参数:每个工具都可以将其参数模式定义为 JSON Schema。你可以完全灵活地描述输入(类型、描述、必填字段、枚举、默认值等),这样 AI 就能接收到丰富的元数据,并正确地调用你的工具。

  • 多语言工具实现:用 PythonNode.js(或两者兼用)实现工具。同一个 MCP 服务器可以暴露由不同运行时支持的工具——可以把它想象成一个混合了多种语言实现的 MCP 服务器。

有关完整文档,请参阅 YepCode MCP 服务器文档

安装

此软件包允许你在本地或你自己的基础设施(NPX、Docker 或自定义部署)中运行 YepCode MCP 服务器。将其与 CursorClaude Desktop 等 AI 平台集成。

提示: 通过你的 YepCode 账户,你还可以访问一个托管的 MCP 服务器,无需本地安装。连接 URL 始终是:https://cloud.yepcode.io/mcp

前提条件

获取你的 YepCode API 凭据:

  1. 注册 YepCode Cloud
  2. 访问 Settings > API credentials 来创建一个新的 API 令牌。

使用 NPX

确保你已安装 Node.js(版本 18 或更高),并使用类似以下的配置:

{
  "mcpServers": {
    "yepcode-mcp-server": {
      "command": "npx",
      "args": ["-y", "@yepcode/mcp-server"],
      "env": {
        "YEPCODE_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

使用 Docker

  1. 构建容器镜像:
docker build -t yepcode/mcp-server .
  1. 使用类似以下的配置:
{
  "mcpServers": {
    "yepcode-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-d",
        "-e",
        "YEPCODE_API_TOKEN=your_api_token_here",
        "yepcode/mcp-server"
      ]
    }
  }
}

调试

调试 MCP 服务器可能比较棘手,因为它们通过 stdio 进行通信。为了简化这一过程,我们建议使用 MCP Inspector,你可以通过以下命令运行它:

npm run inspector

这将启动一个服务器,你可以直接在浏览器中访问调试工具。

YepCode MCP 工具参考

MCP 服务器提供了多个工具来与 YepCode 的基础设施进行交互:

代码执行

run_code

在 YepCode 的安全环境中执行代码。

// Input
{
  code: string;                          // The code to execute
  options?: {
    language?: string;                   // Programming language (default: 'javascript')
    comment?: string;                    // Execution context
    settings?: Record<string, unknown>;  // Runtime settings
  }
}

// Response
{
  returnValue?: unknown;                 // Execution result
  logs?: string[];                       // Console output
  error?: string;                        // Error message if execution failed
}
MCP 选项

YepCode MCP 服务器支持以下选项:

  • runCodeCleanup:跳过 run_code 清理。默认情况下,run_code 进程的源代码在执行后会被移除。如果你想出于审计目的保留它,可以使用此选项。
  • skipCodingRules:跳过在 run_code 工具定义中包含编码规则。默认情况下,YepCode 文档中的 JavaScript 和 Python 编码规则会包含在工具模式中,以指导 AI 生成的代码。如果你想跳过此步骤以加快工具初始化或减小工具定义的大小,可以使用此选项。

选项可以作为逗号分隔的列表在 YEPCODE_MCP_OPTIONS 环境变量中传递。

工具选择

你可以通过设置 YEPCODE_MCP_TOOLS 环境变量来控制启用哪些工具,该变量接受一个逗号分隔的工具类别和流程标签列表:

内置工具类别:

  • run_code:启用代码执行工具
  • yc_api:启用所有基本的 API 管理工具(流程、计划、变量、存储、执行、模块)
  • yc_api_full:启用所有 API 管理工具,包括版本相关工具(扩展了 yc_api,增加了额外的流程和模块版本管理工具)
  • 任何特定的 API 工具名称(例如 execute_process_syncget_execution 等)

流程标签:

  • 你在 YepCode 流程中使用的任何标签(例如 mcp-toolcoreautomation 等)
  • 当你指定一个流程标签时,所有带有该标签的流程都将作为单独的 MCP 工具暴露出来
  • 流程工具将使用流程的 slug 命名(如果名称超过 60 个字符,则会加上 yc_ 前缀和流程 ID)

如果未指定,默认情况下所有内置工具都已启用,但不会暴露任何流程工具。

// NPX configuration with options
{
  "mcpServers": {
    "yepcode-mcp-server": {
      "command": "npx",
      "args": ["-y", "@yepcode/mcp-server"],
      "env": {
        "YEPCODE_API_TOKEN": "your_api_token_here",
        "YEPCODE_MCP_OPTIONS": "runCodeCleanup,skipCodingRules",
        "YEPCODE_MCP_TOOLS": "run_code,yc_api,mcp-tool,core"
      }
    }
  }
}

示例场景:

  • YEPCODE_MCP_TOOLS=run_code,yc_api - 启用内置代码执行和基本的 API 管理工具
  • YEPCODE_MCP_TOOLS=run_code,yc_api_full - 启用内置代码执行和所有 API 管理工具(包括版本管理)
  • YEPCODE_MCP_TOOLS=core,automation - 仅将标记为 "core" 或 "automation" 的流程作为工具暴露
  • YEPCODE_MCP_TOOLS=run_code,yc_api,core - 启用内置工具以及所有标记为 "core" 的流程

环境管理

set_env_var

在 YepCode 工作区中设置一个环境变量。

// Input
{
  key: string;                           // Variable name
  value: string;                         // Variable value
  isSensitive?: boolean;                 // Whether to mask the value in logs (default: true)
}

remove_env_var

从 YepCode 工作区中移除一个环境变量。

// Input
{
  key: string;                           // Name of the variable to remove
}

存储管理

YepCode 提供了一个内置的存储系统,允许你上传、列出、下载和删除文件。这些文件可以在你的代码执行中使用 yepcode.storage 辅助方法进行访问。

list_files

列出 YepCode 存储中的所有文件。

// Input
{
  prefix?: string;                       // Optional prefix to filter files
}

// Response
{
  files: Array<{
    filename: string;                    // File name or path
    size: number;                        // File size in bytes
    lastModified: string;                // Last modification date
  }>;
}

upload_file

上传一个文件到 YepCode 存储。

// Input
{
  filename: string;                      // File path (e.g., 'file.txt' or 'folder/file.txt')
  content: string | {                   // File content
    data: string;                        // Base64 encoded content for binary files
    encoding: "base64";
  };
}

// Response
{
  success: boolean;                      // Upload success status
  filename: string;                      // Uploaded file path
}

download_file

从 YepCode 存储下载一个文件。

// Input
{
  filename: string;                      // File path to download
}

// Response
{
  filename: string;                      // File path
  content: string;                       // File content (base64 for binary files)
  encoding?: string;                     // Encoding type if binary
}

delete_file

从 YepCode 存储删除一个文件。

// Input
{
  filename: string;                      // File path to delete
}

// Response
{
  success: boolean;                      // Deletion success status
  filename: string;                      // Deleted file path
}

流程执行

MCP 服务器可以将你的 YepCode 流程作为单独的 MCP 工具暴露出来,使 AI 助手可以直接访问它们。此功能通过在 YEPCODE_MCP_TOOLS 环境变量中指定流程标签来启用。

工作原理:

  1. 为你的 YepCode 流程打上任意标签(例如 coreapiautomationmcp-tool 等)
  2. 将这些标签添加到 YEPCODE_MCP_TOOLS 环境变量中
  3. 所有带有指定标签的流程都将作为单独的 MCP 工具暴露出来

每个暴露的流程都会有一个工具,使用流程的 slug 命名(如果工具名称超过 60 个字符,则会加上 yc_ 前缀和流程 ID)。

有关流程标签的更多信息,请参阅我们的流程标签文档

<process_slug>

// Input
{
  parameters?: any;                      // This should match the input parameters specified in the process
  options?: {
    tag?: string;                        // Process version to execute
    comment?: string;                    // Execution context
  };
  synchronousExecution?: boolean;        // Whether to wait for completion (default: true)
}

// Response (synchronous execution)
{
  executionId: string;                   // Unique execution identifier
  logs: string[];                        // Process execution logs
  returnValue?: unknown;                 // Process output
  error?: string;                        // Error message if execution failed
}

// Response (asynchronous execution)
{
  executionId: string;                   // Unique execution identifier
}

API 管理工具

API 管理工具类别(yc_apiyc_api_full)提供了全面的 API 访问权限,以管理工作区中的所有方面:

基本 API 工具(yc_api): yc_api 标签启用了用于核心操作的标准 API 管理工具。

扩展 API 工具(yc_api_full): yc_api_full 标签包含了 yc_api 中的所有内容,以及用于管理流程和模块版本的额外工具。

流程管理:

  • get_processes - 列出流程,支持可选过滤
  • create_process - 创建包含源代码的新流程
  • get_process - 获取流程详情
  • update_process - 更新现有流程
  • delete_process - 删除一个流程
  • get_process_versions - 获取流程版本(需要 yc_api_full
  • execute_process_async - 异步执行一个流程
  • execute_process_sync - 同步执行一个流程
  • schedule_process - 安排一个流程自动运行

计划管理:

  • get_schedules - 列出已计划的流程
  • get_schedule - 获取计划详情
  • pause_schedule - 暂停一个已计划的流程
  • resume_schedule - 恢复一个已暂停的计划
  • delete_schedule - 删除一个计划
  • update_schedule - 更新一个已计划的流程

变量管理:

  • get_variables - 列出团队变量
  • create_variable - 创建一个新变量
  • update_variable - 更新一个现有变量
  • delete_variable - 删除一个变量

存储管理:

  • get_storage_objects - 列出存储对象
  • upload_storage_object - 上传一个文件到存储
  • download_storage_object - 从存储下载一个文件
  • delete_storage_object - 从存储删除一个文件

执行管理:

  • get_executions - 列出执行记录,支持可选过滤
  • get_execution - 从 API 获取执行详情
  • kill_execution - 终止一个正在运行的执行
  • rerun_execution - 重新运行一个之前的执行
  • get_execution_logs - 获取执行日志

模块管理:

  • get_modules - 列出脚本库模块
  • create_module - 创建一个新模块
  • get_module - 获取模块详情
  • delete_module - 删除一个模块
  • get_module_versions - 获取模块版本(需要 yc_api_full
  • get_module_version - 获取一个特定的模块版本(需要 yc_api_full
  • delete_module_version - 删除一个模块版本(需要 yc_api_full
  • get_module_aliases - 获取模块版本别名(需要 yc_api_full

许可证

本项目基于 MIT 许可证授权 - 详情请参阅 LICENSE 文件。