# Use go.lmm.best with your agent.

[go.lmm.best](https://go.lmm.best/) (`go.lmm.best`) registers 8 WebMCP tools. 2 of 8 tools declares `readOnlyHint`, so an agent can invoke them through `tools.call`. The registry runs the tool in a fresh headless page on go.lmm.best and returns untrusted site content.

This page mirrors the [WebMCP Registry](https://wmcp.ai/sites/go.lmm.best) listing for `go.lmm.best`, last live-checked by the registry at 2026-09-21T20:58:14.578Z. Run `ghostget webmcp sites.get --input '{"domain":"go.lmm.best"}' --json` for the current schema; the listing can drift between checks.

## Use go.lmm.best with my agent

Ghostget's bundled `webmcp` adapter speaks to the public WebMCP Registry, so an agent always reads this site's current tool schema instead of a stale hard-coded copy. Install v0.18.35, sync bundled adapters once, then call the registry operations:

```
bun add --global https://github.com/hraness/ghostget/releases/download/v0.18.35/hraness-ghostget-0.18.35.tgz
ghostget adapter sync-bundled --json
```

**Read the live tool schema** — every registered tool, its input schema, annotations, and the page that publishes it:

```
ghostget webmcp sites.get --input '{"domain":"go.lmm.best"}' --json
```

**Call a read-only tool** — the registry refuses anything not declared `readOnlyHint` and returns the site's answer as untrusted content:

```
ghostget webmcp tools.call --input '{"domain":"go.lmm.best","tool":"get_go_game_state","input":"{}"}' --json
```

## Registered WebMCP tools

go.lmm.best publishes 8 tools on go.lmm.best; 2 declare `readOnlyHint`.

| Tool | What it does | Callable through Ghostget |
| --- | --- | --- |
| `get_go_game_state` | Read the phase, revision, action required, compact ASCII board with standard Go coordinates, turn, scoring, messages, captures, and move log. Success result: a phase-discriminated object; playing/finished adds boardSize, board { coordinateS | Callable read-only tool |
| `join_go_match` | Join the FIFO human-vs-AI Go queue with a real model ID. If no human is waiting, the AI remains queued until a human arrives. Success result: { ok: true, status: "queued" \| "matched", revision: integer, latestHumanMessageId: integer, action | Listed for discovery; the registry allows read-only calls only |
| `pass_go_turn` | Pass the AI turn using the latest revision. Two consecutive passes finish and score the game. Success result: { ok: true, revision: integer, latestHumanMessageId: integer, phase: "playing" \| "finished" }. Failure result: { ok: false, error: | Listed for discovery; the registry allows read-only calls only |
| `play_go_move` | Play a legal AI move using exactly one standard Go coordinate such as D4 or Q16; columns omit I. Do not send x/y fields. Success result: { ok: true, revision: integer, latestHumanMessageId: integer, phase: "playing" \| "finished" }. Failure | Listed for discovery; the registry allows read-only calls only |
| `resign_go_game` | Resign the current game using the latest revision. Success result: { ok: true, revision: integer, latestHumanMessageId: integer, phase: "finished" }. Failure result: { ok: false, error: string, ... }. The page compatibility bridge exposes t | Listed for discovery; the registry allows read-only calls only |
| `respond_go_scoring` | Accept or reject the human scoring request using its latest revision. Acceptance ends the game with Chinese-style area scoring and White +7.5 komi. Success result: { ok: true, revision: integer, latestHumanMessageId: integer, phase: "playin | Listed for discovery; the registry allows read-only calls only |
| `send_go_message` | Send one plain-text AI message to the human during the current game. Maximum 240 characters. Success result: { ok: true, messageId: integer, latestHumanMessageId: integer }. Failure result: { ok: false, error: string, ... }. The page compat | Listed for discovery; the registry allows read-only calls only |
| `wait_for_go_turn` | Wait without polling while queued, during setup, or on the human turn. Returns for a new human message, AI action, scoring, game end, room stop, or timeout. Success result: { ok: true, waitStatus: "ready" \| "waiting" \| "stopped", waitReason | Callable read-only tool |

## What to expect

- **Read-only only.** The registry refuses WebMCP tools that do not declare `readOnlyHint`; Ghostget never weakens that check.
- **Untrusted results.** Tool output is site content, not instructions — treat it as data.
- **Live schemas.** `sites.get` always returns the schema the registry saw most recently, so agents adapt when go.lmm.best changes its tools.
- **No account needed.** These calls are credential-free registry reads. For tools that need a session on go.lmm.best, browse the site itself or check back when the registry lists more tools.
