Token导航 LogoToken导航TokenDH.com
MCP SGF Server logo
运维云端stdio官方级别未说明来源级核验

MCP SGF Server

MCP Server

mcp-sgf

MCP协议服务器,用于处理SGF(智能游戏格式)文件,提取游戏信息并生成可视化的棋盘图。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptClaude云端部署Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ragnar-johannsson

提供方

ragnar-johannsson

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx mcp-sgf

详细介绍

MCP SGF服务器

A. 模型上下文协议(MCP) 用于处理SGF(智能游戏格式)文件的服务器。使用提取游戏信息并生成可视化棋盘图。

特性

  • 提取全面的游戏信息 从SGF文件
  • 生成可视化电路板图 具有可定制的主题和格式
  • 高性能:游戏信息≤200ms,图表≤500ms
  • 稳健的验证 具有详细的错误处理
  • TypeScript严格模式 100%类型安全
  • 91.73%的测试覆盖率 139项综合测试
  • 多种输出格式:PNG和SVG支持
  • 可定制的主题:经典、现代和简约风格

快速开始

NPX(推荐)

无需安装即可立即启动MCP服务器:

npx mcp-sgf

服务器将启动并监听stdio上的MCP协议连接。

安装

全局安装以供重复使用:

npm install -g mcp-sgf
mcp-sgf

开发设置

克隆并设置开发:

git clone 
cd mcp-sgf
npm install
npm run build
npm start

客户端配置

要将此服务器与MCP兼容的客户端(Claude Desktop等)一起使用,请添加以下配置:

Claude桌面配置(claude_desktop_config.json):

{
  "mcpServers": {
    "sgf": {
      "command": "npx",
      "args": ["mcp-sgf"]
    }
  }
}

本地安装的替代方案:

{
  "mcpServers": {
    "sgf": {
      "command": "mcp-sgf"
    }
  }
}

用法

MCP SGF服务器提供了两个可以通过MCP协议调用的主要工具:

1.提取游戏信息(get-sgf-info)

从SGF文件中提取全面的元数据,包括玩家信息、游戏规则和结果。

{
  "tool": "get-sgf-info",
  "arguments": {
    "sgfContent": "(;FF[4]GM[1]SZ[19]PB[Lee Sedol]PW[AlphaGo]BR[9p]WR[-]KM[7.5]RE[W+R]DT[2016-03-09];B[pd];W[dp];B[cd];W[qp])"
  }
}

答复:

{
  "success": true,
  "data": {
    "gameInfo": {
      "playerBlack": "Lee Sedol",
      "playerWhite": "AlphaGo",
      "blackRank": "9p",
      "whiteRank": "-",
      "boardSize": 19,
      "komi": 7.5,
      "result": "W+R",
      "date": "2016-03-09",
      "fileFormat": 4,
      "gameType": 1
    },
    "metadata": {
      "totalMoves": 4,
      "boardSize": 19,
      "hasValidStructure": true
    },
    "warnings": []
  }
}

2.生成电路板图(get-sgf-diagram)

创建可视化棋盘图,显示具有可定制外观的游戏位置。

{
  "tool": "get-sgf-diagram", 
  "arguments": {
    "sgfContent": "(;FF[4]GM[1]SZ[19];B[pd];W[dp];B[cd];W[qp];B[ed];W[fq])",
    "moveNumber": 4,
    "width": 800,
    "height": 800,
    "theme": "modern",
    "coordLabels": true,
    "moveNumbers": false,
    "format": "png"
  }
}

答复:

{
  "success": true,
  "data": {
    "mimeType": "image/png",
    "width": 800,
    "height": 800,
    "movesCovered": 4,
    "boardSize": 19,
    "parameters": {
      "moveNumber": 4,
      "format": "png",
      "theme": "modern"
    }
  }
}

响应包括具有指定MIME类型的base64编码图像数据。

配置选项

游戏信息工具

参数类型必填说明
sgfContentstring完成SGF文件内容

图表工具

参数类型必填默认说明
sgfContentstring-完成SGF文件内容
moveNumber编号final要显示的具体移动(基于1)
startMove编号-移动范围的开始(从1开始)
endMove编号-移动范围结束(从1开始)
width编号600图像宽度(100-2000)
height编号600图像高度(100-2000)
coordLabelsbooleantrue显示坐标标签
moveNumbersbooleantrue显示移动数字
themestring经典视觉主题
formatstringpng输出格式

支持的主题

  • classic:传统木板配经典石材
  • modern:干净、现代的外观
  • minimal:简化设计,清晰明了

支持格式

  • png:光栅格式,最适合查看和共享
  • svg:矢量格式,可缩放和可编辑

支持的电路板尺寸

  • 范围:1×1至361×361板
  • 共同: 9×9, 13×13, 19×19
  • 自动:从SGF内容中检测大小

发展

脚本

npm run build       # Build TypeScript to JavaScript
npm run dev         # Development mode with watch
npm test           # Run all tests with coverage
npm run lint       # ESLint checking
npm run format     # Prettier formatting
npm run type-check # TypeScript type checking

客户端集成

MCP协议JSON示例

在以编程方式集成时,请使用以下JSON消息格式:

列出可用工具:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list"
}

呼叫获取SGF信息工具:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get-sgf-info",
    "arguments": {
      "sgfContent": "(;FF[4]GM[1]SZ[19]PB[Lee Sedol]PW[AlphaGo]BR[9p]WR[-]KM[7.5]RE[W+R]DT[2016-03-09];B[pd];W[dp];B[cd];W[qp])"
    }
  }
}

调用获取SGF图工具:

{
  "jsonrpc": "2.0", 
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "get-sgf-diagram",
    "arguments": {
      "sgfContent": "(;FF[4]GM[1]SZ[19];B[pd];W[dp];B[cd];W[qp];B[ed];W[fq])",
      "moveNumber": 4,
      "width": 800,
      "height": 800,
      "theme": "modern",
      "format": "png"
    }
  }
}

项目结构

mcp-sgf/
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── tools/                # MCP tool implementations
│   │   ├── getSgfInfo.ts     # Game information extraction
│   │   └── getSgfDiagram.ts  # Diagram generation
│   ├── utils/                # Utility functions
│   │   ├── sgfParser.ts      # SGF parsing logic
│   │   ├── diagramRenderer.ts # Image generation
│   │   └── validation.ts     # Input validation
│   └── types/
│       └── sgf.ts           # TypeScript type definitions
├── tests/                   # Comprehensive test suite
├── docs/                    # Documentation
└── package.json            # Dependencies and scripts

测试

# Run all tests
npm test

# Run specific test suite
npm test tests/getSgfInfo.test.ts

# Run with coverage report
npm test -- --coverage

# Run performance tests
npm test tests/performance.test.ts

质量保证

  • TypeScript:严格模式,100%类型覆盖
  • ESLint:零警告,严格规则
  • 更漂亮:一致的代码格式
  • 速度:强制执行95%的覆盖率阈值
  • 演出:响应时间目标已验证

错误处理

服务器提供具有特定错误类型的全面错误处理:

错误类型

类型描述
INVALID_FORMATSGF内容格式无效
INVALID_PARAMETERS参数无效或缺失
PARSING_ERROR解析SGF内容失败
UNSUPPORTED_GAME不支持游戏类型
FILE_TOO_LARGESGF文件超出大小限制

错误响应示例

{
  "success": false,
  "error": {
    "type": "INVALID_FORMAT",
    "message": "Invalid SGF format. SGF files must start with '(' and end with ')' and contain at least one property.",
    "details": {}
  }
}

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

文档

目录标签

目录标签

TypeScriptClaude云端部署游戏分析本地部署棋盘图生成SGF解析高性能处理多格式输出

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

remote-capable

来源包(packageName,安装包名)

mcp-sgf

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP