返回市场
引擎开放API MCP

引擎开放API MCP

作者:box3lab2 星标更新:2025-04-10

项目介绍

神道引擎OpenAPI MCP工具集

smithery徽章

该项目提供了一系列针对神道岛引擎的OpenAPI MCP(模型上下文协议)工具,帮助AI更高效地调用引擎接口。

功能概述

此工具包提供了以下核心功能:

  • 脚本管理工具:用于创建、更新和重命名游戏脚本
  • 存储管理工具:用于读取、写入、删除和查询游戏数据存储
  • AI辅助功能:基于大型模型提供代码审查、生成、优化以及数据结构设计

API工具详细解释

脚本工具

基本操作

工具名称描述必需参数
script.saveOrUpdate保存或更新神道岛引擎脚本mapId, name, type, file
script.rename重命名神道岛引擎脚本mapId, name, newName

代码辅助提示

提示名称描述必需参数
script.review审查神道岛引擎脚本代码,提供改进建议和潜在问题分析code
script.generate根据描述和需求生成神道岛引擎脚本代码description
script.optimize优化神道岛引擎脚本代码以提高性能或可读性code

存储工具

基本操作

工具名称描述必需参数
storage.get查询存储空间单个键值key, mapId, storageName
storage.set写入/更新存储空间单个键值key, mapId, storageName, value
storage.remove删除存储空间单个键值key, mapId, storageName
storage.page分页查询存储空间mapId, storageName

存储辅助提示

提示名称描述必需参数
storage.designSchema设计游戏功能所需的数据存储结构gameFeatures
storage.migrationPlan设计存储数据迁移计划currentSchema, targetSchema
storage.optimizeQuery优化键值对数据查询方案queryDescription

使用示例

脚本管理示例

// 上传脚本文件
const scriptResult = await mcpClient.callTool("script.saveOrUpdate", {
  mapId: "your-map-id",
  name: "example.js",
  type: "0", // 0-服务器脚本、1-客户端脚本
  file: "console.log('hi')",
  token: "your-auth-token",
  userAgent: "your-user-agent",
});

// 使用代码审查提示
const codeReview = await m_客户端.prompt("script.review", {
  code: "function example() { console.log('Hello'); }",
});

// 生成脚本代码
const generatedCode = await mcpClient.prompt("script.generate", {
  description: "实现一个计算玩家得分的系统",
  requirements: "支持多种得分方式,保存历史最高分,支持排行榜",
});

存储管理示例

// 读取存储值
const storageData = await mcpClient.callTool("storage.get", {
  key: "player_stats",
  mapId: "your-map-id",
  storageName: "gameData",
  token: "your-auth-token",
  userAgent: "your-user-agent",
});

// 写入存储值
const writeResult = await mcpClient.callTool("storage.set", {
  key: "player_stats",
  mapId: "your-map-id",
  storageName: "gameData",
  value: JSON.stringify({ score: 100, level: 5 }),
  token: "your-auth-token",
  userAgent: "your-user-agent",
});

// 使用数据结构设计提示
const schemaDesign = await mcpClient.prompt("storage.designSchema", {
  gameFeatures: "一个RPG游戏,需要存储玩家装备、背包物品、任务进度和成就",
  dataRequirements: "支持多人同时在线,支持离线进度保存,支持物品交易历史",
});

集成到客户端

浏览器端集成

import { McpClient } from "@modelcontextprotocol/sdk/client/index.js";

// 初始化客户端
const mcpClient = new McpClient({
  serverUrl: "https://your-mcp-server.com",
  headers: {
    "Content-Type": "application/json",
  },
});

// 使用工具
async function useTools() {
  const result = await mcpClient.callTool("storage.get", {
    // 参数...
  });

  // 处理结果
  console.log(result);
}

Node.js 端集成

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { WebSocketClientTransport } from "@modelcontextprotocol/sdk/client/websocket.js";

// 创建传输通道
const transport = new WebSocketClientTransport({
  url: "ws://localhost:3000",
});

// 初始化客户端
const client = new Client(
  { name: "dao3-client", version: "1.0.0" },
  { capabilities: { tools: {} } }
);

// 连接到服务器
await client.connect(transport);

// 使用工具
const result = await client.callTool({
  name: "script.list",
  arguments: {
    mapId: "your-map-id",
    token: "your-token",
    userAgent: "your-agent",
  },
});

认证

所有API调用都需要认证信息,包括:

  • token:授权令牌
  • userAgent:用户代理字符串

这些参数需要在每次调用工具时提供。

获取认证信息

  1. 访问神道引擎开发者平台获取开发者密钥
  2. 使用开发者密钥生成认证令牌
  3. 在API调用中提供认证信息

故障排除

请求超时

如果请求超时,可能是由于:

  • 网络连接不稳定
  • 服务器负载过高
  • 请求数据量过大

尝试减少请求数据量或稍后重试。

类型错误

确保按照文档中指定的类型传递参数,特别是:

  • 数值类型参数(如limit、offset)必须是数字
  • 布尔参数(如isGroup)必须是布尔值

贡献指南

欢迎提交问题报告或拉取请求来帮助改进这个项目。

  1. 分叉项目仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m 'Add some amazing feature'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 创建一个拉取请求