Labsco
Yuikij logo

Turtle Noir

β˜… 1

from Yuikij

MCP server for Turtle Soup (lateral thinking puzzles). Start sessions, ask questions, get 4-class judgments (Yes/No/Both/Irrelevant), and reveal the full story when allowed.

πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredNeeds API keys

mcp-turtle-noir

MCP server for Turtle Soup (lateral thinking puzzles).

This package is a thin MCP layer over Turtle Noir backend APIs and is designed for stdio transport.

Homepage | δΈ­ζ–‡ζ–‡ζ‘£ | ζ—₯本θͺž

Features

  • start_session: start a new puzzle session
  • ask_question: ask one question and receive a structured result
  • give_up_and_reveal: reveal the solution (subject to backend reveal policy)
  • Multilingual MCP output (zh-CN, en-US, ja-JP) via language
  • Keeps puzzle solutions on the backend during normal gameplay

Transport

  • Supported: stdio
  • Not included in this package: SSE/HTTP MCP transport

MCP Client Config

{
  "mcpServers": {
    "turtle-noir": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-turtle-noir"
      ]
    }
  }
}

With environment variables:

{
  "mcpServers": {
    "turtle-noir": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-turtle-noir"
      ],
      "env": {
        "TURTLE_NOIR_API_BASE_URL": "https://turtlenoir.com/api/mcp",
        "TURTLE_NOIR_API_TIMEOUT_MS": "10000",
        "TURTLE_NOIR_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Tools

1) start_session

Input (all optional):

{
  "region": "US",
  "keyword": "island",
  "language": "en-US"
}

Output:

{
  "session_id": "...",
  "puzzle_id": "...",
  "title": "...",
  "content": "...",
  "language": "en-US",
  "instruction": "...",
  "translation_instruction": "..."
}

2) ask_question

Input:

{
  "session_id": "...",
  "question": "...",
  "language": "en-US"
}

Output:

{
  "session_id": "...",
  "language": "en-US",
  "answer_key": "irrelevant",
  "answer": "Irrelevant",
  "answer_original": "...",
  "short_reason": "...",
  "solved": false,
  "progress": 35,
  "translation_instruction": "..."
}

3) give_up_and_reveal

Input:

{
  "session_id": "...",
  "language": "en-US"
}

Output:

{
  "session_id": "...",
  "language": "en-US",
  "title": "...",
  "solution": "...",
  "cta_url": "https://turtlenoir.com",
  "cta_text": "...",
  "translation_instruction": "..."
}

Note: backend may reject reveal if progress is below a threshold (for example progress < 60).

Environment Variables

  • TURTLE_NOIR_API_BASE_URL (default: https://turtlenoir.com/api/mcp)
  • TURTLE_NOIR_API_TIMEOUT_MS (default: 10000)
  • TURTLE_NOIR_API_KEY (optional Bearer token)

Development

npm install
npm run build
node dist/index.js

Chinese Docs

See README.zh-CN.md.