MCP Server for Agent8
一个实现模型上下文协议(Model Context Protocol,MCP)的服务器,用于支持 Agent8 SDK 开发。基于 TypeScript 和 pnpm 构建,支持 stdio 和 SSE 传输协议。
功能特性
该 Agent8 MCP 服务器实现了以下 MCP 规范功能:
提示词
- Agent8 SDK 系统提示词:通过
system-prompt-for-agent8-sdk
提示词模板,为 Agent8 SDK 开发提供优化指导。
工具
- 代码示例搜索:使用
search_code_examples
工具从向量数据库中检索相关的 Agent8 游戏开发代码示例。
- 游戏资源搜索:通过
search_game_resources
工具,利用语义相似性匹配搜索游戏开发资源(如精灵、动画、音效等)。
- 资源生成:全面的游戏资源生成工具集:
- 图像:使用
image_asset_generate
工具生成 2D 游戏资源 - 过场动画:使用
cinematic_asset_generate
工具创建过场动画序列 - 音频:使用
music_generate
和sfx_generate
工具生成音乐曲目和音效 - 天空盒:使用
skybox_generate
工具创建 360° 环境背景 - 支持工具:提供状态检查、结果获取和等待工具,用于异步生成任务
安装
使用 Docker
您可以通过多种方式使用 Docker 运行该应用程序:
选项 1:从 GitHub Container Registry 拉取(推荐)
选项 2:本地构建
Docker 环境配置
在运行 Docker 时,有三种方式配置环境变量:
- 使用
--env-file
(推荐):
- 使用单独的
-e
参数:
- 使用 Docker Compose(用于开发/生产环境):
- 从 .env 配置自动映射端口
- 加载环境变量
- 数据持久化的卷挂载
- 容器自动重启策略
- 健康检查配置
项目包含预配置的
docker-compose.yml
文件,支持以下功能:运行服务器:
后台运行:
必需的环境变量:
SUPABASE_URL
:用于数据库连接的 Supabase URL
SUPABASE_SERVICE_ROLE_KEY
:用于身份验证的 Supabase 服务角色密钥
OPENAI_API_KEY
:用于 AI 功能的 OpenAI API 密钥
Dockerfile 使用多阶段构建过程,以创建最小化的生产镜像:
- 使用 Node.js 20 Alpine 作为基础镜像,以减小体积
- 分离构建和运行时依赖
- 仅在最终镜像中包含必要的文件
- 默认暴露端口 3000
使用
命令行选项
支持的选项:
--debug
:启用调试模式
--transport <type>
:传输类型(stdio 或 sse),默认:stdio
--port <number>
:用于 SSE 传输的端口,默认:3000
--log-destination <dest>
:日志输出目标(stdout、stderr、file、none)
--log-file <path>
:日志文件路径(当 log-destination 为 file 时)
--log-level <level>
:日志级别(debug、info、warn、error),默认:info
--env-file <path>
:.env 文件路径
使用环境变量
服务器支持通过环境变量进行配置,可以直接设置或通过
.env
文件加载。- 在项目根目录创建
.env
文件(参考.env.example
):
- 运行服务器(自动加载
.env
文件):
- 或者指定自定义的
.env
文件路径:
配置优先级
服务器在确定配置值时遵循以下优先级顺序:
- 命令行参数(最高优先级)
- 环境变量(来自
.env
文件或系统环境)
- 默认值(最低优先级)
这种机制允许您在
.env
文件中设置基线配置,同时通过命令行参数覆盖特定设置。支持的环境变量
变量名 | 描述 | 默认值 |
MCP_TRANSPORT | 传输类型(stdio 或 sse) | stdio |
PORT | 用于 SSE 传输的端口 | 3000 |
LOG_LEVEL | 日志级别(debug、info、warn、error) | info |
LOG_DESTINATION | 日志输出目标(stdout、stderr、file、none) | stderr(stdio 传输)、stdout(sse 传输) |
LOG_FILE | 日志文件路径(当 LOG_DESTINATION 为 file 时) | (无) |
DEBUG | 启用调试模式(true/false) | false |
V8_AUTH_API_ENDPOINT | 身份验证 API 端点 URL | (无) |
V8_AUTH_REQUIRE | 要求对 API 端点进行身份验证 | false |
SUPABASE_URL | 用于数据库连接的 Supabase URL | (必需) |
SUPABASE_SERVICE_ROLE_KEY | 用于身份验证的 Supabase 服务角色密钥 | (必需) |
OPENAI_API_KEY | 用于 AI 功能的 OpenAI API 密钥 | (必需) |
FAL_KEY | 用于资源生成的 fal.ai API 密钥 | (必需) |
BLOCKADE_LABS_API_KEY | 用于天空盒生成的 Blockade Labs API 密钥 | (天空盒生成时必需) |
V8_CREDIT_CLIENT_ID | 用于信用消耗 API 的客户端 ID | (无,资源生成时可选) |
V8_CREDIT_CLIENT_SECRET | 用于信用消耗 API 的客户端密钥 | (无,资源生成时可选) |
V8_CREDIT_API_ENDPOINT | 用于信用消耗的 API 端点 | (资源生成时必需) |
ENABLE_ALL_TOOLS | 全局启用或禁用所有工具 | true |
ENABLE_VECTOR_SEARCH_TOOLS | 启用或禁用所有向量搜索工具 | true |
ENABLE_ASSET_GENERATE_TOOLS | 启用或禁用所有资源生成工具(图像、过场动画、音频、天空盒) | true |
ENABLE_IMAGE_GENERATION_TOOLS | 启用或禁用图像生成工具 | true |
ENABLE_CINEMATIC_GENERATION_TOOLS | 启用或禁用过场动画生成工具 | true |
ENABLE_AUDIO_GENERATION_TOOLS | 启用或禁用音频生成工具 | true |
ENABLE_SKYBOX_GENERATION_TOOLS | 启用或禁用天空盒生成工具 | true |
ENABLE_CODE_EXAMPLE_SEARCH_TOOL | 启用或禁用代码示例搜索工具 | true |
ENABLE_GAME_RESOURCE_SEARCH_TOOL | 启用或禁用游戏资源搜索工具 | true |
工具激活优先级:
工具激活设置遵循以下优先级顺序:
- 单个工具设置(如
ENABLE_CODE_EXAMPLE_SEARCH_TOOL
)
- 资源类型设置(如
ENABLE_IMAGE_GENERATION_TOOLS
、ENABLE_CINEMATIC_GENERATION_TOOLS
)
- 工具组设置(如
ENABLE_VECTOR_SEARCH_TOOLS
、ENABLE_ASSET_GENERATE_TOOLS
)
- 全局工具设置(
ENABLE_ALL_TOOLS
)
单个设置始终覆盖组设置,组设置覆盖全局设置。当明确设置单个工具时,它们优先于其父级设置。
重要提示:要仅启用特定工具,应将所有更高级别的设置设为
false
,并仅启用所需的特定工具。这种方法提供更一致和可预测的配置。示例:
使用 Stdio 传输
使用 SSE 传输
调试模式
可用提示词
systemprompt-agent8-sdk
客户端集成
与 Claude Desktop 集成
- 将以下内容添加到 Claude Desktop 配置文件(
claude_desktop_config.json
)中:
- 重启 Claude Desktop
添加新提示词
将新提示词添加到
src/prompts/provider.ts
文件中的 registerSamplePrompts
方法中。许可证
MIT
- Author:waytomcp
- URL:https://www.waytomcp.com/article/planetarium/mcp-agent8
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!