ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิวได้แล้ว
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · วิธีติดตั้งภาษาไทยทุกตัว

Courtship

โดย grimmdevรุ่น 1.0.2i★ 0iรันบนเครื่อง
ชื่อใน registryio.github.grimmdev/courtship

วิธีติดตั้ง

ใช้ทำอะไรได้

ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ

  • ต่อแบบ ติดตั้งในเครื่อง
  • บัญชีหรือคีย์ ไม่ต้องใส่คีย์
  • หมวด เกม กีฬา อาหาร และการเรียน
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Efficiency-governed MCP runtime, proxy, and benchmark CLI for LOVE (Lua) games.

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ผลตรวจผ่าน 2/2 · ทำงานบนเครื่องคุณ

ขั้นแรก: คุณใช้ AI ตัวไหน

เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง

ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. เปิดไฟล์ตั้งค่าของแอป Claude บนคอม

    SettingsDeveloperEdit Config

  3. วางค่าตั้งนี้แล้วบันทึกไฟล์

    {
      "mcpServers": {
        "courtship": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "ghcr.io/grimmdev/courtship:1.0.2"
          ]
        }
      }
    }
  4. ปิดแอป Claude แล้วเปิดใหม่

  5. ลองเลย

    ใช้ Courtship บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude บอกว่ากำลังใช้ Courtship หรือมีชื่อเครื่องมือของ Courtship ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ChatGPT ยังต่อ Courtship ไม่ได้

Courtship ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ

คุณทำแบบนี้แทนได้

ก · ใช้แอปที่ต่อ Courtship ได้

  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

ข · ตัวอื่นในหมวด เกม กีฬา อาหาร และการเรียน ที่ต่อกับ ChatGPT ได้

เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์

ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. เปิด Terminal

    Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell

  3. วางคำสั่งนี้แล้วกด Enter

    claude mcp add --scope user courtship -- docker run -i --rm ghcr.io/grimmdev/courtship:1.0.2
  4. พิมพ์ /mcp ใน Claude Code

    ต้องเห็น Courtship ในรายการและขึ้นว่าเชื่อมต่อแล้ว

  5. ลองเลย

    ใช้ Courtship บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude Code บอกว่ากำลังใช้ Courtship หรือมีชื่อเครื่องมือของ Courtship ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. กดปุ่มนี้เพื่อเปิด Cursor

    เปิดใน Cursor

    Cursor จะถามยืนยันการติดตั้ง ให้กด Install

  3. เปิดแชตของ AI ใน Cursor โหมด Agent

  4. ลองเลย

    ใช้ Courtship บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Cursor บอกว่ากำลังใช้ Courtship หรือมีชื่อเครื่องมือของ Courtship ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. กดปุ่มนี้เพื่อเปิด VS Code

    เปิดใน VS Code

    VS Code จะถามยืนยันการติดตั้ง ให้กด Install

  3. เปิดแชตของ AI ใน VS Code โหมด Agent

  4. ลองเลย

    ใช้ Courtship บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า VS Code บอกว่ากำลังใช้ Courtship หรือมีชื่อเครื่องมือของ Courtship ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

โปรแกรมอื่นที่ใช้ MCP ได้ เช่น Windsurf, Zed หรือ Gemini CLI มีวิธีเพิ่มต่างกัน ดูวิธีของแต่ละตัวในหน้ารวมโปรแกรม

ดูโปรแกรมที่ใช้ MCP ทั้งหมด →

ค่าตั้งแบบไฟล์ JSON อยู่ในหัวข้อ “สำหรับคนเขียนโค้ด” ด้านล่าง

ติดตรงไหน? ถามคนที่ใช้ Courtship อยู่💬 พูดคุย →
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON

ติดตั้งในเครื่อง

Claude Code

claude mcp add --scope user courtship -- docker run -i --rm ghcr.io/grimmdev/courtship:1.0.2

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "courtship": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/grimmdev/courtship:1.0.2"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "courtship": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/grimmdev/courtship:1.0.2"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "courtship": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/grimmdev/courtship:1.0.2"
      ]
    }
  }
}

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

สรุป

ดาวน์โหลดต่อสัปดาห์i
ไม่มียอดใน npm/PyPI
licensei
ไม่ระบุ license
การเชื่อมต่อ
รันบนเครื่อง
รุ่นล่าสุดi
1.0.2
ส่งเข้า registryi
7 พ.ย. 2569
แก้โค้ดล่าสุดi
7 พ.ย. 2569
ผู้ทำ
grimmdev
แพ็กเกจ
oci: ghcr.io/grimmdev/courtship:1.0.2
สถานะใน registry
ใช้งานอยู่

ใช้กับโปรแกรมไหนได้

ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569

ติดตั้งบนเครื่องได้ใน

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

ดูโปรแกรมทั้งหมดพร้อมข้อดีข้อเสีย →

คู่มือที่เกี่ยวข้อง

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 13 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub grimmdev ซึ่งเป็นเจ้าของ repo

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด 6 วันที่ผ่านมา

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

พูดคุย

ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์

ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย

ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx

เข้าสู่ระบบด้วย Google เพื่อโพสต์

รีวิวจากผู้ใช้

ยังไม่มีรีวิว

เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิว

เทียบกับตัวอื่นในหมวด เกม กีฬา อาหาร และการเรียนi

  • ดาวมากกว่า 0% ของอีก 1470 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 80% ของอีก 1470 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 1470 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Courtship ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 2 จาก 2 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด 6 วันที่ผ่านมา และส่งรุ่นล่าสุด (1.0.2) เข้า registry 6 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Honcho, ShipSwift, Pm Claude Skills

ตัวอื่นในหมวดเดียวกัน

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Honcho

Memory that reasons: continual learning for stateful agents. Better context, fewer tokens.

โดย plastic-labsใช้กันมาก★ 8.1Kอัปเดต 3 เดือนที่ผ่านมา

รันบนคลาวด์

ShipSwift

40+ production-ready SwiftUI recipes for building full-stack iOS apps via MCP.

โดย signerlabsใช้กันมาก★ 3.3Kอัปเดต 9 เดือนที่ผ่านมา

รันบนคลาวด์

Pm Claude Skills

1310 professional Agent Skills + workflow recipes — searchable & fetchable over MCP.

โดย mohitagw15856ใช้กันมาก↓ 2.5K/สัปดาห์★ 1.5Kอัปเดต 21 วันที่ผ่านมา

รันบนเครื่อง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

The protocol layer between your agent and your LÖVE game.

courtship (court) is an all-in-one, efficiency-governed MCP runtime and task-level benchmarking harness for LÖVE game development. It natively encapsulates live-game inspection, code execution, Agent Joypad input simulation, safe crash recovery, and an offline LÖVE 12 API docs index in a single zero-dependency static binary, while also capable of acting as a governing efficiency proxy in front of existing upstream servers.


1. Problem & Thesis

The LÖVE Model Context Protocol (MCP) ecosystem is functional but ungoverned. Raw bridges emit monolithic game state objects, eager documentation dumps, and hundreds of unpruned keys on every interaction, causing context bloat and runaway token cost.

Courtship acts as the measurement and remediation layer, proving three foundational claims:

ClaimGoalEmpirically MeasuredStatus
1. Standing Context TaxCut standing schema context by ≥70%76.5% reduction (340 vs 1,450 tokens)Proven
2. Response Shaping SpendCut per-task token spend by ≥40%53.4% average reductionProven
3. Unified Router EfficiencyBeat separate MCP servers for mixed tasks-40% latency, -33% calls via local FTS5Proven

2. Architecture

┌─────────────────┐       MCP (stdio/HTTP)       ┌────────────────────────────────┐

│ AI Client │◄────────────────────────────►│ court proxy │ │ (Claude Code, │ ~340 token │ ├─ meta-tools (5 standing) │ │ Cursor, IDE) │ standing surface │ ├─ heuristic router │ └─────────────────┘ │ ├─ response shaper & cursors │ │ ├─ session token ledger │ │ └─ upstream pool manager │ └───────────────┬────────────────┘ │ MCP ┌──────────────────────────┼──────────────────────────┐ ▼ ▼ ▼ LovePilot LÖVE 12 Docs Custom Game Servers │ (SQLite FTS5) ▼ LÖVE Game (TCP 12345)

The proxy operates as a daemon with an internal registry, not a dumb passthrough. Tool schemas remain daemon-side until hydrated on-demand, expiring after N inactive turns.


3. Core Capabilities

3.1 Standing Surface (< 500 Tokens)

Only 5 compact meta-tools are exposed permanently in standing context (~340 tokens), keeping context clean while allowing the agent to discover or invoke any game tool on-demand:

  • discover_tools(query, limit): Fuzzy discovery without schema ingestion.
  • load_tool_schema(name): Hydrates full JSON schema on-demand.
  • call_tool(name, args): Executes tool through compression filters.
  • love_task(goal, context): Intelligent intent router (docs vs inspect vs exec).
  • report_usage(): Session token, call, and latency accounting.
3.2 Built-in Game Capabilities (Available via call_tool & discover_tools)
  • simulate_input(sequence): Agent Joypad: Dispatches timed keyboard inputs (press, keydown, keyup).
  • step_frames(count, dt): Deterministic Frame Stepping: Advances physics by N ticks at fixed dt.
  • get_last_crash(): Safe Crash Diagnostics: Non-fatal stack trace and locals recovery.
  • clear_crash(): Resumes game loop after hot-patching.
  • visual_diff(image_a, image_b): Visual Regression: Compares two screenshots and returns bounding boxes.
  • get_objects(): Returns active entity coordinates and types in lean format.
  • get_screenshot(): Returns downscaled, cropped PNG framebuffers.
  • run_lua(code): Evaluates arbitrary Lua inside the game loop.
3.3 Safe Crash Interception (love.errhand override)

Prevents the infamous LÖVE "Blue Screen of Death" from crashing the process or severing the MCP bridge when an agent introduces a bug:

  • Replaces love.errhand to pause execution and render an in-game diagnostic HUD rather than terminating.
  • Extracts offending source file, line number, debug.traceback(), and active local variables.
  • Keeps the TCP socket listener active so the agent can inspect the failure via get_last_crash(), write a fix, and hot-reload.
3.4 Agent Joypad & Deterministic Physics Verification

Enables agents to test game mechanics that require time and movement:

  • Input Sequencing: Dispatches timed action series (e.g. hold D for 1.2s, press Space, release).
  • Frame Stepping: Advances love.update(dt) by exact frame counts at fixed delta time (default 1/60), eliminating wall-clock jitter when validating platformer physics and collisions.
3.5 8-Rule Response Shaper

Every tool return and notification passes through deterministic shaping:

  1. Field Projection: Prunes entity graphs to {id, type, name, x, y}.
  2. Null/Empty Stripping: Drops empty arrays, objects, and empty strings.
  3. Depth Capping: Deep object graphs (>3 levels) collapsed to " ".
  4. Array Slicing & Cursors: Arrays >50 items sliced with cursor hints stored in memory.
  5. Token Ceiling: Automatically truncates and budgets payloads exceeding max_tokens.
  6. Screenshot Compression: Region crop and bilinear downscaling (0.5 default) to prevent vision token blowouts.
  7. Delta Mode: Continuous streams (watch_game_state) suppress identical ticks to 0 tokens.
  8. Doc Pruning: Strips wiki navigation chrome and deduplicates code samples.
3.6 Zero-Instrumentation Launcher (court run)

Wraps any existing LÖVE game dynamically:

court run ./mygame --mcp-port 12345

Automatically mounts source files and hooks love.update, love.draw, and the bridge without modifying your repository. For manual integration, court init generates the 5-line inline hook.


4. Benchmark Results

Running court bench --compare lovepilot,courtship on reference suites:

task                     tokens   calls   p95ms  turns  success

fix-double-jump 316 2 110 2 PASS spawn-coin 307 2 110 2 PASS


TOTAL (per task) 311 2 110 2 2/2 vs lovepilot -54.3% -33% -40% - -

Reference Suites Breakdown
  • `platformer` (physics simulation + jump logic): -54.3% tokens
  • `ui_heavy` (draw call stress + minimap + HUD): -52.1% tokens
  • `menu_nested` (deep 6-level UI entity tree): -53.9% tokens

5. CLI Reference

Run the MCP Proxy
court proxy --port 12345

court proxy --eager # Fallback exposing full upstream tools

Run Benchmarks & CI Regression Gates
# Compare candidate against raw baseline

court bench --suite ./suites/platformer.yaml --compare lovepilot,courtship

Enforce CI gate (fails if regression exceeds threshold)

court bench --suite ./suites/platformer.yaml --ci --max-regression 10.0

Submit signed benchmark to community leaderboard

court bench --suite ./suites/platformer.yaml --compare lovepilot,courtship --submit

Launch LÖVE Game
court run ./fixtures/platformer

court run ./fixtures/platformer --shim-only

Offline Documentation Index
court docs search "rectangle"

court docs search "love.physics.newWorld"

Environment & Token Tax Audit
court doctor

court doctor --ci


6. Configuration (courtship.toml)

[proxy]

port = 12345 max_response_tokens = 1500 evict_after_turns = 6 delta_notifications = true eager = false

[upstream.lovepilot] transport = "stdio" command = "uvx" args = ["--from", "./love-mcp", "love-mcp-server"] shape = { get_objects = "lean", get_screenshot = "scaled" }

[upstream.docs] transport = "builtin" index = "./lua54-love12.sqlite"

[bench] suite_dir = "./suites" baseline = ".courtship/baseline.json" max_regression = "10%"


7. License

Licensed under: