MoonshotAI / MoonshotAI/kimi-code

Make MCP channel push (Discord-style bridges) usable outside the experimental v2 engine

Open
#2,431 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
7.5k
Forks
1.2k
Avg merge
11h 53m
Merged PRs (30d)
350

Description

What feature would you like to see?

Kimi Code's agent-core-v2 already has a generic MCP "channel push" mechanism: an MCP server can send a notifications/kimi/channel notification to wake a running session immediately, instead of the agent having to poll a tool. This is exactly what a chat-bridge plugin (e.g. a Discord DM bridge) needs — without it, the only option is polling, which means missed messages until the agent happens to check.

Right now this only works if the whole interactive CLI is switched onto the experimental agent-core-v2 engine (the KIMI_CODE_EXPERIMENTAL_FLAG master switch), not just the dedicated mcp-channel flag. Since the default kimi CLI still runs on the v1 engine, the push mechanism is effectively unreachable for normal users, and until recently a pushed message also had no dedicated rendering in the TUI (it only showed up indirectly, through the model's own paraphrase of what it received).

We'd like this to become a real, supported capability:

  • MCP channel push reachable without requiring the full experimental-v2 engine switch (or a documented path to enable it that plugin authors can rely on).
  • The pushed message rendered distinctly in the TUI (sender/server + the actual text), not just inferred from the model's response.

This would let third-party MCP plugins (chat bridges, notification relays, etc.) wake a running session reliably and show up cleanly in the transcript.

Additional information

We already have a working implementation for the TUI-rendering half (wiring the existing mcp.channel.received event through to a rendered transcript entry, mirroring the existing cron.fired handling) and have tested it end-to-end against a Discord MCP bridge plugin. Happy to open a PR once there's agreement on direction — in particular whether push should be decoupled from the full experimental-v2 switch, or whether the plan is for v2 to become the default engine on its own timeline.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the default v1 CLI path, the experimental-v2 and mcp-channel flags, and the existing mcp.channel.received/cron.fired TUI event flow. Done means plugin authors have a supported way to enable channel push without the full v2 switch, and pushed notifications appear as distinct transcript entries with sender/server and text; validate against the Discord MCP bridge.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.