@arikusi/deepseek-mcp-server 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -3
- package/README.md +67 -4
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/deepseek-client.d.ts +40 -2
- package/dist/deepseek-client.d.ts.map +1 -1
- package/dist/deepseek-client.js +150 -2
- package/dist/deepseek-client.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/json-extract.d.ts +34 -0
- package/dist/json-extract.d.ts.map +1 -0
- package/dist/json-extract.js +93 -0
- package/dist/json-extract.js.map +1 -0
- package/dist/resources/models.d.ts.map +1 -1
- package/dist/resources/models.js +2 -0
- package/dist/resources/models.js.map +1 -1
- package/dist/schema-validate.d.ts +28 -0
- package/dist/schema-validate.d.ts.map +1 -0
- package/dist/schema-validate.js +121 -0
- package/dist/schema-validate.js.map +1 -0
- package/dist/schemas.d.ts +19 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +17 -0
- package/dist/schemas.js.map +1 -1
- package/dist/tools/deepseek-chat.d.ts.map +1 -1
- package/dist/tools/deepseek-chat.js +188 -19
- package/dist/tools/deepseek-chat.js.map +1 -1
- package/dist/tools/deepseek-fim.d.ts +13 -0
- package/dist/tools/deepseek-fim.d.ts.map +1 -0
- package/dist/tools/deepseek-fim.js +153 -0
- package/dist/tools/deepseek-fim.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/types.d.ts +63 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -1
|
@@ -9,6 +9,8 @@ import { calculateCost, formatCost } from '../cost.js';
|
|
|
9
9
|
import { ExtendedMessageSchema, ChatInputWithToolsSchema, ToolDefinitionSchema, ToolChoiceSchema, ThinkingSchema, ReasoningEffortSchema, } from '../schemas.js';
|
|
10
10
|
import { getErrorMessage, getTextContent } from '../types.js';
|
|
11
11
|
import { UsageTracker } from '../usage-tracker.js';
|
|
12
|
+
import { extractJson } from '../json-extract.js';
|
|
13
|
+
import { validateAgainstSchema } from '../schema-validate.js';
|
|
12
14
|
/** Maximum allowed message content length (from config) */
|
|
13
15
|
function validateMessageLength(input) {
|
|
14
16
|
const maxLen = getConfig().maxMessageLength;
|
|
@@ -83,6 +85,10 @@ export function registerChatTool(server, client, sessionStore) {
|
|
|
83
85
|
.boolean()
|
|
84
86
|
.optional()
|
|
85
87
|
.describe('Enable JSON output mode. The model will output valid JSON. Include the word "json" in your prompt for best results. Supported by both models.'),
|
|
88
|
+
response_schema: z
|
|
89
|
+
.record(z.string(), z.unknown())
|
|
90
|
+
.optional()
|
|
91
|
+
.describe('JSON Schema to validate the model output against. Implies JSON output mode. The server validates the parsed result and, on failure, issues up to RESPONSE_SCHEMA_MAX_RETRIES repair retries (feeding the validation error back). The returned content is the first schema-valid object, or the last attempt with schema.valid=false and schema.error set.'),
|
|
86
92
|
session_id: z
|
|
87
93
|
.string()
|
|
88
94
|
.optional()
|
|
@@ -100,7 +106,55 @@ export function registerChatTool(server, client, sessionStore) {
|
|
|
100
106
|
prompt_cache_hit_tokens: z.number().optional(),
|
|
101
107
|
prompt_cache_miss_tokens: z.number().optional(),
|
|
102
108
|
}),
|
|
109
|
+
// Self-contained per-invocation usage + cost summary — everything a
|
|
110
|
+
// consumer needs for cost accounting in one object, without reassembling
|
|
111
|
+
// scattered siblings or scraping the human-readable text. Tokens and
|
|
112
|
+
// cost aggregate across any repair attempts; top-level `usage` reflects
|
|
113
|
+
// the final API response only.
|
|
114
|
+
request: z.object({
|
|
115
|
+
model: z.string(),
|
|
116
|
+
wire_model: z.string(),
|
|
117
|
+
thinking: z.boolean(),
|
|
118
|
+
temperature: z.number().optional(),
|
|
119
|
+
fallback_used: z.boolean(),
|
|
120
|
+
finish_reason: z.string(),
|
|
121
|
+
prompt_tokens: z.number(),
|
|
122
|
+
completion_tokens: z.number(),
|
|
123
|
+
total_tokens: z.number(),
|
|
124
|
+
cache_hit_tokens: z.number(),
|
|
125
|
+
cache_miss_tokens: z.number(),
|
|
126
|
+
cost_usd: z.number(),
|
|
127
|
+
}),
|
|
128
|
+
// Present only when a model fallback fired: surfaces the silent
|
|
129
|
+
// switch so a caller can flag or discard the response.
|
|
130
|
+
fallback: z
|
|
131
|
+
.object({
|
|
132
|
+
originalModel: z.string(),
|
|
133
|
+
fallbackModel: z.string(),
|
|
134
|
+
reason: z.string(),
|
|
135
|
+
})
|
|
136
|
+
.optional(),
|
|
137
|
+
// Raw effective request the client actually sent (audit).
|
|
138
|
+
effective: z
|
|
139
|
+
.object({
|
|
140
|
+
model: z.string(),
|
|
141
|
+
thinking: z.boolean(),
|
|
142
|
+
temperature: z.number().optional(),
|
|
143
|
+
})
|
|
144
|
+
.optional(),
|
|
103
145
|
finish_reason: z.string(),
|
|
146
|
+
// Set only when json_mode was requested but the content could not be
|
|
147
|
+
// recovered as valid JSON; carries the JSON.parse error message.
|
|
148
|
+
json_parse_error: z.string().optional(),
|
|
149
|
+
// Present only when response_schema was supplied: whether the
|
|
150
|
+
// output validated, how many attempts it took, and the last error.
|
|
151
|
+
schema: z
|
|
152
|
+
.object({
|
|
153
|
+
valid: z.boolean(),
|
|
154
|
+
attempts: z.number(),
|
|
155
|
+
error: z.string().optional(),
|
|
156
|
+
})
|
|
157
|
+
.optional(),
|
|
104
158
|
tool_calls: z
|
|
105
159
|
.array(z.object({
|
|
106
160
|
id: z.string(),
|
|
@@ -129,11 +183,13 @@ export function registerChatTool(server, client, sessionStore) {
|
|
|
129
183
|
}
|
|
130
184
|
}
|
|
131
185
|
}
|
|
186
|
+
// response_schema implies JSON output, so treat both as "want JSON".
|
|
187
|
+
const wantJson = validated.json_mode === true || validated.response_schema !== undefined;
|
|
132
188
|
// JSON mode guard: warn if "json" word is not in any message content
|
|
133
|
-
if (
|
|
189
|
+
if (wantJson) {
|
|
134
190
|
const hasJsonWord = validated.messages.some((m) => getTextContent(m.content).toLowerCase().includes('json'));
|
|
135
191
|
if (!hasJsonWord) {
|
|
136
|
-
console.error('[DeepSeek MCP] Warning:
|
|
192
|
+
console.error('[DeepSeek MCP] Warning: JSON output requested but no "json" word found in messages. Results may be unreliable.');
|
|
137
193
|
}
|
|
138
194
|
}
|
|
139
195
|
// Session management: build full message list
|
|
@@ -149,27 +205,128 @@ export function registerChatTool(server, client, sessionStore) {
|
|
|
149
205
|
// Track if reasoner was selected (routing happens in deepseek-client)
|
|
150
206
|
const isReasonerRouted = validated.model === 'deepseek-reasoner';
|
|
151
207
|
console.error(`[DeepSeek MCP] Request: model=${validated.model}, messages=${allMessages.length}, stream=${validated.stream}${validated.tools ? `, tools=${validated.tools.length}` : ''}${validated.thinking ? `, thinking=${validated.thinking.type}` : ''}${validated.json_mode ? ', json_mode=true' : ''}${validated.session_id ? `, session=${validated.session_id}` : ''}`);
|
|
152
|
-
// Build params for client
|
|
208
|
+
// Build params for client (messages are supplied per-call so the
|
|
209
|
+
// response_schema repair loop can extend the conversation).
|
|
153
210
|
const clientParams = {
|
|
154
211
|
model: validated.model,
|
|
155
|
-
messages: allMessages,
|
|
156
212
|
temperature: validated.temperature,
|
|
157
213
|
max_tokens: validated.max_tokens,
|
|
158
214
|
tools: validated.tools,
|
|
159
215
|
tool_choice: validated.tool_choice,
|
|
160
216
|
thinking: validated.thinking,
|
|
161
217
|
reasoning_effort: validated.reasoning_effort,
|
|
162
|
-
response_format:
|
|
163
|
-
|
|
164
|
-
|
|
218
|
+
response_format: wantJson ? { type: 'json_object' } : undefined,
|
|
219
|
+
};
|
|
220
|
+
const callOnce = (messages) => validated.stream
|
|
221
|
+
? client.createStreamingChatCompletion({ ...clientParams, messages })
|
|
222
|
+
: client.createChatCompletion({ ...clientParams, messages });
|
|
223
|
+
// Cost and tokens are accumulated across attempts so the `request`
|
|
224
|
+
// summary describes everything this invocation consumed (kept internally
|
|
225
|
+
// consistent — cumulative tokens alongside cumulative cost). costBreakdown
|
|
226
|
+
// holds the final attempt, used for the human-readable cache display.
|
|
227
|
+
let totalCostUsd = 0;
|
|
228
|
+
const totalUsage = {
|
|
229
|
+
prompt_tokens: 0,
|
|
230
|
+
completion_tokens: 0,
|
|
231
|
+
total_tokens: 0,
|
|
232
|
+
cache_hit_tokens: 0,
|
|
233
|
+
cache_miss_tokens: 0,
|
|
165
234
|
};
|
|
166
|
-
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
235
|
+
let costBreakdown = calculateCost({ prompt_tokens: 0, completion_tokens: 0 }, validated.model);
|
|
236
|
+
const trackAttempt = (resp) => {
|
|
237
|
+
costBreakdown = calculateCost(resp.usage, resp.model);
|
|
238
|
+
totalCostUsd += costBreakdown.totalCost;
|
|
239
|
+
// Cache split derived the same way cost.ts bills: absent hit/miss
|
|
240
|
+
// fields mean the whole prompt was a cache miss.
|
|
241
|
+
const hit = resp.usage.prompt_cache_hit_tokens ?? 0;
|
|
242
|
+
const miss = resp.usage.prompt_cache_miss_tokens ?? resp.usage.prompt_tokens - hit;
|
|
243
|
+
totalUsage.prompt_tokens += resp.usage.prompt_tokens;
|
|
244
|
+
totalUsage.completion_tokens += resp.usage.completion_tokens;
|
|
245
|
+
totalUsage.total_tokens += resp.usage.total_tokens;
|
|
246
|
+
totalUsage.cache_hit_tokens += hit;
|
|
247
|
+
totalUsage.cache_miss_tokens += miss;
|
|
248
|
+
UsageTracker.getInstance().trackRequest(resp.usage, costBreakdown.totalCost);
|
|
249
|
+
};
|
|
250
|
+
let convo = allMessages;
|
|
251
|
+
let response = await callOnce(convo);
|
|
170
252
|
console.error(`[DeepSeek MCP] Response: tokens=${response.usage.total_tokens}, finish_reason=${response.finish_reason}${response.tool_calls ? `, tool_calls=${response.tool_calls.length}` : ''}`);
|
|
171
|
-
|
|
172
|
-
|
|
253
|
+
trackAttempt(response);
|
|
254
|
+
// JSON recovery + optional schema validation with repair retries.
|
|
255
|
+
// Recovery is purely local (no extra call). A repair retry only fires
|
|
256
|
+
// when response_schema is set AND validation fails AND retries remain, so
|
|
257
|
+
// plain json_mode keeps its single-call, temp=0-reproducible behavior.
|
|
258
|
+
let jsonParseError;
|
|
259
|
+
let effectiveContent = response.content;
|
|
260
|
+
let schemaResult;
|
|
261
|
+
const schema = validated.response_schema;
|
|
262
|
+
const maxRetries = getConfig().responseSchemaMaxRetries;
|
|
263
|
+
if (wantJson) {
|
|
264
|
+
let attempt = 0;
|
|
265
|
+
// eslint-disable-next-line no-constant-condition
|
|
266
|
+
while (true) {
|
|
267
|
+
const extracted = extractJson(response.content);
|
|
268
|
+
if (extracted.ok) {
|
|
269
|
+
effectiveContent = extracted.text;
|
|
270
|
+
jsonParseError = undefined;
|
|
271
|
+
if (!schema)
|
|
272
|
+
break; // json_mode only — no shape check
|
|
273
|
+
const v = validateAgainstSchema(extracted.value, schema);
|
|
274
|
+
if (v.valid) {
|
|
275
|
+
schemaResult = { valid: true, attempts: attempt };
|
|
276
|
+
break;
|
|
277
|
+
}
|
|
278
|
+
schemaResult = { valid: false, attempts: attempt, error: v.error };
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
// Could not recover any JSON; keep the raw content for inspection.
|
|
282
|
+
effectiveContent = response.content;
|
|
283
|
+
jsonParseError = extracted.error;
|
|
284
|
+
if (schema) {
|
|
285
|
+
schemaResult = { valid: false, attempts: attempt, error: extracted.error };
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
if (!schema || attempt >= maxRetries) {
|
|
289
|
+
if (jsonParseError) {
|
|
290
|
+
console.error(`[DeepSeek MCP] json_mode: could not recover valid JSON from content (${jsonParseError})`);
|
|
291
|
+
}
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
// Repair retry: show the model its bad output + the failure reason.
|
|
295
|
+
attempt++;
|
|
296
|
+
const errDetail = jsonParseError ?? schemaResult?.error ?? 'invalid output';
|
|
297
|
+
convo = [
|
|
298
|
+
...convo,
|
|
299
|
+
{ role: 'assistant', content: response.content },
|
|
300
|
+
{
|
|
301
|
+
role: 'user',
|
|
302
|
+
content: `Your previous response was invalid: ${errDetail}. Return ONLY a corrected JSON object that satisfies the required schema, with no extra text.`,
|
|
303
|
+
},
|
|
304
|
+
];
|
|
305
|
+
console.error(`[DeepSeek MCP] response_schema: attempt ${attempt} repair (${errDetail})`);
|
|
306
|
+
response = await callOnce(convo);
|
|
307
|
+
trackAttempt(response);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
// Self-contained per-invocation usage + cost summary. Tokens and cost
|
|
311
|
+
// both aggregate across any repair attempts, so per-request accounting
|
|
312
|
+
// stays honest when a retry fires and the object reconciles internally.
|
|
313
|
+
// (Top-level `usage` from the spread below reflects the final API
|
|
314
|
+
// response only.) Audit fields expose exactly what answered, so a
|
|
315
|
+
// caller can detect a silent fallback or a thinking-mode mismatch.
|
|
316
|
+
const requestInfo = {
|
|
317
|
+
model: response.model,
|
|
318
|
+
wire_model: response.effective?.model ?? response.model,
|
|
319
|
+
thinking: response.effective?.thinking ?? false,
|
|
320
|
+
temperature: response.effective?.temperature,
|
|
321
|
+
fallback_used: response.fallback !== undefined,
|
|
322
|
+
finish_reason: response.finish_reason,
|
|
323
|
+
prompt_tokens: totalUsage.prompt_tokens,
|
|
324
|
+
completion_tokens: totalUsage.completion_tokens,
|
|
325
|
+
total_tokens: totalUsage.total_tokens,
|
|
326
|
+
cache_hit_tokens: totalUsage.cache_hit_tokens,
|
|
327
|
+
cache_miss_tokens: totalUsage.cache_miss_tokens,
|
|
328
|
+
cost_usd: parseFloat(totalCostUsd.toFixed(6)),
|
|
329
|
+
};
|
|
173
330
|
// Update session with new messages and response
|
|
174
331
|
if (validated.session_id) {
|
|
175
332
|
const session = sessionStore.get(validated.session_id);
|
|
@@ -180,23 +337,22 @@ export function registerChatTool(server, client, sessionStore) {
|
|
|
180
337
|
sessionStore.addMessages(validated.session_id, [
|
|
181
338
|
{
|
|
182
339
|
role: 'assistant',
|
|
183
|
-
content:
|
|
340
|
+
content: effectiveContent,
|
|
184
341
|
...(response.tool_calls ? { tool_calls: response.tool_calls } : {}),
|
|
185
342
|
},
|
|
186
343
|
]);
|
|
187
|
-
session.totalCost +=
|
|
344
|
+
session.totalCost += totalCostUsd;
|
|
188
345
|
session.requestCount++;
|
|
189
346
|
}
|
|
190
347
|
}
|
|
191
|
-
//
|
|
192
|
-
UsageTracker.getInstance().trackRequest(response.usage, costBreakdown.totalCost);
|
|
348
|
+
// (Usage is tracked per-attempt above via trackAttempt.)
|
|
193
349
|
// Format response
|
|
194
350
|
let responseText = '';
|
|
195
351
|
// Add reasoning content if available (for deepseek-reasoner)
|
|
196
352
|
if (response.reasoning_content) {
|
|
197
353
|
responseText += `<thinking>\n${response.reasoning_content}\n</thinking>\n\n`;
|
|
198
354
|
}
|
|
199
|
-
responseText +=
|
|
355
|
+
responseText += effectiveContent;
|
|
200
356
|
// Format tool calls if present
|
|
201
357
|
if (response.tool_calls?.length) {
|
|
202
358
|
responseText += '\n\n**Function Calls:**\n';
|
|
@@ -215,9 +371,18 @@ export function registerChatTool(server, client, sessionStore) {
|
|
|
215
371
|
if (isReasonerRouted) {
|
|
216
372
|
responseText += `\n- **Routed:** deepseek-reasoner -> deepseek-v4-flash + thinking`;
|
|
217
373
|
}
|
|
374
|
+
if (response.fallback) {
|
|
375
|
+
responseText += `\n- **Fallback:** ${response.fallback.originalModel} -> ${response.fallback.fallbackModel} (${response.fallback.reason})`;
|
|
376
|
+
}
|
|
218
377
|
if (response.tool_calls?.length) {
|
|
219
378
|
responseText += `\n- **Tool Calls:** ${response.tool_calls.length}`;
|
|
220
379
|
}
|
|
380
|
+
if (schemaResult) {
|
|
381
|
+
responseText += `\n- **Schema:** ${schemaResult.valid ? 'valid' : 'INVALID'} (${schemaResult.attempts} repair ${schemaResult.attempts === 1 ? 'retry' : 'retries'})`;
|
|
382
|
+
if (!schemaResult.valid && schemaResult.error) {
|
|
383
|
+
responseText += ` — ${schemaResult.error}`;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
221
386
|
if (validated.session_id) {
|
|
222
387
|
const session = sessionStore.get(validated.session_id);
|
|
223
388
|
if (session) {
|
|
@@ -234,8 +399,12 @@ export function registerChatTool(server, client, sessionStore) {
|
|
|
234
399
|
],
|
|
235
400
|
structuredContent: {
|
|
236
401
|
...response,
|
|
402
|
+
content: effectiveContent,
|
|
403
|
+
request: requestInfo,
|
|
237
404
|
...(isReasonerRouted ? { routed_from: 'deepseek-reasoner' } : {}),
|
|
238
|
-
cost_usd:
|
|
405
|
+
cost_usd: requestInfo.cost_usd,
|
|
406
|
+
...(jsonParseError ? { json_parse_error: jsonParseError } : {}),
|
|
407
|
+
...(schemaResult ? { schema: schemaResult } : {}),
|
|
239
408
|
...(validated.session_id ? { session_id: validated.session_id } : {}),
|
|
240
409
|
},
|
|
241
410
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepseek-chat.js","sourceRoot":"","sources":["../../src/tools/deepseek-chat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deepseek-chat.js","sourceRoot":"","sources":["../../src/tools/deepseek-chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool: deepseek_fim
|
|
3
|
+
* Fill-in-the-Middle (FIM) completion with DeepSeek V4 models.
|
|
4
|
+
* The model completes the text between a prefix (prompt) and an optional
|
|
5
|
+
* suffix. Common uses: code completion, content infilling.
|
|
6
|
+
*
|
|
7
|
+
* FIM runs against the DeepSeek Beta completions endpoint in non-thinking
|
|
8
|
+
* mode only, and the API caps output at 4K tokens.
|
|
9
|
+
*/
|
|
10
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
11
|
+
import type { DeepSeekClient } from '../deepseek-client.js';
|
|
12
|
+
export declare function registerFimTool(server: McpServer, client: DeepSeekClient): void;
|
|
13
|
+
//# sourceMappingURL=deepseek-fim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepseek-fim.d.ts","sourceRoot":"","sources":["../../src/tools/deepseek-fim.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAe5D,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,GACrB,IAAI,CA+KN"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool: deepseek_fim
|
|
3
|
+
* Fill-in-the-Middle (FIM) completion with DeepSeek V4 models.
|
|
4
|
+
* The model completes the text between a prefix (prompt) and an optional
|
|
5
|
+
* suffix. Common uses: code completion, content infilling.
|
|
6
|
+
*
|
|
7
|
+
* FIM runs against the DeepSeek Beta completions endpoint in non-thinking
|
|
8
|
+
* mode only, and the API caps output at 4K tokens.
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod';
|
|
11
|
+
import { getConfig } from '../config.js';
|
|
12
|
+
import { calculateCost, formatCost } from '../cost.js';
|
|
13
|
+
import { FimInputSchema, FIM_MAX_TOKENS } from '../schemas.js';
|
|
14
|
+
import { getErrorMessage } from '../types.js';
|
|
15
|
+
import { UsageTracker } from '../usage-tracker.js';
|
|
16
|
+
export function registerFimTool(server, client) {
|
|
17
|
+
const cfg = getConfig();
|
|
18
|
+
const KNOWN_MODELS = [
|
|
19
|
+
'deepseek-v4-flash',
|
|
20
|
+
'deepseek-v4-pro',
|
|
21
|
+
'deepseek-chat',
|
|
22
|
+
'deepseek-reasoner',
|
|
23
|
+
];
|
|
24
|
+
const modelDefault = KNOWN_MODELS.includes(cfg.defaultModel)
|
|
25
|
+
? cfg.defaultModel
|
|
26
|
+
: 'deepseek-v4-flash';
|
|
27
|
+
server.registerTool('deepseek_fim', {
|
|
28
|
+
title: 'DeepSeek FIM Completion',
|
|
29
|
+
description: 'Fill-in-the-Middle (FIM) completion with DeepSeek V4. Provide a prompt (prefix) and an optional suffix; ' +
|
|
30
|
+
'the model completes the text in between. Ideal for code completion and content infilling. ' +
|
|
31
|
+
'Runs in non-thinking mode on the Beta endpoint; output is capped at 4K tokens. ' +
|
|
32
|
+
'Aliases deepseek-chat and deepseek-reasoner resolve to deepseek-v4-flash (FIM has no thinking mode). ' +
|
|
33
|
+
'Includes automatic cost tracking and model fallback with circuit breaker resilience.',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
prompt: z
|
|
36
|
+
.string()
|
|
37
|
+
.min(1)
|
|
38
|
+
.describe('The prefix text that comes before the content to generate. Required. For code completion, this is the code up to the cursor.'),
|
|
39
|
+
suffix: z
|
|
40
|
+
.string()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe('Optional suffix text that comes after the content to generate. The model fills the gap between prompt and suffix.'),
|
|
43
|
+
model: z
|
|
44
|
+
.enum([
|
|
45
|
+
'deepseek-v4-flash',
|
|
46
|
+
'deepseek-v4-pro',
|
|
47
|
+
'deepseek-chat',
|
|
48
|
+
'deepseek-reasoner',
|
|
49
|
+
])
|
|
50
|
+
.default(modelDefault)
|
|
51
|
+
.describe('Model to use. deepseek-v4-flash (default, fast/economical) or deepseek-v4-pro (most capable). ' +
|
|
52
|
+
'Aliases deepseek-chat / deepseek-reasoner resolve to v4-flash. FIM is always non-thinking.'),
|
|
53
|
+
max_tokens: z
|
|
54
|
+
.number()
|
|
55
|
+
.min(1)
|
|
56
|
+
.max(FIM_MAX_TOKENS)
|
|
57
|
+
.optional()
|
|
58
|
+
.describe(`Maximum tokens to generate. FIM completions are capped at ${FIM_MAX_TOKENS} tokens by the API.`),
|
|
59
|
+
temperature: z
|
|
60
|
+
.number()
|
|
61
|
+
.min(0)
|
|
62
|
+
.max(2)
|
|
63
|
+
.optional()
|
|
64
|
+
.describe('Sampling temperature (0-2). Higher = more random. Default: 1.0.'),
|
|
65
|
+
stop: z
|
|
66
|
+
.union([z.string(), z.array(z.string()).max(16)])
|
|
67
|
+
.optional()
|
|
68
|
+
.describe('Optional stop sequence(s). Generation stops when any is produced. A single string or an array of up to 16 strings.'),
|
|
69
|
+
},
|
|
70
|
+
outputSchema: {
|
|
71
|
+
text: z.string(),
|
|
72
|
+
model: z.string(),
|
|
73
|
+
usage: z.object({
|
|
74
|
+
prompt_tokens: z.number(),
|
|
75
|
+
completion_tokens: z.number(),
|
|
76
|
+
total_tokens: z.number(),
|
|
77
|
+
prompt_cache_hit_tokens: z.number().optional(),
|
|
78
|
+
prompt_cache_miss_tokens: z.number().optional(),
|
|
79
|
+
}),
|
|
80
|
+
finish_reason: z.string(),
|
|
81
|
+
cost_usd: z.number().optional(),
|
|
82
|
+
routed_from: z.string().optional(),
|
|
83
|
+
},
|
|
84
|
+
}, async (input) => {
|
|
85
|
+
try {
|
|
86
|
+
// Enforce the same content-length guard as chat, across prompt + suffix.
|
|
87
|
+
const maxLen = getConfig().maxMessageLength;
|
|
88
|
+
const combinedLen = input.prompt.length + (input.suffix?.length ?? 0);
|
|
89
|
+
if (combinedLen > maxLen) {
|
|
90
|
+
throw new Error(`FIM prompt+suffix exceeds maximum length of ${maxLen} characters`);
|
|
91
|
+
}
|
|
92
|
+
const validated = FimInputSchema.parse(input);
|
|
93
|
+
// Track whether an alias was requested, for transparency in the output.
|
|
94
|
+
const routedFrom = validated.model === 'deepseek-chat' ||
|
|
95
|
+
validated.model === 'deepseek-reasoner'
|
|
96
|
+
? validated.model
|
|
97
|
+
: undefined;
|
|
98
|
+
console.error(`[DeepSeek MCP] FIM request: model=${validated.model}, prompt_len=${validated.prompt.length}${validated.suffix ? `, suffix_len=${validated.suffix.length}` : ''}`);
|
|
99
|
+
const params = {
|
|
100
|
+
model: validated.model,
|
|
101
|
+
prompt: validated.prompt,
|
|
102
|
+
suffix: validated.suffix,
|
|
103
|
+
max_tokens: validated.max_tokens,
|
|
104
|
+
temperature: validated.temperature,
|
|
105
|
+
stop: validated.stop,
|
|
106
|
+
};
|
|
107
|
+
const response = await client.createFimCompletion(params);
|
|
108
|
+
console.error(`[DeepSeek MCP] FIM response: tokens=${response.usage.total_tokens}, finish_reason=${response.finish_reason}`);
|
|
109
|
+
const costBreakdown = calculateCost(response.usage, response.model);
|
|
110
|
+
// Track usage globally
|
|
111
|
+
UsageTracker.getInstance().trackRequest(response.usage, costBreakdown.totalCost);
|
|
112
|
+
let responseText = response.text;
|
|
113
|
+
if (getConfig().showCostInfo) {
|
|
114
|
+
responseText += `\n---\n**Request Information:**\n`;
|
|
115
|
+
responseText += `- **Tokens:** ${response.usage.total_tokens} (${response.usage.prompt_tokens} prompt + ${response.usage.completion_tokens} completion)\n`;
|
|
116
|
+
responseText += `- **Model:** ${response.model}\n`;
|
|
117
|
+
responseText += `- **Cost:** ${formatCost(costBreakdown)}`;
|
|
118
|
+
if (routedFrom) {
|
|
119
|
+
responseText += `\n- **Routed:** ${routedFrom} -> deepseek-v4-flash`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
content: [
|
|
124
|
+
{
|
|
125
|
+
type: 'text',
|
|
126
|
+
text: responseText,
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
structuredContent: {
|
|
130
|
+
text: response.text,
|
|
131
|
+
model: response.model,
|
|
132
|
+
usage: response.usage,
|
|
133
|
+
finish_reason: response.finish_reason,
|
|
134
|
+
cost_usd: parseFloat(costBreakdown.totalCost.toFixed(6)),
|
|
135
|
+
...(routedFrom ? { routed_from: routedFrom } : {}),
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
console.error('[DeepSeek MCP] FIM Error:', error);
|
|
141
|
+
return {
|
|
142
|
+
content: [
|
|
143
|
+
{
|
|
144
|
+
type: 'text',
|
|
145
|
+
text: `Error: ${getErrorMessage(error)}`,
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
isError: true,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=deepseek-fim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deepseek-fim.js","sourceRoot":"","sources":["../../src/tools/deepseek-fim.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKlD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,YAAY,GACzB,IAAI,CAIN"}
|
package/dist/tools/index.js
CHANGED
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
* Registers all tools with the MCP server
|
|
4
4
|
*/
|
|
5
5
|
import { registerChatTool } from './deepseek-chat.js';
|
|
6
|
+
import { registerFimTool } from './deepseek-fim.js';
|
|
6
7
|
import { registerSessionsTool } from './deepseek-sessions.js';
|
|
7
8
|
export function registerAllTools(server, client, sessionStore) {
|
|
8
9
|
registerChatTool(server, client, sessionStore);
|
|
10
|
+
registerFimTool(server, client);
|
|
9
11
|
registerSessionsTool(server, sessionStore);
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,UAAU,gBAAgB,CAC9B,MAAiB,EACjB,MAAsB,EACtB,YAA0B;IAE1B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC/C,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,UAAU,gBAAgB,CAC9B,MAAiB,EACjB,MAAsB,EACtB,YAA0B;IAE1B,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC/C,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC7C,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -157,6 +157,56 @@ export interface DeepSeekChatInput {
|
|
|
157
157
|
};
|
|
158
158
|
reasoning_effort?: 'high' | 'max';
|
|
159
159
|
json_mode?: boolean;
|
|
160
|
+
response_schema?: Record<string, unknown>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Parameters for a FIM (Fill-in-the-Middle) completion request.
|
|
164
|
+
* FIM runs against the Beta completions endpoint (base_url + /beta) in
|
|
165
|
+
* non-thinking mode only. The model completes the text between prompt and
|
|
166
|
+
* suffix; output is capped at 4K tokens by the API.
|
|
167
|
+
*/
|
|
168
|
+
export interface FimCompletionParams {
|
|
169
|
+
model: DeepSeekModel;
|
|
170
|
+
prompt: string;
|
|
171
|
+
suffix?: string;
|
|
172
|
+
max_tokens?: number;
|
|
173
|
+
temperature?: number;
|
|
174
|
+
stop?: string | string[];
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Response from a FIM completion.
|
|
178
|
+
*/
|
|
179
|
+
export interface FimCompletionResponse {
|
|
180
|
+
text: string;
|
|
181
|
+
model: string;
|
|
182
|
+
usage: {
|
|
183
|
+
prompt_tokens: number;
|
|
184
|
+
completion_tokens: number;
|
|
185
|
+
total_tokens: number;
|
|
186
|
+
prompt_cache_hit_tokens?: number;
|
|
187
|
+
prompt_cache_miss_tokens?: number;
|
|
188
|
+
};
|
|
189
|
+
finish_reason: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Raw response from the DeepSeek Beta /completions endpoint (OpenAI legacy
|
|
193
|
+
* completions shape: choices carry `text`, not `message`).
|
|
194
|
+
*/
|
|
195
|
+
export interface DeepSeekRawCompletionResponse {
|
|
196
|
+
id: string;
|
|
197
|
+
model: string;
|
|
198
|
+
choices: Array<{
|
|
199
|
+
text: string;
|
|
200
|
+
finish_reason: string | null;
|
|
201
|
+
index: number;
|
|
202
|
+
}>;
|
|
203
|
+
usage?: {
|
|
204
|
+
prompt_tokens: number;
|
|
205
|
+
completion_tokens: number;
|
|
206
|
+
total_tokens: number;
|
|
207
|
+
prompt_cache_hit_tokens?: number;
|
|
208
|
+
prompt_cache_miss_tokens?: number;
|
|
209
|
+
};
|
|
160
210
|
}
|
|
161
211
|
/**
|
|
162
212
|
* Error response structure
|
|
@@ -295,6 +345,19 @@ export interface FallbackInfo {
|
|
|
295
345
|
fallbackModel: string;
|
|
296
346
|
reason: string;
|
|
297
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* The effective request parameters actually sent to the API for an attempt,
|
|
350
|
+
* after alias routing and thinking-mode resolution. Used for audit fields
|
|
351
|
+
* so a caller can record exactly what answered — not just the requested alias.
|
|
352
|
+
*/
|
|
353
|
+
export interface EffectiveRequest {
|
|
354
|
+
/** Wire model actually called (aliases resolved, e.g. deepseek-reasoner -> deepseek-v4-flash) */
|
|
355
|
+
model: string;
|
|
356
|
+
/** Whether thinking/chain-of-thought was enabled for this attempt */
|
|
357
|
+
thinking: boolean;
|
|
358
|
+
/** Effective sampling temperature; undefined when thinking mode ignores it */
|
|
359
|
+
temperature?: number;
|
|
360
|
+
}
|
|
298
361
|
/**
|
|
299
362
|
* Check if a message has reasoning_content (DeepSeek Reasoner)
|
|
300
363
|
*/
|