mcp棋盘游戏
用于棋盘游戏规则的MCP服务器,由从官方PDF生成的结构化Markdown知识库支持。专为精确的规则查询、边缘案例解析和游戏辅助而设计。
当前状态
此存储库现在公开了以下内容:
- 本地MCP服务器
stdio - 通过HTTP的远程MCP端点
/mcp
MCP传输是该项目的主要且唯一的公共接口。
在本地运行
先决条件:
- 转到1.24或更高版本
MCP服务器(stdio)
从存储库根目录启动MCP服务器:
$env:BOARDGAME_RULES_PATH="boardgame_rules"
go run ./cmd/mcp-server如果 go 不在你的 PATH,使用完整的二进制路径:
$env:BOARDGAME_RULES_PATH="boardgame_rules"
& "C:\Program Files\Go\bin\go.exe" run ./cmd/mcp-server这将通过标准输入/输出启动本地MCP服务器。
远程MCP服务器
从存储库根目录启动远程MCP服务器:
$env:BOARDGAME_RULES_PATH="boardgame_rules"
$env:PORT="8080"
go run ./cmd/server如果 go 不在你的 PATH,使用完整的二进制路径:
$env:BOARDGAME_RULES_PATH="boardgame_rules"
$env:PORT="8080"
& "C:\Program Files\Go\bin\go.exe" run ./cmd/server服务器启动于 http://localhost:8080 默认情况下。
可用端点:
http://localhost:8080/mcp:使用HTTP上的JSON-RPC 2.0并支持SSE的主远程MCP端点
使用Docker运行
从存储库根构建映像:
docker build -t mcp-boardgames .运行容器:
docker run --rm -p 8080:8080 mcp-boardgames容器包括存储库的 boardgame_rules/ 目录并从中提供 /app/boardgame_rules 默认情况下。Docker镜像运行远程MCP服务器进程,该进程公开 /mcp.
如果要使用其他本地规则目录,请装载并覆盖它 BOARDGAME_RULES_PATH:
docker run --rm -p 8080:8080 `
-v "${PWD}\\boardgame_rules:/data/boardgame_rules:ro" `
-e BOARDGAME_RULES_PATH=/data/boardgame_rules `
mcp-boardgames使用远程MCP端点
远程MCP端点暴露在:
http://localhost:8080/mcp此端点使用JSON-RPC 2.0、MCP会话头,并支持 text/event-stream 流式HTTP客户端的响应。
最小流量:
POST /mcp随着initialize- 阅读
Mcp-Session-Id从响应标头中 POST /mcp随着notifications/initialized使用该会话标头POST /mcp随着tools/list或tools/call- 可选使用
Accept: text/event-stream或GET /mcp用于基于SSE的MCP工作流
初始化请求示例:
curl -i -X POST "http://localhost:8080/mcp" `
-H "Content-Type: application/json" `
-H "Accept: application/json, text/event-stream" `
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-03-26\",\"capabilities\":{},\"clientInfo\":{\"name\":\"demo-client\",\"version\":\"1.0.0\"}}}"示例 tools/call 初始化后的请求:
curl -X POST "http://localhost:8080/mcp" `
-H "Content-Type: application/json" `
-H "Mcp-Session-Id: " `
-d "{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"tools/call\",\"params\":{\"name\":\"query_rules\",\"arguments\":{\"game\":\"twisted-cryptids\",\"topic\":\"setup\"}}}"示例 tools/call 请求SSE:
curl -N -X POST "http://localhost:8080/mcp" `
-H "Content-Type: application/json" `
-H "Accept: application/json, text/event-stream" `
-H "Mcp-Session-Id: " `
-d "{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"tools/call\",\"params\":{\"name\":\"query_rules\",\"arguments\":{\"game\":\"twisted-cryptids\",\"topic\":\"setup\"}}}"可选SSE流打开:
curl -N "http://localhost:8080/mcp" `
-H "Accept: text/event-stream" `
-H "Mcp-Session-Id: "当前MCP工具:
query_rules:搜索boardgame_rules//按主题查看相关章节
与AI代理一起使用
法典
Codex可以将此项目用作:
- 本地MCP服务器
stdio - 如果您的Codex MCP客户端配置了URL,则通过HTTP连接远程MCP服务器
本地 stdio 命令:
go run ./cmd/mcp-server或者,如果需要:
& "C:\Program Files\Go\bin\go.exe" run C:\Users\osman\OneDrive\Documentos\Gitkraken\mcp-boardgames\cmd\mcp-server远程MCP URL:
http://localhost:8080/mcpOpenAI通过Codex CLI记录Codex MCP配置,并使用MCP服务器URL共享配置。
Claude Desktop和其他MCP客户端
Claude Desktop可以将此项目用作本地MCP服务器 stdio远程Claude MCP客户端可以使用 /mcp 当通过HTTPS暴露时,通过HTTP/SSE的端点。
对于本地Claude Desktop使用,请将MCP客户端指向:
go run ./cmd/mcp-server对于远程MCP使用,通过HTTPS公开此服务器并使用:
https://your-host.example.com/mcpAnthropic记录了克劳德产品上远程MCP支持的支持计划。特别是对于Claude Desktop来说,最直接的选择仍然是本地的 stdio.
克劳德代码
Claude Code支持本地MCP服务器和通过HTTP/SSE的远程MCP服务器。
使用本地 stdio:
go run ./cmd/mcp-server或者使用远程MCP URL:
http://localhost:8080/mcpAnthropic文档Claude Code MCP支持本地基于命令的服务器和HTTP/SSE MCP服务器。
代理设置翻译
使用 setup.sh 将存储库的规范代理文件转换为不同代理工具使用的约定。
规范来源:
AGENTS.mdskills/*/SKILL.md
支持的目标:
codexclaudegeminicopilotall
示例:
bash ./setup.sh codex
bash ./setup.sh claude
bash ./setup.sh all生成的输出:
CLAUDE.md和.claude/skills/克劳德代码GEMINI.md和.agents/skills/适用于Gemini CLI.github/copilot-instructions.md和.github/skills/GitHub Copilot.codex-setup.md作为一个小型Codex标记文件
技能处理:
setup.sh不会将完整的规范技能内容复制到每个目标目录中- 对于每种翻译的技能,它都会创建一个目标本地
SKILL.md存根 - 例如,每个存根都指向规范仓库路径
skills/ingest-boardgame-manual/SKILL.md
直接注册MCP需要什么
存储库已经支持:
- 本地MCP
stdio - 通过HTTP远程MCP
/mcp - 远程MCP端点上的SSE响应
如果需要,下一次传输升级将是更深入的MCP功能,如可恢复的SSE流、服务器发起的通知和更严格的远程会话语义。
项目结构
cmd/mcp-server:MCPstdio入口点cmd/server:远程MCP HTTP入口点domain:核心域实体和业务规则application:用例和应用程序服务adapters:基础设施和外部接口
领域模型
Game:棋盘游戏的聚合根及其规则Rule:从Markdown加载以主题为中心的规则文档Section:规则中的结构化规则内容
Markdown加载
adapters/filesystem:从加载游戏规则boardgame_rules//- 需要
00_metadata.yaml在每个游戏目录中 - 读取
.md规则文件,并根据Markdown标题将其拆分为多个部分
查询逻辑
application:通过应用程序服务按主题搜索规则内容- 匹配不区分大小写,仅限于章节标题和章节内容
- 查询结果仅返回所请求主题的相关部分
服务器接口
cmd/mcp-server:通过以下方式启动本地MCP服务器stdio- MCP工具:
query_rules cmd/server:启动远程MCP服务器POST /mcp:通过HTTP使用JSON-RPC 2.0的主远程MCP端点GET /mcp:MCP客户端的可选SSE流端点BOARDGAME_RULES_PATH设置规则目录和默认值boardgame_rulesPORT设置侦听端口并默认为8080ALLOWED_ORIGINS可选地定义允许的HTTP源/mcp以逗号分隔的列表形式Dockerfile:为远程MCP服务器构建容器映像
技能
skills/ingest-boardgame-manual:可重用的工作流程,用于将官方手动PDF转换为存储库就绪的Markdown规则文件和元数据
