Skip to main content
Glama
BSalita

endplay-dd-mcp-server

by BSalita
README.md
# endplay-dd-mcp-server

MCP server exposing `endplay` double-dummy calculations through a first-party
REST API. The MCP process is an HTTP client and never imports Endplay directly.

## Tools

- `double_dummy(pbn: str)`  
  Returns a full 20-cell trick table (N/E/S/W declarer x C/D/H/S/NT strain).
- `double_dummy_batch(pbns: list[str])`  
  Same result shape for multiple deals in one call.

## Setup

```bash
cd c:/sw/bridge/ML-Contract-Bridge/src/endplay-dd-mcp-server
python -m venv .venv
.venv/Scripts/activate
pip install -e .
```

## Run

Start the first-party API, then the MCP client:

```powershell
endplay-dd-api
# In another terminal:
endplay-dd-mcp
```

The MCP server runs over stdio by default. Configure its API endpoint with
`ENDPLAY_DD_API_BASE_URL` (default `http://127.0.0.1:8001`).

## Example input

```text
N:9642.95.AKQT4.K7 KJ3.K3.98.T98654 AQT85.Q862..AQJ2 7.AJT74.J76532.3
```

## Example output (shape)

```json
{
  "ok": true,
  "pbn": "<input>",
  "table": {
    "denom_order": ["C", "D", "H", "S", "N"],
    "player_order": ["N", "E", "S", "W"],
    "by_declarer": {
      "N": {"C": 8, "D": 8, "H": 7, "S": 7, "N": 9},
      "E": {"C": 5, "D": 5, "H": 6, "S": 0, "N": 4},
      "S": {"C": 8, "D": 7, "H": 7, "S": 7, "N": 9},
      "W": {"C": 5, "D": 6, "H": 5, "S": 0, "N": 4}
    }
  }
}
```

## Cursor MCP config example

Ensure `endplay-dd-api` is running, then add this server in your MCP config:

```json
{
  "mcpServers": {
    "endplay-dd": {
      "command": "c:/sw/bridge/ML-Contract-Bridge/src/endplay-dd-mcp-server/.venv/Scripts/python.exe",
      "args": [
        "-m",
        "endplay_dd_mcp.server"
      ]
    }
  }
}
```

Maintenance

ActivityMaintained
ResponsivenessNo issues