AGS扩展SDK MCP服务器
这 模型上下文协议(MCP)服务器 将ExtendSDK函数和模型作为语言模型的附加上下文公开。它通过提供以下工具帮助AI编码助手和其他MCP客户端回答问题并生成Extend SDK代码。
search-symbols–按名称、标签、描述(模糊)搜索符号(功能和模型)describe-symbols–通过ID获取特定符号的详细信息create-extend-app–创建Extend应用程序项目的提示模板
快速启动
先决条件
- 光标
- 码头工人
\[!注意\] 以下说明也可以适用于其他MCP客户端,例如Claude Desktop、Gemini CLI和Visual Studio Code。
备选方案1:使用STDIO传输(默认)
- 拉取AGS扩展SDK MCP服务器容器映像。例如,使用图像标签2026.2.0。
docker pull ghcr.io/accelbyte/ags-extend-sdk-mcp-server:2026.2.0- 切换到项目目录并创建
.cursor/mcp.json内容如下。
{
"mcpServers": {
"extend-sdk-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CONFIG_DIR",
"ghcr.io/accelbyte/ags-extend-sdk-mcp-server:2026.2.0"
],
"env": {
"CONFIG_DIR": "config/go"
}
}
}
}这 CONFIG_DIR 上面的值适用于Go Extend SDK。有关其他Extend SDK语言,请参阅 这里.
- 在Cursor中打开项目目录并打开
File>Preferences>Cursor Settings,InCursor Settings,单击MCP,并确保extend-sdk-mcp-server已启用。
备选方案2:使用流式HTTP传输
- 拉取AGS扩展SDK MCP服务器容器映像。例如,使用图像标签2026.2.0。
docker pull ghcr.io/accelbyte/ags-extend-sdk-mcp-server:2026.2.0- 使用流式HTTP传输启动MCP服务器。
docker run -p 3000:3000 \
-e TRANSPORT=http \
-e PORT=3000 \
-e CONFIG_DIR=config/go \
-e NODE_ENV=production \
-e LOG_LEVEL=info \
ghcr.io/accelbyte/ags-extend-sdk-mcp-server:2026.2.0这 CONFIG_DIR 上面的值适用于Go Extend SDK。有关其他Extend SDK语言,请参阅 这里.
- 切换到项目目录并创建
.cursor/mcp.json内容如下。
{
"mcpServers": {
"extend-sdk-mcp-server": {
"url": "http://localhost:3000/"
}
}
}- 在Cursor中打开项目目录并打开
File>Preferences>Cursor Settings,InCursor Settings,单击MCP,并确保extend-sdk-mcp-server已启用。
\[!重要\] 使用 ghcr.io/accelbyte/ags-extend-sdk-mcp-server 与AGS版本匹配的图像标签。查看可用的图像标签 这里.示例提示
在光标中,按 CTRL+L 并尝试以下提示。您应该看到使用了此MCP服务器提供的工具。根据要求,允许执行工具。
- 搜索符号:
Search for symbols related to 'user' - 获取符号详细信息:
Describe the 'AdminCreateUser@iam' and 'User@iam' symbols
\[!提示\]使用此MCP服务器进行编码时,我们建议从Extend SDK入门示例项目或Extend应用程序模板项目开始,而不是空白项目。添加必要的上下文,如特定的源代码文件,以帮助获得更好的结果。
环境变量
TRANSPORT:MCP服务器传输(有效值:stdio,http,streamableHttp,默认值:stdio)PORT:HTTP服务器端口,如果TRANSPORT是http(默认值:3000)CONFIG_DIR:YAML配置文件目录(递归,默认:config/go)
- 对于扩展SDK C#: config/csharp - 对于扩展SDK,请执行以下操作: config/go - 对于扩展SDK Java: config/java - 对于扩展SDK Python: config/python
LOG_LEVEL:日志记录级别(有效值:debug,info,warn,error,默认值:info)ALLOWED_ORIGINS:以逗号分隔的HTTP传输允许的源列表(可选)NODE_ENV:环境(有效值:development,production)(可选,Express用于HTTP传输)
发展
先决条件
- Bash
- 卷曲
- 码头工人
- Makefile
- Node.js 18+
- pnpm
安装依赖项
pnpm install启动MCP服务器进行开发
使用默认的STDIO传输
pnpm dev具有流式HTTP传输
TRANSPORT=http pnpm dev 构建MCP服务器
pnpm build构建后启动MCP服务器
使用默认的STDIO传输
pnpm start具有流式HTTP传输
TRANSPORT=http pnpm start构建MCP服务器容器映像
docker build -t extend-sdk-mcp-server:latest .释放
将MCP服务器容器映像推送到容器注册表
# Setup variables
GHCR_USERNAME=
GHCR_PASSWORD=
IMAGE_TAG=2026.2.0 # Matches AGS release, bump patch version for hotfix
# Prepare builder
docker buildx inspect extend-sdk-mcp-server-builder || docker buildx create --name extend-sdk-mcp-server-builder --use
# Login, build, and push multiarch image
docker login --username ${GHCR_USERNAME --password $GHCR_PASSWORD}
docker buildx build -t ghcr.io/accelbyte/ags-extend-sdk-mcp-server:${IMAGE_TAG} --platform linux/amd64,linux/arm64 --push .
# Clean up builder
docker buildx rm --keep-state extend-sdk-mcp-server-builder测试
- 使用HTTP传输启动MCP服务器。
- 初始化MCP连接。
curl -N -H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-X POST \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test-client","version":"1.0.0"}}}' \
http://localhost:3000/- 列出可用工具。
curl -N -H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-X POST \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
http://localhost:3000/- 测试搜索工具。
curl -N -H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-X POST \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search-symbols","arguments":{"query":"user"}}}' \
http://localhost:3000/- 测试描述模型。
curl -N -H "Accept: application/json, text/event-stream" \
-H "Content-Type: application/json" \
-X POST \
-d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"describe-symbols","arguments":{"ids":["User@iam"]}}}' \
http://localhost:3000/