云任务MCP服务器SDK

用于Oomol云任务API v3的MCP服务器SDK,提供任务创建、执行、查询和队列控制等功能。

  • by oomol-lab
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 oomol-lab/oomol-cloud-mcp-sdk-ts

使用说明

oomol云mcp sdk

用于Oomol云任务API v3。此包现在与 oomol-cloud-task-sdk:它重新导出了完整的Cloud Task TypeScript SDK表面,并在上面添加了MCP服务器支持。

英语 | 简体中文

特性

  • 基于的完全MCP服务器支持 @modelcontextprotocol/sdk
  • 全部转口 oomol-cloud-task-sdk API、类型和错误
  • 使用与Cloud task TS SDK相同的无服务器任务模型
  • 提供MCP工具,用于任务创建、执行、查询、队列控制和上传
  • 保留向后兼容的别名 create_block_task 和 execute_block_task

安装

npm install oomol-cloud-mcp-sdk

快速开始

作为MCP服务器运行

export OOMOL_API_KEY="your-api-key"
oomol-mcp-server

如果您希望MCP任务工具默认为包,还可以设置:

export OOMOL_PACKAGE_NAME="@oomol/your-package"
export OOMOL_PACKAGE_VERSION="1.0.0"

配置MCP客户端

{
  "mcpServers": {
    "oomol-cloud": {
      "command": "npx",
      "args": ["-y", "oomol-cloud-mcp-sdk"],
      "env": {
        "OOMOL_API_KEY": "your-api-key-here",
        "OOMOL_PACKAGE_NAME": "@oomol/your-package",
        "OOMOL_PACKAGE_VERSION": "1.0.0"
      }
    }
  }
}

编程式用法

将其用作云任务TS SDK

import { OomolTaskClient } from "oomol-cloud-mcp-sdk";

const client = new OomolTaskClient({
  apiKey: process.env.OOMOL_API_KEY,
});

const { taskID, result } = await client.createAndWait({
  packageName: "@oomol/my-package",
  packageVersion: "1.0.0",
  blockName: "main",
  inputValues: { text: "hello" },
});

以编程方式运行MCP服务器

import { OomolMcpServer } from "oomol-cloud-mcp-sdk";

const server = new OomolMcpServer({
  apiKey: process.env.OOMOL_API_KEY,
  packageName: process.env.OOMOL_PACKAGE_NAME,
  packageVersion: process.env.OOMOL_PACKAGE_VERSION,
});

await server.run();

server.taskClient 暴露底层 OomolTaskClient 例子

MCP工具

与Cloud Task TS SDK一致的核心工具:

  • create_task
  • execute_task
  • list_tasks
  • get_latest_tasks
  • get_task
  • get_task_result
  • await_result
  • get_dashboard
  • set_tasks_pause
  • pause_user_queue
  • resume_user_queue
  • upload_file

向后兼容的别名:

  • create_block_task -> create_task
  • execute_block_task -> execute_task

create_task

使用与相同的请求形状 OomolTaskClient.createTask(),可选 packageName 和 packageVersion 默认值来自服务器配置。

{
  "name": "create_task",
  "arguments": {
    "blockName": "main",
    "inputValues": {
      "text": "hello"
    }
  }
}

execute_task

使用与相同的任务有效载荷 create_task,加上轮询控制:

{
  "name": "execute_task",
  "arguments": {
    "blockName": "main",
    "inputValues": {
      "text": "hello"
    },
    "intervalMs": 2000,
    "timeoutMs": 300000
  }
}

查询和控制工具

  • list_tasks 接受与相同的筛选器 listTasks(query?)
  • get_latest_tasks 接受 workloadIDs: string[] | string
  • await_result 接受 taskID, intervalMs,以及 timeoutMs
  • set_tasks_pause 接受 { "paused": true | false }

upload_file

接受base64编码的文件有效载荷:

{
  "name": "upload_file",
  "arguments": {
    "fileName": "example.txt",
    "fileData": "SGVsbG8gd29ybGQ=",
    "mimeType": "text/plain"
  }
}

出口

此程序包导出:

  • OomolMcpServer
  • ServerOptions
  • ToolResponse
  • 一切从 oomol-cloud-task-sdk

这包括 OomolTaskClient,所有云任务类型, BackoffStrategy,以及错误类别,例如 ApiError, TaskFailedError, TimeoutError,以及 UploadError.

配置

环境变量

变量 描述 必填
OOMOL_API_KEY Oomol Cloud API密钥,在Node.js中使用MCP服务器通常需要 通常
OOMOL_BASE_URL 云任务API基础URL 否
OOMOL_PACKAGE_NAME MCP任务工具的默认包名 否
OOMOL_PACKAGE_VERSION MCP任务工具的默认包版本 否
MCP_SERVER_NAME MCP服务器名称 否
MCP_SERVER_VERSION MCP服务器版本 否

ServerOptions

ServerOptions 延伸 ClientOptions 从 oomol-cloud-task-sdk 并补充道:

interface ServerOptions extends ClientOptions {
  name?: string;
  version?: string;
  packageName?: string;
  packageVersion?: string;
  maxPollIntervalMs?: number;
}

发展

npm install
npm run build

许可证

麻省理工学院