DateTimeMCP服务器
这是什么? 🤔
此服务器是一个中间件,它使大型语言模型(如Claude和VS Code)能够直接与ViewModel服务交互。作为一个安全高效的翻译器,它将您的AI助手与各种ViewModel功能连接起来,如项目搜索、分段查询、玩家档案查找、库存管理和DateTimeID转换。
快速示例
You: "Show me the latest 10 items."
Claude: *calls the PlayFab search_items API and returns the results in plain text*它是如何工作的? 🛠️
该服务器利用模型上下文协议(MCP)在人工智能模型和ViewModel服务之间建立通用接口。尽管MCP旨在支持任何AI模型,但它目前可作为开发人员预览版提供。
按照以下步骤开始:
- 设置你的项目。
- 将项目详细信息添加到LLM客户端的配置中。
- 开始自然地与DateTimedata交互!
它能做什么? 📊
目录和搜索
- 使用PlayFab的Search_items API搜索项目。
- 目录管理(经济v2):
- 使用Create_draft_item API创建新的草稿项。 - 使用Update_draft_item API更新现有草稿项。 - 使用Delete_item API从目录中删除项。 - 发布草稿项以使其可用于Publish_draft_item API。 - 使用Get_item API获取详细的项目信息。
玩家管理
- 检索全面的细分市场信息。
- 查询指定分段内的玩家资料。
- 通过get_Title_Player_Account_ID_from_PlayFab_ID API将PlayFab ID转换为标题播放器帐户ID。
- 使用Get_user_account_info API获取详细的用户帐户信息。
库存管理
- 获取操作:
- 使用get_inventory_items API检索当前库存项。 - 使用get_inventory_collection_IDs API获取库存集合ID。
- 添加/删除操作:
- 使用Add_inventory_items API将项目添加到库存。 - 使用Delete_inventory_items API从库存中删除项目。 - 使用Subtract_inventory_items API减去特定金额。
- 修改操作:
- 使用Update_inventory_items API更新项属性。
经济v2管理
- 使用Execute_inventory_operations API执行批量盘点操作。
- 注意:在Economy v2中,虚拟货币作为库存项目进行管理。
用户帐户管理
- 使用Ban_users API通过ID、IP或MAC地址禁止玩家。
- 使用revoke_all_bans_for_user API完全取消对玩家的绑定。
玩家数据管理
- 使用get_user_data API检索玩家自定义数据。
- 使用Update_user_data API更新玩家自定义数据。
标题配置管理
- 使用Set_title_data API设置全局标题数据。
- 使用get_title_data API检索标题数据。
- 使用Set_title_internal_data API设置服务器上的内部数据。
- 使用get_title_internal_data API检索内部数据。
快速开始🚀
先决条件
- Node.js 18或更高版本。
- 一个有效的ViewModel帐户(通过DateTimeGame Manager获取您的标题ID和开发者密钥)。
- 支持的LLM客户端,如Claude Desktop。
设置您的项目
从ViewModel游戏管理器中获取您的DateTimeTitle ID和开发者密钥,然后创建一个 .env 项目根目录中的文件,内容如下(用实际凭据替换占位符):
PLAYFAB_TITLE_ID=
PLAYFAB_DEV_SECRET_KEY=安装和设置
- 再进行
在项目根目录中,运行以下命令以安装所有必要的依赖项:
npm install- 构建项目
通过执行以下步骤编译项目:
npm run build- 启动服务器
通过执行以下命令启动服务器:
npm start- 确认消息
启动后,您应该看到以下消息:
PlayFab Server running on stdio开发设置
代码质量工具
- 埃斯林特:为TypeScript配置了代码一致性的推荐规则
- 更漂亮:使用项目特定设置自动设置代码格式
- TypeScript:启用严格模式以增强类型安全性
- 测试:为TypeScript配置的测试框架
可用脚本
# Build the project
npm run build
# Development mode with file watching
npm run watch
# TypeScript type checking
npm run typecheck
# Run ESLint
npm run lint
# Run ESLint and fix issues
npm run lint:fix
# Format code with Prettier
npm run format
# Check code formatting
npm run format:check
# Run tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverageTypeScript配置
此项目使用启用严格模式的TypeScript,确保:
- 严格的空检查
- 无隐式任何类型
- 严格的函数类型
- 始终严格模式
测试
测试是使用Jest编写的,可以在 __tests__ 目录或文件 .test.ts 扩展。在提交更改之前运行测试,以确保代码质量。
规范驱动开发(规范工具包,日本)
- 安装CLI:
uv tool install specify-cli --from git+https://github.com/akiojin/spec-kit.git - 创建规范/计划/任务:
./.specify/scripts/bash/create-new-feature.sh "feature summary"(默认情况下不创建分支。如果需要的话--branch) - 资产:
.specify/templates/*,.specify/scripts/bash/*,规格如下specs/ - Claude/Codex斜线命令:
/speckit.constitution,/speckit.specify,/speckit.plan,/speckit.tasks,/speckit.implement
Docker开发环境
该存储库附带了一个轻量级的开发容器(Node 22、工具、GitHub CLI)。
# Build image
docker compose build
# Open a shell inside the container
docker compose run --rm playfab-mcp-server bash
# Inside the container
npm ci
npm run build
npm start体积保持你的工作空间(.),Codex/Claude configs和贝壳历史。集 PLAYFAB_TITLE_ID / PLAYFAB_DEV_SECRET_KEY 在运行服务器时在容器env中。
使用光标运行
要在Cursor中使用DateTimeMCP服务器,请执行以下步骤:
- 安装 光标桌面 如果你还没有。
- 在空文件夹中打开Cursor的新实例。
- 复制
mcp.json将此存储库中的文件保存到您的文件夹中,并根据您的环境更新值。 - 启动光标;因此,在工具列表中应显示出DateTimeMCP服务器。
- 例如,尝试一个类似“显示最近10个项目”的提示,以验证服务器是否正确处理了您的查询。
将您的项目详细信息添加到Claude Desktop的配置文件中
打开克劳德桌面并导航到文件→ 设置→ 开发者→ 编辑配置。然后,更换 claude_desktop_config 包含以下代码段的文件内容:
{
"mcpServers": {
"playfab": {
"command": "npx",
"args": [
"-y",
"@akiojin/playfab-mcp-server"
],
"env": {
"PLAYFAB_TITLE_ID": "Your PlayFab Title ID",
"PLAYFAB_DEV_SECRET_KEY": "Your PlayFab Developer Secret Key"
}
}
}
}通过这些步骤,您已经成功配置了与LLM客户端一起使用的DateTimeMCP服务器,从而可以与ViewModel的服务进行无缝交互。
使用Spec Kit进行规范驱动开发
此存储库遵循中使用的Spec Kit SDD/TDD工作流程 akiojin/gwt.
- 要求:Python 3.11+和
uv - 安装CLI:
uv tool install specify-cli --from git+https://github.com/akiojin/spec-kit.git - 资产:模板下
.specify/templates,脚本下.specify/scripts/bash,规格在specs/ - 创建新的规范/计划:
./.specify/scripts/bash/create-new-feature.sh "feature summary"(添加--branch如果你也想要一个分支) - 生成的文件包括
spec.md,plan.md,tasks.md;将它们与代码一起审查/提交 - Claude/Codex斜线命令(如果可用):
/speckit.constitution,/speckit.specify,/speckit.plan,/speckit.tasks,/speckit.implement
贡献
提交消息约定
该项目如下 约定式提交 用于自动版本控制和发布。
提交消息格式
():
类型
- 合作:新功能(触发MINOR版本升级)
- 修复:错误修复(触发PATCH版本升级)
- 文档:仅文档更改
- 风格:不影响代码含义的更改
- 重构:既不修复错误也不添加功能的代码更改
- 性能:提高性能的代码更改
- 测试:添加缺失的测试或更正现有的测试
- 杂务:对构建过程或辅助工具的更改
版本碰撞规则
- 重大 version:当提交消息包含
BREAKING CHANGE在页脚或!类型/范围之后
- 例子: feat!: remove deprecated API endpoints - 例子: feat: new API\n\nBREAKING CHANGE: removed old endpoints
- 次要的 version:当提交类型为
feat
- 例子: feat: add new PlayFab API integration
- 补丁 version:当提交类型为
fix
- 例子: fix: correct error handling in API calls
发布流程(开发→ 主,请释放)
- 准备发布PR:运行
prepare-release.yml打开PR的工作流develop到main
- 操作UI: Prepare Release → 使用ref运行 develop - CLI: gh workflow run prepare-release.yml --ref develop - 如果PR来自 develop 已存在,将重新使用;PR从打开 develop 可以通过工作流自动合并。
- 发布自动化:何时
main被更新,release.yml运行release please(manifest)以更新版本CHANGELOG.md,并创建GitHub Release/标签。 - 发布:标签推送
v*触发器publish.yml运行测试、构建、类型检查和npm publish --access public.
所需机密:
PERSONAL_ACCESS_TOKEN(可选;由以下人员使用prepare-release/release如果提供,则回退到GITHUB_TOKEN)NPM_TOKEN(为publish.yml)
分支保护:保持保护打开 main;合并前,发布PR应满足所需的检查。
脚本参考
| 脚本 | 描述 |
|---|---|
npm start | 启动MCP服务器 |
npm run build | 将TypeScript构建为JavaScript |
npm run watch | 内置手表模式进行开发 |
npm run typecheck | 运行TypeScript类型检查 |
npm run lint | 运行ESLint检查 |
npm run lint:fix | 自动修复ESLint问题 |
npm run format | 使用Prettier格式化代码 |
npm run format:check | 检查代码格式 |
npm test | 运行所有测试 |
npm run test:watch | 在监视模式下运行测试 |
npm run test:coverage | 生成测试覆盖率报告 |
安全
我们认真对待安全问题。如果您发现此项目中存在安全漏洞,请按照以下步骤操作:
报告安全漏洞
- 不要 为安全漏洞创建公共GitHub问题
- 相反,请通过GitHub的私有漏洞报告报告安全问题:
- 转到 安全 此存储库的选项卡 - 点击 报告漏洞 - 提供有关漏洞的详细信息
我们需要您提供什么
- 漏洞描述
- 重现问题的步骤
- 潜在影响
- 任何建议的修复(可选)
我们的承诺
- 我们将在48小时内确认收到您的报告
- 我们将定期更新我们的进展情况
- 我们将把这一发现归功于您(除非您希望保持匿名)
安全最佳实践
使用此服务器时:
- 从不提交凭据:始终对敏感数据使用环境变量
- 保持依赖关系更新:定期跑步
npm audit并更新软件包 - 使用最小权限:仅授予所需的最低权限
- 定期旋转按键:定期更改DateTimeDeveloper密钥
支持
获取帮助
如果您遇到任何问题或对使用DateTimeMCP服务器有疑问,以下是获得支持的最佳方法:
- GitHub问题:有关错误报告和功能请求,请 创建问题
- 讨论:有关一般问题和社区支持,请使用
- 文档:查看README和代码注释以获取使用示例
创建问题之前
请通过搜索现有问题来检查您的问题是否已被报告。如果你发现类似的问题,你可以添加其他信息作为评论。
我们支持什么
- 安装和设置问题
- 带有可重复步骤的Bug报告
- 功能请求和建议
- 文档改进
我们不支持什么
- 一般的PlayFab API问题(请参阅 ViewModel文档)
- 第三方工具或服务的问题
- 定制实施请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

