EaseCation User Center MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EaseCation User Center MCP Serverget my account overview"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EaseCation User Center MCP Server
面向 easecation-user-center 的现代 MCP Server,基于最新的 TypeScript SDK 设计思路实现,支持:
McpServer声明式工具注册structuredContent + outputSchematool annotations(只读/副作用提示)
stdio与Streamable HTTP双 transport管理员态
admin_*工具用户态
me_*工具,适合个人 agent 服务
核心定位
这个仓库不是简单把 UC 后端接口“裸转发”成 MCP。
它做了三层整理:
把管理员态和用户态分开,避免权限语义混乱。
把返回值统一成结构化 MCP 输出,便于 agent 稳定消费。
提供几个面向 agent 的聚合工具,例如:
me_get_account_overviewme_get_ecid_overviewadmin_get_player_snapshot
Related MCP server: UTCP-MCP Bridge
环境要求
Node.js 18+
推荐 Node.js 22+
安装
npm install配置
复制环境变量模板:
cp .env.example .env常用配置项
EC_API_BASE_URL默认http://127.0.0.1:9000,真实环境建议显式设置成 UC 后端域名EC_ENABLE_ADMIN_TOOLS是否启用管理员态工具EC_ENABLE_USER_TOOLS是否启用用户态工具EC_ADMIN_JWT_TOKEN管理员 access tokenEC_ADMIN_REFRESH_TOKEN管理员 refresh token。配置后会在 access token 失效时自动续期EC_USER_JWT_TOKEN用户 access tokenEC_USER_REFRESH_TOKEN用户 refresh token。配置后会在 access token 失效时自动续期MCP_TRANSPORTstdio或streamable-httpMCP_HTTP_BEARER_TOKEN远程streamable-http入口的 Bearer Token。只要把真实 UC token 部署到云端,就应该同时配置它
本地联调
对接真实 UC 后端
把 .env 改成真实环境:
EC_API_BASE_URL=https://ucapi.easecation.net
EC_ENABLE_ADMIN_TOOLS=true
EC_ENABLE_USER_TOOLS=true
EC_ADMIN_JWT_TOKEN=your-real-admin-access-token
EC_ADMIN_REFRESH_TOKEN=your-real-admin-refresh-token
EC_USER_JWT_TOKEN=your-real-user-access-token
EC_USER_REFRESH_TOKEN=your-real-user-refresh-token
MCP_TRANSPORT=stdio推荐同时配置 access token 和 refresh token。当前端 JWT 只有 5 分钟有效期时,MCP 会在遇到 401 或 EPF_code=8003 时自动调用 /user/refresh,刷新后重试一次原请求。
启动
stdio 模式
npm startStreamable HTTP 模式
MCP_TRANSPORT=streamable-http
MCP_HTTP_HOST=127.0.0.1
MCP_HTTP_PORT=3100
MCP_HTTP_PATH=/mcp
MCP_HTTP_BEARER_TOKEN=replace-with-a-random-secretnpm start默认监听:
http://127.0.0.1:3100/mcp同时提供:
GET /healthzGET /
适合反向代理、函数计算健康检查和部署后探活。
如果配置了 MCP_HTTP_BEARER_TOKEN,只有带 Authorization: Bearer <token> 或 X-Mcp-Bearer-Token: <token> 的请求才能访问 POST /mcp。GET /healthz 与 GET / 仍然保持开放,便于探活。
Claude Desktop 配置
{
"mcpServers": {
"ec-usercenter": {
"command": "node",
"args": ["/absolute/path/to/ec-usercenter-mcp-server/src/index.js"],
"env": {
"EC_API_BASE_URL": "http://127.0.0.1:9000",
"EC_ENABLE_ADMIN_TOOLS": "true",
"EC_ENABLE_USER_TOOLS": "true",
"EC_ADMIN_JWT_TOKEN": "your-admin-access-token",
"EC_ADMIN_REFRESH_TOKEN": "your-admin-refresh-token",
"EC_USER_JWT_TOKEN": "your-user-access-token",
"EC_USER_REFRESH_TOKEN": "your-user-refresh-token",
"MCP_TRANSPORT": "stdio"
}
}
}
}主要工具
用户态 me_*
me_get_current_userme_list_ecidsme_get_account_overviewme_get_ecid_detailme_get_binding_infome_get_email_securityme_get_ticket_listme_get_ticket_countme_get_ticket_detailme_get_ticket_choicesme_get_admin_recruitment_timeme_search_playersme_get_scoretopme_get_vip_gift_statusme_get_console_player_urlme_get_year_summaryme_get_ticket_creation_contextme_get_ecid_overview
管理员态 admin_*
admin_get_current_useradmin_check_staff_permissionadmin_query_ticketsadmin_get_ticket_detailadmin_get_ticket_countadmin_get_my_ticketsadmin_get_ticket_ai_replyadmin_assign_ticketadmin_search_playersadmin_get_player_basicadmin_get_player_infoadmin_get_player_ticketsadmin_get_player_logsadmin_get_player_bansadmin_get_player_chat_historyadmin_get_player_auth_historyadmin_get_player_exchange_logadmin_get_player_recording_historyadmin_get_player_merchandiseadmin_get_player_tasksadmin_get_player_snapshot
MCP 资源
ec-usercenter://capabilities
用于查看当前启用的模式、工具列表和后端地址。
脚本
npm test
npm run smoke
npm run fc:plan
npm run fc:deploy
npm run fc:info
npm run fc:smoke:mcp -- --url https://example.com --bearer your-shared-tokennpm run smoke 适合在你已经配置好真实 .env 后做快速连通性探测。
部署
目标形态
仓库内置了面向阿里云 Function Compute 3.0 的 Streamable HTTP 部署方案:
s.yaml:生产环境
设计上和 easecation-user-center 一致,走 GitHub Actions + Serverless Devs;但实现比 user-center 更轻,没有拆 OSS/CDN/后端三段流水线,而是单函数直发。
当前 FC 模板使用 custom.debian10。按阿里云官方文档要求,模板已显式把 /var/fc/lang/nodejs20/bin 注入 PATH,这样实例内可以直接执行 npm start。
本机手动部署
要求:
已安装并配置
aliyunCLI有可用的阿里云 AK
本地
.env已准备好 UC token / refresh token
安装 Serverless Devs:
npm install -g @serverless-devs/s配置 access:
s config add --AccessKeyID <ak> --AccessKeySecret <sk> --region cn-hangzhou -f -a default部署前建议先看计划:
npm run fc:plan部署:
npm run fc:deploy查看云端信息:
npm run fc:info
aliyun fc GetFunction --region cn-hangzhou --functionName ec-usercenter-mcp-server
aliyun fc ListTriggers --region cn-hangzhou --functionName ec-usercenter-mcp-server如果生产部署里启用了真实 admin_* 或 me_* 工具,强烈建议同时设置 MCP_HTTP_BEARER_TOKEN,否则等于把带权限的 MCP 公网暴露出去。
GitHub Actions
仓库现在的 GitHub Actions 入口有 2 条 workflow:
.github/workflows/quality-check.yml.github/workflows/deploy-fc.yml
其中生产部署复用:
.github/workflows/reusable-fc-deploy.yml
生产环境 workflow 默认改成手动触发。和 user-center 不同,这个 MCP 服务会持有真实 UC token,所以不建议把 push main 直接绑定到生产部署。
部署 workflow 会做这些事:
npm cinpm tests plans deploys infoaliyun fc GetFunction / ListTriggers调用
GET /healthz做远程探活调用 MCP
resources/read/tools/list做远程协议探活
GitHub Environment / Secrets
建议在 GitHub 里创建一个 Environment:
production
每个环境至少配置这些 secrets:
ALIYUN_ACCESS_KEY_IDALIYUN_ACCESS_KEY_SECRETMCP_HTTP_BEARER_TOKENEC_ADMIN_JWT_TOKEN或EC_ADMIN_REFRESH_TOKENEC_USER_JWT_TOKEN或EC_USER_REFRESH_TOKEN
可选:
FEISHU_WEBHOOK
说明:
workflow 会根据 secrets 是否存在,自动决定是否启用
admin_*/me_*工具只要启用了
admin_*或me_*远程工具,workflow 会强制要求MCP_HTTP_BEARER_TOKEN生产 workflow 默认连
https://ucapi.easecation.net不要把真实 token 写进仓库文件,只放 GitHub Environment secrets 或本地
.env
设计说明
返回结果统一为:
structuredContentcontent
读取类工具会带
readOnlyHintadmin_assign_ticket明确标记为有副作用工具工具名称显式区分
admin_*和me_*,避免权限混淆
后续建议
如果你还要继续扩展个人 agent 能力,建议下一步优先补这几类聚合工具:
me_get_ticket_snapshotme_get_media_profileme_get_security_overviewadmin_get_ticket_snapshot
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/EaseCation/ec-usercenter-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server