← back to Kimi Mcp
TK-11490: migrate retired kimi-k2.5 -> kimi-k3 across second-model lenses
4125dd5724e3b9d7ecd22efce526efad9911b794 · 2026-09-12 06:36:32 -0700 · Steve Abrams
Moonshot retired kimi-k2.5 (HTTP 404) 2026-09-11; key + $10.93 credit fine.
Repointed to kimi-k3 (Steve's pick) + cost-tracker key moonshot_kimi_k3
(provisional rates, flagged). Historical comments preserved. /ask-kimi
smoke-tested live on k3 (exit 0, $0.0002).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GMqemhzNo8pvYKFkvTRHYv
Files touched
M README.mdM package.jsonM scripts/smoke.mjsM server.mjs
Diff
commit 4125dd5724e3b9d7ecd22efce526efad9911b794
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sat Sep 12 06:36:32 2026 -0700
TK-11490: migrate retired kimi-k2.5 -> kimi-k3 across second-model lenses
Moonshot retired kimi-k2.5 (HTTP 404) 2026-09-11; key + $10.93 credit fine.
Repointed to kimi-k3 (Steve's pick) + cost-tracker key moonshot_kimi_k3
(provisional rates, flagged). Historical comments preserved. /ask-kimi
smoke-tested live on k3 (exit 0, $0.0002).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GMqemhzNo8pvYKFkvTRHYv
---
README.md | 6 +++---
package.json | 2 +-
scripts/smoke.mjs | 2 +-
server.mjs | 10 +++++-----
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/README.md b/README.md
index 182bd03..8cdc174 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
# kimi-mcp
-Owned MCP server that exposes **Moonshot Kimi (`kimi-k2.5`)** to Claude Code as
+Owned MCP server that exposes **Moonshot Kimi (`kimi-k3`)** to Claude Code as
two **consult** tools. No Kimi CLI, no subscription — it calls the Moonshot API
directly with your existing `MOONSHOT_API_KEY`.
-Model + temperature match the `/dtd` panel (`kimi-k2.5`, `temperature=1`,
+Model + temperature match the `/dtd` panel (`kimi-k3`, `temperature=1`,
`api.moonshot.ai`) so this is the same Kimi lens you already trust — just
available as an on-demand tool instead of only inside the debate panel.
@@ -22,7 +22,7 @@ answers, it does not act. Paste any needed context/code inline.
Reads env:
- `MOONSHOT_API_KEY` (required) — routed by the `secrets` skill.
-- `KIMI_MODEL` (optional, default `kimi-k2.5`) — e.g. `kimi-k2.7-code`.
+- `KIMI_MODEL` (optional, default `kimi-k3`) — e.g. `kimi-k2.7-code`.
- `KIMI_MAX_TOKENS` (optional, default `8000`).
## Smoke test
diff --git a/package.json b/package.json
index 42d74d1..e9ddfc2 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
"version": "1.0.0",
"private": true,
"type": "module",
- "description": "Owned MCP server exposing Moonshot Kimi (kimi-k2.5) as ask_kimi / review_with_kimi consult tools — no CLI, no subscription, uses MOONSHOT_API_KEY.",
+ "description": "Owned MCP server exposing Moonshot Kimi (kimi-k3) as ask_kimi / review_with_kimi consult tools — no CLI, no subscription, uses MOONSHOT_API_KEY.",
"bin": {
"kimi-mcp": "server.mjs"
},
diff --git a/scripts/smoke.mjs b/scripts/smoke.mjs
index 42c0ce1..2cb6fe2 100644
--- a/scripts/smoke.mjs
+++ b/scripts/smoke.mjs
@@ -3,7 +3,7 @@
// are good before wiring the MCP into Claude Code. Reads MOONSHOT_API_KEY from
// env (pass it in — this repo never stores the key).
const KEY = process.env.MOONSHOT_API_KEY;
-const MODEL = process.env.KIMI_MODEL || 'kimi-k2.5';
+const MODEL = process.env.KIMI_MODEL || 'kimi-k3';
if (!KEY) { console.error('MOONSHOT_API_KEY not set'); process.exit(2); }
const res = await fetch('https://api.moonshot.ai/v1/chat/completions', {
diff --git a/server.mjs b/server.mjs
index 9190da3..44490c1 100644
--- a/server.mjs
+++ b/server.mjs
@@ -2,7 +2,7 @@
// kimi-mcp — owned MCP server exposing Moonshot Kimi as consult tools.
// Scope: consult only (ask / review). Kimi gets NO filesystem, bash, or agent
// loop here — it answers, it does not act. Model + temperature match the /dtd
-// panel (kimi-k2.5, temp=1) so this is the same Kimi lens Steve already trusts.
+// panel (kimi-k3, temp=1) so this is the same Kimi lens Steve already trusts.
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { z } from 'zod';
@@ -10,11 +10,11 @@ import { z } from 'zod';
// ── Constants ────────────────────────────────────────────────────────────────
const MOONSHOT_API_KEY = process.env.MOONSHOT_API_KEY;
const MOONSHOT_BASE = 'https://api.moonshot.ai/v1'; // global endpoint (matches /dtd), NOT .cn
-const MODEL = process.env.KIMI_MODEL || 'kimi-k2.5'; // /dtd bakeoff pick; override via KIMI_MODEL
+const MODEL = process.env.KIMI_MODEL || 'kimi-k3'; // /dtd bakeoff pick; override via KIMI_MODEL
const TEMPERATURE = 1; // Moonshot REQUIRES temp=1 for the k2.x/k3 family
const MAX_TOKENS = Number(process.env.KIMI_MAX_TOKENS || 8000);
-// kimi-k2.5 pay-as-you-go rates (per token), from cost-tracker/pricing.json
+// kimi-k3 pay-as-you-go rates (per token), from cost-tracker/pricing.json
const RATE_IN = 5.5e-7;
const RATE_OUT = 2.2e-6;
@@ -77,7 +77,7 @@ const server = new McpServer({ name: 'kimi-mcp', version: '1.0.0' });
server.tool(
'ask_kimi',
- 'Ask Moonshot Kimi (kimi-k2.5) a question and return its answer. Use for a second-opinion / independent reasoning lens, or to offload a self-contained analysis to a different model. Kimi has no access to your files — include any needed context in the prompt.',
+ 'Ask Moonshot Kimi (kimi-k3) a question and return its answer. Use for a second-opinion / independent reasoning lens, or to offload a self-contained analysis to a different model. Kimi has no access to your files — include any needed context in the prompt.',
{
prompt: z.string().describe('The question or task for Kimi. Self-contained — paste any needed context/code inline.'),
system: z.string().optional().describe('Optional system instruction to steer Kimi (persona, format, constraints).'),
@@ -96,7 +96,7 @@ server.tool(
server.tool(
'review_with_kimi',
- 'Have Kimi (kimi-k2.5) review a code snippet or diff for bugs, security issues, edge cases, and quality — an independent adversarial reviewer lens. Paste the code directly (Kimi cannot read your filesystem).',
+ 'Have Kimi (kimi-k3) review a code snippet or diff for bugs, security issues, edge cases, and quality — an independent adversarial reviewer lens. Paste the code directly (Kimi cannot read your filesystem).',
{
code: z.string().describe('The code, snippet, or unified diff to review. Paste it inline.'),
focus: z.string().optional().describe('Optional aspect to prioritize (e.g. "security", "concurrency", "the error paths").'),
← 33dc3ce kimi-mcp: owned MCP server exposing Kimi k2.5 as ask_kimi/re
·
back to Kimi Mcp
·
kimi-k3 cost footer: use real list rates $3/M in, $15/M out 23af939 →