小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
0
最近更新:15天前

Agent8 的 MCP 服务器

Agent8 的 MCP 服务器

一个实现 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 工具通过语义相似性匹配来搜索游戏开发资源(精灵、动画、声音等)。
  • 资产生成:使用 static_asset_generatecinematic_asset_generate 工具生成游戏资产,包括静态图像和电影效果。

安装

bash 复制代码
# 安装依赖
pnpm install

# 构建
pnpm build

使用 Docker

您可以使用 Docker 以多种方式运行此应用程序:

选项 1:从 GitHub Container Registry 拉取(推荐)

bash 复制代码
# 拉取最新镜像
docker pull ghcr.io/planetarium/mcp-agent8:latest

# 运行容器
docker run -p 3333:3333 --env-file .env ghcr.io/planetarium/mcp-agent8:latest

选项 2:本地构建

bash 复制代码
# 构建 Docker 镜像
docker build -t agent8-mcp-server .

# 使用环境变量运行容器
docker run -p 3333:3333 --env-file .env agent8-mcp-server

Docker 环境配置

在使用 Docker 运行时,有三种方法可以配置环境变量:

  1. 使用 --env-file(推荐):

    bash 复制代码
    # 先创建并配置您的 .env 文件
    cp .env.example .env
    nano .env
    
    # 使用 .env 文件运行
    docker run -p 3000:3000 --env-file .env agent8-mcp-server
  2. 使用单个 -e 标志:

    bash 复制代码
    docker run -p 3000:3000 \
      -e SUPABASE_URL=your_supabase_url \
      -e SUPABASE_SERVICE_ROLE_KEY=your_service_role_key \
      -e OPENAI_API_KEY=your_openai_api_key \
      -e MCP_TRANSPORT=sse \
      -e PORT=3000 \
      -e LOG_LEVEL=info \
      agent8-mcp-server
  3. 使用 Docker Compose(用于开发/生产设置):

    项目包含一个预配置的 docker-compose.yml 文件,其中包含:

    • 从 .env 配置自动端口映射
    • 加载环境变量
    • 用于数据持久化的卷挂载
    • 容器自动重启策略
    • 健康检查配置

    要运行服务器:

    bash 复制代码
    docker compose up

    以分离模式运行:

    bash 复制代码
    docker compose up -d

必需的环境变量:

  • SUPABASE_URL:数据库连接的 Supabase URL
  • SUPABASE_SERVICE_ROLE_KEY:用于身份验证的 Supabase 服务角色密钥
  • OPENAI_API_KEY:用于 AI 功能的 OpenAI API 密钥

Dockerfile 使用多阶段构建过程来创建最小的生产镜像:

  • 使用 Node.js 20 Alpine 作为基础镜像以减小大小
  • 分离构建和运行时依赖项
  • 在最终镜像中仅包含必要的文件
  • 默认暴露端口 3000

使用

命令行选项

bash 复制代码
# 查看帮助
pnpm start --help

# 查看版本信息
pnpm start --version

支持的选项:

  • --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 文件设置。

  1. 在项目根目录中创建一个 .env 文件(参见 .env.example 作为参考):
bash 复制代码
# 复制示例文件
cp .env.example .env

# 编辑 .env 文件以设置您的配置
nano .env
  1. 运行服务器(它将自动加载 .env 文件):
bash 复制代码
pnpm start
  1. 或者指定自定义的 .env 文件路径:
bash 复制代码
pnpm start --env-file=/path/to/custom/.env

配置优先级

服务器在确定配置值时使用以下优先级顺序:

  1. 命令行参数(最高优先级)
  2. 环境变量(来自 .env 文件或系统环境)
  3. 默认值(最低优先级)

这允许您在 .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
AUTH_API_ENDPOINT 认证 API 端点 URL (无)
REQUIRE_AUTH API 端点需要认证 false
SUPABASE_URL 用于数据库连接的 Supabase URL (必需)
SUPABASE_SERVICE_ROLE_KEY 用于认证的 Supabase 服务角色密钥 (必需)
OPENAI_API_KEY 用于 AI 功能的 OpenAI API 密钥 (必需)
ENABLE_ALL_TOOLS 全局启用或禁用所有工具 true
ENABLE_VECTOR_SEARCH_TOOLS 启用或禁用所有向量搜索工具 true
ENABLE_ASSET_GENERATE_TOOLS 启用或禁用所有资产生成工具 true
ENABLE_CODE_EXAMPLE_SEARCH_TOOL 启用或禁用代码示例搜索工具 true
ENABLE_GAME_RESOURCE_SEARCH_TOOL 启用或禁用游戏资源搜索工具 true

工具激活优先级
工具激活设置遵循以下优先级顺序:

  1. 单个工具设置(例如,ENABLE_CODE_EXAMPLE_SEARCH_TOOL
  2. 工具组设置(例如,ENABLE_VECTOR_SEARCH_TOOLSENABLE_ASSET_GENERATE_TOOLS
  3. 全局工具设置(ENABLE_ALL_TOOLS

例如,如果您设置 ENABLE_ALL_TOOLS=falseENABLE_VECTOR_SEARCH_TOOLS=true,则只有向量搜索工具会被启用,而其他工具将保持禁用状态。同样,单个工具设置会覆盖其相应的组设置。

示例

bash 复制代码
# 仅启用向量搜索工具
ENABLE_ALL_TOOLS=false
ENABLE_VECTOR_SEARCH_TOOLS=true

# 仅启用资产生成工具
ENABLE_ALL_TOOLS=false
ENABLE_ASSET_GENERATE_TOOLS=true

# 禁用特定工具同时保持其他工具启用
ENABLE_ALL_TOOLS=true
ENABLE_CODE_EXAMPLE_SEARCH_TOOL=false

使用 Stdio 传输

bash 复制代码
# 构建并运行
pnpm build
pnpm start --transport=stdio

使用 SSE 传输

bash 复制代码
# 构建并运行(默认端口:3000)
pnpm build
pnpm start --transport=sse --port=3000

调试模式

bash 复制代码
# 以调试模式运行
pnpm start --debug

可用提示

  • systemprompt-agent8-sdk

客户端集成

与 Claude Desktop 一起使用

  1. 在 Claude Desktop 配置文件(claude_desktop_config.json)中添加以下内容:
json 复制代码
{
  "mcpServers": {
    "Agent8": {
      "command": "npx",
      "args": ["--yes", "agent8-mcp-server"]
    }
  }
}
  1. 重新启动 Claude Desktop

添加新提示

src/prompts/provider.ts 文件中的 registerSamplePrompts 方法中添加新提示。

许可

MIT