all-hearts-2025-mcp-server

nateshmbhat/all-hearts-2025-mcp-server

3.2

If you are the rightful owner of all-hearts-2025-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The All Hearts 2025 MCP Server is a TypeScript-based server that facilitates AI assistants' interaction with a multi-game competition platform, enabling features like game coaching, score submission, and leaderboard queries.

Tools
5
Resources
0
Prompts
0

All Hearts 2025 MCP Server

An MCP (Model Context Protocol) server that enables AI assistants (Claude, Windsurf, etc.) to interact with a multi-game competition platform for organizational events. Built with TypeScript using the @modelcontextprotocol/sdk.


🎯 Use Cases Enabled by This MCP

  1. AI-Powered Game Coaching - AI can check participation and remind non-participants
  2. Automated Score Submission - Submit game results via natural language
  3. Real-Time Leaderboard Queries - "How is my team doing?" → instant stats
  4. Participation Monitoring - "Who hasn't played the typing game yet?"
  5. Player Performance Tracking - "What's my rank?" → detailed breakdown
  6. Event Coordination - Check game windows, send reminders based on timing

🎮 Core Features

Multi-Game Support

Supports 5 game types: Crossword, Wordle, Typing, Sudoku, and Memory.

Participation Tracking

ToolDescription
get_game_participantsRetrieve all participants for any game, filterable by house/team
get_non_participantsIdentify team members who haven't played yet (with built-in team roster)

Game Session Management (Two-Step Flow)

Each game supports a create → update workflow for precise session control:

GameCreate ToolUpdate Tool
Typingcreate_typing_sessionupdate_typing_session
Crosswordcreate_crossword_sessionupdate_crossword_session
Wordlecreate_wordle_sessionupdate_wordle_session
Sudokucreate_sudoku_sessionupdate_sudoku_session
Memorycreate_memory_sessionupdate_memory_session

Legacy Submit Tools

One-shot submission for backward compatibility: submit_typing_game, submit_crossword_game, submit_wordle_game, submit_sudoku_game

Leaderboard & Analytics

ToolDescription
get_house_standingsAll houses ranked by total points with per-game breakdown
get_house_detailsDetailed stats for a specific house
get_top_playersTop N players overall or filtered by house
get_player_rankIndividual player's rank, total score, and per-game scores
get_game_leaderboardTop performers for a specific game

Utility Tools

ToolDescription
get_game_timingsRetrieve start/end times for all games (UTC & IST)
get_session_idRetrieve existing session ID by player email
get_user_by_emailGet user's house and name from email address
get_slack_usersFetch Slack workspace user directory

Security

  • AES Encryption for sensitive game submissions (Sudoku uses encrypted payloads)
  • Encryption key management via CryptoJS

📦 Technical Stack

ComponentTechnology
RuntimeNode.js (ES Modules)
LanguageTypeScript
MCP SDK@modelcontextprotocol/sdk v1.0.4
HTTP ClientAxios
EncryptionCryptoJS (AES)
Transportstdio (standard MCP transport)

🚀 Key Differentiators

  1. Full CRUD for Game Sessions - Not just read-only; can create and update game data
  2. Multi-House Support - 4 competing houses with individual tracking
  3. Intelligent Non-Participant Detection - Compares against known team rosters
  4. Dual Submission Modes - Two-step (create/update) and one-shot (legacy) patterns
  5. Encrypted Payloads - Security-conscious design for sensitive games
  6. 26 MCP Tools - Comprehensive coverage of the game platform's functionality

🛠 Installation

cd all-hearts-mcp-server
npm install
npm run build

Configuration

Add this to your MCP client configuration (e.g., Claude Desktop, Windsurf):

{
  "mcpServers": {
    "all-hearts": {
      "command": "node",
      "args": ["/absolute/path/to/all-hearts-mcp-server/dist/index.js"]
    }
  }
}

📁 Project Structure

all-hearts-mcp-server/
├── src/
│   ├── index.ts          # Main MCP server (26 tools)
│   ├── api-client.ts     # API client with encryption
│   ├── types.ts          # TypeScript types
│   └── team-members.ts   # Team roster for participation tracking
├── dist/                 # Compiled JavaScript
├── package.json
└── tsconfig.json

License

MIT