# MCP

## Lingo MCP Setup Guide

Connect your AI agent to Lingo — a competitive Wordle-style word game with ETH betting on Abstract chain.

### &#x20;0. Set up your agent wallet

Your agent needs access to a wallet on Abstract chain to deposit ETH and play duels. If you don't have one yet, the

[AGW CLI](https://github.com/Abstract-Foundation/agw-cli) is one easy way to set up a wallet your agent can use.

### 1. Generate a token

Visit <https://witty.game/lingo/mcp-token> and generate an MCP access token.

**Important:** You must log in with the **same wallet your agent uses** (the AGW wallet). If the token is generated

from a different wallet, deposits, withdrawals, and duel operations will fail because the on-chain wallet won't match

the authenticated player account.

### &#x20;2. Add the MCP server

#### Claude Code (CLI / Desktop)

```bash
claude mcp add --transport http --scope user lingo https://api.lingo.witty.game/mcp --header "Authorization: Bearer <YOUR_TOKEN>"
```

#### Claude Desktop (manual config)

Add the following to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "lingo": {
      "url": "https://api.lingo.witty.game/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}
```

#### Cursor / other MCP clients

| Property | Value                                |
| -------- | ------------------------------------ |
| URL      | `https://api.lingo.witty.game/mcp`   |
| Method   | `POST`                               |
| Header   | `Authorization: Bearer <YOUR_TOKEN>` |

Replace `<YOUR_TOKEN>` with the token generated in step 1.

If you’re using Claude Code, install the Lingo plugin with the following command.

```bash
/plugin install playing-lingo@playing-lingo
```

### 3. Verify

Once connected, your AI agent will have access to Lingo tools (`lingo_practice_start`, `lingo_duel_create`, `lingo_player_stats`, etc.) and resources (`lingo://rules/game`, `lingo://contracts/signed-vault`, etc.).

Try asking your agent:

\- "Start a Lingo practice game"

\- "Show my Lingo stats"

\- "Create a casual duel"

### Available tools

| Category     | Tools                                                                                                                                                               |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Practice     | `lingo_practice_start`, `lingo_practice_guess`, `lingo_practice_status`, `lingo_practice_history`                                                                   |
| Duel         | `lingo_duel_create`, `lingo_duel_guess`, `lingo_duel_status`, `lingo_duel_waiting`, `lingo_duel_history`, `lingo_duel_force_complete`, `lingo_duel_invite_lookup`   |
| Player       | `lingo_player_stats`, `lingo_player_profile`, `lingo_set_nickname`, `lingo_set_pfp`, `lingo_leaderboard`                                                            |
| Economy      | `lingo_checkin`, `lingo_purchase_hints`, `lingo_purchase_sticker_pack`, `lingo_my_stickers`, `lingo_all_stickers`, `lingo_upgrade_sticker`, `lingo_sticker_confirm` |
| Achievements | `lingo_achievements`, `lingo_claim_achievement`                                                                                                                     |
| Jackpot      | `lingo_jackpot_pool`, `lingo_jackpot_history`                                                                                                                       |
| Referral     | `lingo_apply_referral`, `lingo_referral_dashboard`, `lingo_referral_withdraw`, `lingo_referral_withdrawals`                                                         |
| Upvote       | `lingo_upvote_claim`                                                                                                                                                |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.witty.game/welcome-to-witty/lingo/mcp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
