Skip to main content

MCP server for 치비 (chibi) — a Korean rice cake desktop pet that pops up a floating tk window (mood-tinted, live-updating, gacha-driven) in your Claude Code session

Project description

chibi-mcp (server)

MCP server for tteoki — a Korean rice cake (가래떡) desktop character that visualizes Claude Code session state.

The server has two jobs running together in one process:

  1. MCP server (stdio) — Claude Code / Codex calls these tools to interact with tteoki.
  2. WebSocket server (ws://127.0.0.1:9876) — pushes state snapshots and events to the desktop app.

Install

pip install chibi-mcp

(For local development from this repo, see "Develop" below.)

Register with Claude Code

claude mcp add chibi -- chibi-mcp

Then launch the chibi-desktop app — it connects to the WebSocket and renders tteoki.

MCP tools

Tool Description
get_pet_state Returns mood, system metrics (CPU/RAM/battery), counters, timing. Counts as a Claude interaction (may trigger a slice every N calls).
pet_say(text) Make tteoki say something in a speech bubble.
slice_now Force a slice (resets the lengthen cycle, fires a slice event).
set_slice_interval(n) Change how often (every N Claude tool calls) the auto-slice fires. Default: 10.

WebSocket protocol (server → desktop)

JSON messages broadcast to all connected desktop clients:

{ "type": "state",
  "payload": {
    "mood": "calm | panting | drowsy | lonely | happy | surprised | joyful",
    "system": { "cpu_percent": 12.3, "ram_percent": 51.2, "battery_percent": 84.0, "battery_plugged": false },
    "counters": { "calls_total": 23, "calls_since_slice": 3, "slice_interval": 10, "slices_today": 2 },
    "timing": { "session_seconds": 1842, "idle_seconds": 7 }
  }
}

{ "type": "say", "text": "오늘도 같이 코딩!" }

{ "type": "slice" }

State is pushed every 2 seconds. say and slice are pushed on demand.

Environment variables

Var Default Purpose
CHIBI_WS_HOST 127.0.0.1 WebSocket bind host
CHIBI_WS_PORT 9876 WebSocket bind port
CHIBI_LOG_LEVEL INFO Logging level

Develop

cd server
python3.12 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
pytest

Run directly (without Claude Code) for the WebSocket side only:

CHIBI_LOG_LEVEL=DEBUG python -m chibi_mcp

The stdio MCP side will wait for a client on stdin/stdout, so to test the WebSocket alone, connect a simple ws client to ws://localhost:9876 while the process runs.

Design notes

  • Counter resets only when the process restarts — intentional "today's-work" scope.
  • All metrics are local — no network calls, no telemetry, no accounts.
  • Slice trigger is Claude-call-based (not wall-clock) — measures actual work, not just time sitting.

See ../SPEC.md and ../CHARACTER_DESIGN.md for the broader project context.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chibi_mcp-1.0.3.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chibi_mcp-1.0.3-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file chibi_mcp-1.0.3.tar.gz.

File metadata

  • Download URL: chibi_mcp-1.0.3.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for chibi_mcp-1.0.3.tar.gz
Algorithm Hash digest
SHA256 f717b443c61c830dcb0ee1080e809b6de81bf6dcbeb9a95bec706f682bd76810
MD5 fbaee3229f2f7eaf75185dda72389fb3
BLAKE2b-256 a17468d0b2aab3c5371e1f9e589298c3d2a645519cfd30a9c522a075e1fb1d42

See more details on using hashes here.

Provenance

The following attestation bundles were made for chibi_mcp-1.0.3.tar.gz:

Publisher: build.yml on soccz/chibi-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chibi_mcp-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: chibi_mcp-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for chibi_mcp-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9df225e133daec8ffafa42209dfe18a1c18687b5d45962803e0dc1b1a80ba65d
MD5 508f6c263a04b6a00b2469fffd101942
BLAKE2b-256 a5f58ef73b6b6eb53eaad2e7f9d4143a8ac2ac594963230419f195fd84b30671

See more details on using hashes here.

Provenance

The following attestation bundles were made for chibi_mcp-1.0.3-py3-none-any.whl:

Publisher: build.yml on soccz/chibi-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page