coin flip mcp

Local 2025-09-01 00:29:44 0

Enables interaction with a tool for generating true random coin flips via random.org's API, supporting multiple custom side configurations and illustrating the Model Context Protocol.


An MCP server that provides true random coin flips using random.org's randomness API. This server demonstrates the Model Context Protocol by providing a tool for generating random outcomes with configurable sides.

Features

Tools

  • flip_coin - Flip a coin with configurable number of sides
  • Optional sides parameter (default: 2)
  • Uses true randomness from random.org
  • Special handling for edge cases (0, 1, or negative sides)
  • For 2 sides: Returns "Heads" or "Tails"
  • For 3 sides: Returns "Heads", "Tails", or "_"
  • For n>3 sides: Returns "It landed on side X"

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Installation

To use with Claude Desktop, add the server config:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "coin-flip": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-coin-flip"]
    }
  }
}

Example Usage

Once connected to an MCP client like Claude Desktop, you can use natural language to interact with the coin flip tool. For example:

  • "Flip a coin"
  • "Roll a 6-sided die"
  • "Give me a random number between 1 and 20"

The server will use true randomness from random.org to generate the result.

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector:

npx @modelcontextprotocol/inspector node build/index.js

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

[
  {
    "description": "Flip a coin with n sides using true randomness from random.org. For 3-sided coins, try creative side names like: - past/present/future (temporal analysis) - true/unknown/false (epistemic states) - win/draw/lose (outcome evaluation) - rock/paper/scissors (cyclic relationships) - less/same/more (abstraction levels) - below/within/above (hierarchical positioning) - predecessor/current/successor (ordinal progression)  Meta-usage patterns: 1. Use less/same/more to guide abstraction level of discourse 2. Use past/present/future to determine temporal focus 3. Chain multiple flips to create decision trees 4. Use predecessor/current/successor for ordinal analysis  Ordinal Meta-patterns: - Use predecessor to refine previous concepts - Use current to stabilize existing patterns - Use successor to evolve into new forms  Default ternary values are -/0/+",
    "inputSchema": {
      "properties": {
        "sideNames": {
          "description": "Optional custom names for sides (must match number of sides)",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "sides": {
          "description": "Number of sides (default: 3)",
          "type": "number"
        }
      },
      "type": "object"
    },
    "name": "flip_coin"
  }
]