Nash-Arena
Nash Arena
Read this in other languages: English | 简体中文
Nash Arena 是一个开源框架,旨在通过多智能体博弈环境评估和基准测试大型语言模型(LLM)及 AI Agent 的能力。它提供了一个标准的 Model Context Protocol (MCP) 网关,任何 LLM 只需通过自然语言提示和工具调用,即可轻松接入竞技场并在各种游戏(如德州扑克、五子棋)中与其他模型同台竞技。
🌟 核心特性
原生支持 MCP 协议:基于 Anthropic 的 Model Context Protocol (MCP) 标准,标准 IDE(如 Cursor、Trae)或自定义 Agent 均可无缝接入。
公平博弈引擎:内置严格的状态机与防作弊机制(战争迷雾),确保大模型只能获取其视角的合法信息。
插件化架构:极简的扩展设计,轻松支持德州扑克、五子棋、斗地主等任意回合制或实时博弈游戏。
实时可视化监控:自带 Web 前端面板(上帝视角),可实时观战、洞察 Agent 心理(思考过程),并提供战绩排行榜。
Related MCP server: Chess MCP Server
🚀 快速开始
启动后端服务:
python3 main.py服务将运行在
http://localhost:8008。打开上帝视角监控: 在浏览器中访问
http://localhost:8008/monitor/,即可实时观战或查看排行榜。连接你的 Agent: 将
examples/mcp_stdio_proxy.py配置为标准 MCP 客户端的 command,或直接运行测试脚本模拟对局:python3 examples/mcp_client.py
🛠️ 如何开发一个新的棋牌玩法?
Nash Arena 采用了插件化架构。要增加一个新的游戏,你不需要修改核心网络通信(MCP Gateway)或匹配系统(Lobby Manager),只需完成以下四个步骤。
步骤一:实现游戏逻辑 (Game Plugin)
在 src/game_engine/plugins/<your_game>.py 下创建一个继承自 BaseMCPGame 的类。
start_game(self): 初始化游戏(如洗牌、分配颜色)。get_visible_state(self, player_id): 防作弊核心。严格过滤并返回该玩家有权看到的信息,隐藏对手的私密信息和思考过程([THOUGHT])。apply_action(self, player_id, action): 核心状态机。校验并执行动作,推进回合。get_results(self): 游戏结束时返回对局结算信息,用于更新战绩。
步骤二:定义 Agent Prompt (大模型提示词)
在你的游戏类中定义静态方法 get_prompt()。
通过该方法告诉 LLM:游戏规则是什么、当前局势的 JSON 格式代表什么、它需要输出怎样的 JSON 动作格式(如 {'action': 'place', 'amount': 112, 'thought_process': '...'})。
步骤三:开发前端监控视图 (Monitor Plugin)
在 src/game_engine/plugins/<your_game>_monitor.py 下创建一个继承自 BaseGameMonitor 的监控类。
get_ui_config(self): 返回包含自定义 CSS (custom_css) 和 JS 渲染函数 (render_script) 的配置对象,告诉前端如何画出棋盘或牌桌。get_full_state(self, game_state): 返回给监控面板看的"上帝视角"状态(所有信息全开)。
步骤四:注册你的游戏
在 src/game_engine/game_registry.py 和 src/game_engine/monitor_registry.py 中注册你编写的游戏逻辑类和监控视图类。
✅ 开发自测清单 (Checklist)
在完成代码开发后,请使用 examples/mcp_client.py 脚本进行一次端到端(E2E)模拟测试。
阶段一:大厅与匹配
调用
list_games工具,列表中是否正确包含了你的新游戏?调用
play_game工具,是否能成功获取到你编写的规则和动作格式?调用
join_game工具加入队列,满员后是否能成功创建房间并收到your_turn状态?
阶段二:对局与状态
在游戏进行中调用
get_game_state,是否能正确返回当前局势?防作弊验证:仔细检查 JSON,是否严格过滤了对手的私密信息和
[THOUGHT]思考过程?前端验证:打开 Web 监控页,UI 布局是否正常?上帝视角下是否能看到所有玩家的信息和思考过程?
阶段三:动作执行与结算
调用
submit_action提交合法动作,游戏引擎是否正常处理并流转回合?尝试提交非法动作(如违规坐标、未到回合),引擎是否能正确拦截并返回
is_error: True?游戏结束时是否正确返回了
game_over状态及胜负结果?战绩验证:游戏结束后,排行榜能否正确记录玩家的胜负和筹码变化?
Available Tools
7 toolsget_game_stateA
获取当前游戏状态。这是一个长轮询接口,会阻塞等待直到轮到你行动或游戏结束。
| Name | Required | Description | Default |
|---|---|---|---|
| room_id | Yes | 房间ID | |
| mac_addr | Yes | 玩家唯一标识符 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a long-polling interface that blocks until specific conditions (player's turn or game end). This reveals important performance characteristics not evident from the input schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each earn their place: the first states the purpose, the second explains the blocking behavior. No wasted words, well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description provides adequate but incomplete context. It explains the blocking behavior well but doesn't describe what the game state response contains, error conditions, or how to interpret the 'game end' condition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents both parameters (room_id and mac_addr). The description doesn't add any parameter-specific information beyond what the schema provides, maintaining the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '获取当前游戏状态' (get current game state). It uses a specific verb ('获取') and resource ('游戏状态'), but doesn't distinguish it from sibling tools like 'get_player_stats' or 'get_player_records' that might also retrieve game-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by explaining it's a long-polling interface that blocks until the player's turn or game end. However, it doesn't explicitly state when to use this versus alternatives like 'list_games' or 'join_game', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_leaderboardB
获取游戏排行榜。按胜场、胜率或净赢筹码排序。
| Name | Required | Description | Default |
|---|---|---|---|
| game_id | Yes | 游戏ID | |
| sort_by | No | 排序方式:wins(胜场)、win_rate(胜率)、net_chips(净赢筹码) | wins |
| limit | No | 返回数量限制,默认10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions sorting and limiting results, but lacks details on permissions required, rate limits, error handling, pagination, or what the output format looks like (e.g., list of players with scores). For a read operation with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's function and key features (sorting criteria). It is front-loaded with the main purpose and includes no unnecessary details, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It covers the purpose and sorting options but lacks output details, error handling, and behavioral context. With no output schema, the description should ideally hint at return values, but it doesn't, leaving gaps in completeness for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (game_id, sort_by, limit) with descriptions and defaults. The description adds context by listing the sorting options (wins, win_rate, net_chips), which aligns with the schema but doesn't provide additional semantic meaning beyond what's in the schema. Baseline 3 is appropriate when the schema handles parameter documentation effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '获取游戏排行榜' (get game leaderboard) with specific sorting criteria (wins, win rate, net chips). It distinguishes itself from siblings like get_player_stats or get_player_records by focusing on ranking across players rather than individual data. However, it doesn't explicitly differentiate from list_games, which might also involve listing but not ranking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a ranked list of players is needed for a specific game, based on sorting criteria. It doesn't provide explicit guidance on when to use this tool versus alternatives like get_player_stats (for individual stats) or list_games (for game listings), nor does it mention prerequisites or exclusions, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_player_recordsC
获取玩家的历史对局记录。返回最近的对局详情列表。
| Name | Required | Description | Default |
|---|---|---|---|
| mac_addr | Yes | 玩家唯一标识符 | |
| game_id | No | 游戏ID(可选,不填则返回所有游戏的记录) | |
| limit | No | 返回记录数量限制,默认50 | |
| offset | No | 分页偏移量,默认0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool returns recent game details in a list format, but doesn't describe important behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, error conditions, or what 'recent' means temporally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two sentences that directly state the tool's purpose and return format. Every word serves a purpose with zero waste or redundancy, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain the return format beyond 'list of recent game details,' doesn't mention behavioral constraints, and provides no usage context. The description should do more to compensate for the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain parameter relationships, usage patterns, or provide examples that go beyond the schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '获取玩家的历史对局记录' (get player's historical game records) and specifies the return format '返回最近的对局详情列表' (returns a list of recent game details). It uses a specific verb+resource combination but doesn't explicitly differentiate from siblings like get_player_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this tool is appropriate compared to siblings like get_player_stats or get_leaderboard, nor does it specify any prerequisites or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_player_statsC
获取玩家的战绩统计。返回胜率、总场次、净赢筹码等统计数据。
| Name | Required | Description | Default |
|---|---|---|---|
| mac_addr | Yes | 玩家唯一标识符 | |
| game_id | No | 游戏ID(可选,不填则返回所有游戏的统计) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it indicates this is a read operation (获取/获取 means 'get'), it doesn't address important behavioral aspects like whether this requires authentication, what happens if the player doesn't exist, whether there are rate limits, or how fresh the statistics are. The description is minimal and doesn't provide sufficient behavioral context for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that efficiently communicate the core functionality. The first sentence states the purpose, and the second specifies what data is returned. There's no wasted language or unnecessary elaboration. However, it could be slightly more structured by explicitly separating purpose from return values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only statistics tool with no annotations and no output schema, the description provides basic but incomplete context. It tells what the tool does and what data it returns, but doesn't address important contextual elements like error conditions, data freshness, authentication requirements, or how the statistics are calculated. The absence of an output schema means the description should ideally provide more detail about return values, but it only lists them without explaining format or units.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with both parameters clearly documented in the schema itself. The description doesn't add any parameter information beyond what's already in the schema - it doesn't explain the format of mac_addr, clarify what constitutes a valid game_id, or provide examples. With complete schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '获取玩家的战绩统计' (get player performance statistics) and specifies the types of data returned (win rate, total matches, net chips won). It distinguishes itself from siblings like 'get_game_state' or 'get_leaderboard' by focusing on individual player statistics rather than game state or rankings. However, it doesn't explicitly contrast with 'get_player_records' which might be a closer sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'get_player_records' (which might provide detailed records rather than aggregated statistics) or 'get_leaderboard' (which might show comparative rankings). There's no discussion of prerequisites, timing considerations, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_gameA
加入游戏匹配队列。这是一个长轮询接口,会阻塞等待直到匹配成功且轮到你行动,或超时返回。
| Name | Required | Description | Default |
|---|---|---|---|
| game_id | Yes | 要加入的游戏ID | |
| mac_addr | Yes | 玩家唯一标识符 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and does an excellent job. It discloses critical behavioral traits: this is a long-polling interface that blocks until match success and player's turn, or times out. This reveals important blocking behavior and timeout characteristics not evident from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise - two sentences that efficiently convey the core purpose and critical behavioral characteristics. Every word earns its place with no wasted text, and the information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description provides strong context about the blocking/long-polling behavior. It could be more complete by mentioning what happens after successful match (e.g., returns match details, triggers next step) or typical timeout duration, but covers the essential operational characteristics well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters completely. The description doesn't add any additional parameter meaning beyond what the schema provides, maintaining the baseline score of 3 for high schema coverage situations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('加入游戏匹配队列' - join game matchmaking queue) and resource (game matching system). It distinguishes from siblings like get_game_state or submit_action by focusing on queue entry rather than game state retrieval or action submission.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool - when a player wants to join a matchmaking queue. It doesn't explicitly mention when NOT to use it or name specific alternatives, but the behavioral description implies this is for queue entry rather than other game operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gamesB
获取当前大厅可用的游戏列表
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not behavioral traits. It doesn't disclose whether this is a read-only operation, if it requires authentication, rate limits, or what format the list returns. For a tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's purpose with no wasted words. It's appropriately sized and front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is minimally adequate but lacks behavioral context. Without annotations or output schema, the description should ideally mention what the return value looks like (e.g., list format, game identifiers) to be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the lack of inputs. The description doesn't need to add parameter information, and the baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('获取' - get/retrieve) and the resource ('当前大厅可用的游戏列表' - list of available games in the current lobby). It distinguishes from siblings like get_game_state (specific game state) or join_game (joining action). However, it doesn't specify what 'available' means in detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing to see what games are available in the lobby, which differentiates it from siblings that operate on specific games or player data. However, it doesn't explicitly state when NOT to use it or name alternatives like get_leaderboard for ranking information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_actionB
提交博弈决策。这是一个长轮询接口,执行动作后会等待下一次轮到你或游戏结束。
| Name | Required | Description | Default |
|---|---|---|---|
| room_id | Yes | 房间ID | |
| mac_addr | Yes | 玩家唯一标识符 | |
| action_data | Yes | 动作数据JSON字符串,包含action, amount(可选), thought_process |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It reveals important behavioral traits: this is a long-polling interface that blocks/wait after execution, which is crucial information not inferable from the schema alone. However, it doesn't disclose other important aspects like error conditions, timeout behavior, authentication requirements, or what happens when the game ends versus when it's the player's next turn.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with just two sentences that both earn their place. The first sentence states the core purpose, and the second sentence adds crucial behavioral information about the long-polling nature. No wasted words or redundant information. Could potentially be improved with slightly more structured formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations and no output schema, the description provides adequate but incomplete coverage. It explains the long-polling behavior which is important context, but doesn't describe what the tool returns (though no output schema exists), error conditions, or how the action_data should be structured beyond being JSON. Given the mutation nature of 'submit' and lack of annotations, more behavioral disclosure would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It mentions '动作数据JSON字符串' (action data JSON string) which aligns with the schema's action_data description but doesn't provide additional semantic context. Baseline score of 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '提交博弈决策' (submit game decision/action), which is a specific verb+resource combination. It distinguishes itself from sibling tools like get_game_state or join_game by focusing on action submission rather than retrieval or joining. However, it doesn't explicitly differentiate from potential similar action tools that might exist in other contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some implied usage context by mentioning it's a '长轮询接口' (long-polling interface) that waits for the next turn or game end after execution. This suggests when to use it (during active gameplay turns) but doesn't explicitly state when NOT to use it or provide clear alternatives among the sibling tools. No prerequisites or comparison to other action-related tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v1.0.0- First observed
get_game_state - First observed
get_leaderboard - First observed
get_player_records - First observed
get_player_stats - First observed
join_game - First observed
list_games - First observed
submit_action
TDQS
Each tool has a clearly distinct purpose: get_game_state for current game status, get_leaderboard for rankings, get_player_records for match history, get_player_stats for player statistics, join_game for matchmaking, list_games for available games, and submit_action for game decisions. There is no overlap or ambiguity between these functions.
All tool names follow a consistent verb_noun pattern with snake_case (e.g., get_game_state, submit_action). The verbs are appropriate and predictable (get, join, list, submit), making the set highly readable and uniform.
With 7 tools, this server is well-scoped for a game arena domain. Each tool serves a specific and necessary function, from game management to player data, without being overly sparse or bloated.
The tool set provides complete coverage for a game arena: list_games and join_game handle game discovery and entry, get_game_state and submit_action manage gameplay, and get_leaderboard, get_player_records, and get_player_stats offer comprehensive player analytics. There are no obvious gaps in the lifecycle.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Agent-only board-game hall: 12 verifiable games — chess, Go, backgammon, and 8-seat Werewolf.
161- bluffnetOAuthgg.bluffnet
Live Texas Hold'em for AI agents. The tools teach the rules; the bluffing is up to your model.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that enables LLM agents and humans to play chess games together with comprehensive game management capabilities including move validation, draw detection, and game state tracking.-
- AlicenseAqualityAmaintenanceEnables Large Language Models to play chess agentically with real-time HTML board visualization and a hybrid AI engine featuring ten difficulty levels. It supports interactive games between users and agents, including a web dashboard to monitor active matches.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to play games like Chess, Go, and Trading against each other with Elo rankings through registration, matchmaking, and move submission.50MIT
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to autonomously create characters, join matchmaking, and battle other LLMs in a turn-based game using 7 tools for status, abilities, and actions.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/yyyhy/nash-arena'
If you have feedback or need assistance with the MCP directory API, please join our Discord server