@arikusi/deepseek-mcp-server 1.1.1 → 1.3.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.
Files changed (67) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/README.md +134 -18
  3. package/dist/circuit-breaker.d.ts +37 -0
  4. package/dist/circuit-breaker.d.ts.map +1 -0
  5. package/dist/circuit-breaker.js +101 -0
  6. package/dist/circuit-breaker.js.map +1 -0
  7. package/dist/config.d.ts +9 -0
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +10 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/cost.d.ts +30 -13
  12. package/dist/cost.d.ts.map +1 -1
  13. package/dist/cost.js +58 -19
  14. package/dist/cost.js.map +1 -1
  15. package/dist/deepseek-client.d.ts +23 -5
  16. package/dist/deepseek-client.d.ts.map +1 -1
  17. package/dist/deepseek-client.js +256 -115
  18. package/dist/deepseek-client.js.map +1 -1
  19. package/dist/errors.d.ts +13 -0
  20. package/dist/errors.d.ts.map +1 -1
  21. package/dist/errors.js +18 -0
  22. package/dist/errors.js.map +1 -1
  23. package/dist/index.js +5 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/resources/config.d.ts +7 -0
  26. package/dist/resources/config.d.ts.map +1 -0
  27. package/dist/resources/config.js +44 -0
  28. package/dist/resources/config.js.map +1 -0
  29. package/dist/resources/index.d.ts +7 -0
  30. package/dist/resources/index.d.ts.map +1 -0
  31. package/dist/resources/index.js +13 -0
  32. package/dist/resources/index.js.map +1 -0
  33. package/dist/resources/models.d.ts +7 -0
  34. package/dist/resources/models.d.ts.map +1 -0
  35. package/dist/resources/models.js +62 -0
  36. package/dist/resources/models.js.map +1 -0
  37. package/dist/resources/usage.d.ts +7 -0
  38. package/dist/resources/usage.d.ts.map +1 -0
  39. package/dist/resources/usage.js +31 -0
  40. package/dist/resources/usage.js.map +1 -0
  41. package/dist/schemas.d.ts +72 -20
  42. package/dist/schemas.d.ts.map +1 -1
  43. package/dist/schemas.js +15 -2
  44. package/dist/schemas.js.map +1 -1
  45. package/dist/session.d.ts +68 -0
  46. package/dist/session.d.ts.map +1 -0
  47. package/dist/session.js +184 -0
  48. package/dist/session.js.map +1 -0
  49. package/dist/tools/deepseek-chat.d.ts +2 -1
  50. package/dist/tools/deepseek-chat.d.ts.map +1 -1
  51. package/dist/tools/deepseek-chat.js +97 -32
  52. package/dist/tools/deepseek-chat.js.map +1 -1
  53. package/dist/tools/deepseek-sessions.d.ts +7 -0
  54. package/dist/tools/deepseek-sessions.d.ts.map +1 -0
  55. package/dist/tools/deepseek-sessions.js +101 -0
  56. package/dist/tools/deepseek-sessions.js.map +1 -0
  57. package/dist/tools/index.d.ts.map +1 -1
  58. package/dist/tools/index.js +2 -0
  59. package/dist/tools/index.js.map +1 -1
  60. package/dist/types.d.ts +71 -0
  61. package/dist/types.d.ts.map +1 -1
  62. package/dist/types.js.map +1 -1
  63. package/dist/usage-tracker.d.ts +40 -0
  64. package/dist/usage-tracker.d.ts.map +1 -0
  65. package/dist/usage-tracker.js +76 -0
  66. package/dist/usage-tracker.js.map +1 -0
  67. package/package.json +5 -2
package/dist/types.d.ts CHANGED
@@ -68,6 +68,12 @@ export interface ChatCompletionParams {
68
68
  stop?: string | string[];
69
69
  tools?: ToolDefinition[];
70
70
  tool_choice?: ToolChoice;
71
+ thinking?: {
72
+ type: 'enabled' | 'disabled';
73
+ };
74
+ response_format?: {
75
+ type: 'json_object';
76
+ };
71
77
  }
72
78
  /**
73
79
  * Response from DeepSeek chat completion
@@ -80,6 +86,8 @@ export interface ChatCompletionResponse {
80
86
  prompt_tokens: number;
81
87
  completion_tokens: number;
82
88
  total_tokens: number;
89
+ prompt_cache_hit_tokens?: number;
90
+ prompt_cache_miss_tokens?: number;
83
91
  };
84
92
  finish_reason: string;
85
93
  tool_calls?: ToolCall[];
@@ -112,6 +120,10 @@ export interface DeepSeekChatInput {
112
120
  name: string;
113
121
  };
114
122
  };
123
+ thinking?: {
124
+ type: 'enabled' | 'disabled';
125
+ };
126
+ json_mode?: boolean;
115
127
  }
116
128
  /**
117
129
  * Error response structure
@@ -158,6 +170,8 @@ export interface DeepSeekRawResponse {
158
170
  prompt_tokens: number;
159
171
  completion_tokens: number;
160
172
  total_tokens: number;
173
+ prompt_cache_hit_tokens?: number;
174
+ prompt_cache_miss_tokens?: number;
161
175
  };
162
176
  }
163
177
  /**
@@ -189,8 +203,65 @@ export interface DeepSeekStreamChunk {
189
203
  prompt_tokens: number;
190
204
  completion_tokens: number;
191
205
  total_tokens: number;
206
+ prompt_cache_hit_tokens?: number;
207
+ prompt_cache_miss_tokens?: number;
192
208
  };
193
209
  }
210
+ /**
211
+ * Session data for multi-turn conversations
212
+ */
213
+ export interface Session {
214
+ id: string;
215
+ messages: ChatMessage[];
216
+ createdAt: number;
217
+ lastAccessedAt: number;
218
+ totalCost: number;
219
+ requestCount: number;
220
+ }
221
+ /**
222
+ * Session info for listing (without full message history)
223
+ */
224
+ export interface SessionInfo {
225
+ id: string;
226
+ messageCount: number;
227
+ createdAt: number;
228
+ lastAccessedAt: number;
229
+ totalCost: number;
230
+ requestCount: number;
231
+ }
232
+ /**
233
+ * Circuit breaker states
234
+ */
235
+ export type CircuitBreakerState = 'CLOSED' | 'OPEN' | 'HALF_OPEN';
236
+ /**
237
+ * Circuit breaker status info
238
+ */
239
+ export interface CircuitBreakerStatus {
240
+ state: CircuitBreakerState;
241
+ failureCount: number;
242
+ lastFailureTime: number;
243
+ }
244
+ /**
245
+ * Aggregated usage statistics
246
+ */
247
+ export interface UsageStats {
248
+ totalRequests: number;
249
+ totalTokens: number;
250
+ totalPromptTokens: number;
251
+ totalCompletionTokens: number;
252
+ totalCost: number;
253
+ cacheHitTokens: number;
254
+ cacheMissTokens: number;
255
+ activeSessions: number;
256
+ }
257
+ /**
258
+ * Fallback information attached to responses
259
+ */
260
+ export interface FallbackInfo {
261
+ originalModel: string;
262
+ fallbackModel: string;
263
+ reason: string;
264
+ }
194
265
  /**
195
266
  * Check if a message has reasoning_content (DeepSeek Reasoner)
196
267
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA6MH,kEAAkE;AAElE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,mBAAmB,IAAI,OAAO;QAC9B,OAAQ,OAAmC,CAAC,iBAAiB,KAAK,QAAQ,CAC3E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4RH,kEAAkE;AAElE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,mBAAmB,IAAI,OAAO;QAC9B,OAAQ,OAAmC,CAAC,iBAAiB,KAAK,QAAQ,CAC3E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Usage Tracker
3
+ * Singleton that tracks aggregated API usage statistics
4
+ */
5
+ import type { UsageStats } from './types.js';
6
+ export declare class UsageTracker {
7
+ private static instance;
8
+ private totalRequests;
9
+ private totalTokens;
10
+ private totalPromptTokens;
11
+ private totalCompletionTokens;
12
+ private totalCost;
13
+ private cacheHitTokens;
14
+ private cacheMissTokens;
15
+ private constructor();
16
+ static getInstance(): UsageTracker;
17
+ /**
18
+ * Reset singleton (for testing)
19
+ */
20
+ static resetInstance(): void;
21
+ /**
22
+ * Track a completed API request
23
+ */
24
+ trackRequest(usage: {
25
+ prompt_tokens: number;
26
+ completion_tokens: number;
27
+ total_tokens: number;
28
+ prompt_cache_hit_tokens?: number;
29
+ prompt_cache_miss_tokens?: number;
30
+ }, cost: number): void;
31
+ /**
32
+ * Get current usage statistics
33
+ */
34
+ getStats(): UsageStats;
35
+ /**
36
+ * Get cache hit ratio (0-1)
37
+ */
38
+ getCacheHitRatio(): number;
39
+ }
40
+ //# sourceMappingURL=usage-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../src/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IAEpD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,eAAe,CAAK;IAE5B,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,YAAY;IAOlC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;OAEG;IACH,YAAY,CACV,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;KACnC,EACD,IAAI,EAAE,MAAM,GACX,IAAI;IAeP;;OAEG;IACH,QAAQ,IAAI,UAAU;IAoBtB;;OAEG;IACH,gBAAgB,IAAI,MAAM;CAK3B"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Usage Tracker
3
+ * Singleton that tracks aggregated API usage statistics
4
+ */
5
+ import { SessionStore } from './session.js';
6
+ export class UsageTracker {
7
+ static instance = null;
8
+ totalRequests = 0;
9
+ totalTokens = 0;
10
+ totalPromptTokens = 0;
11
+ totalCompletionTokens = 0;
12
+ totalCost = 0;
13
+ cacheHitTokens = 0;
14
+ cacheMissTokens = 0;
15
+ constructor() { }
16
+ static getInstance() {
17
+ if (!UsageTracker.instance) {
18
+ UsageTracker.instance = new UsageTracker();
19
+ }
20
+ return UsageTracker.instance;
21
+ }
22
+ /**
23
+ * Reset singleton (for testing)
24
+ */
25
+ static resetInstance() {
26
+ UsageTracker.instance = null;
27
+ }
28
+ /**
29
+ * Track a completed API request
30
+ */
31
+ trackRequest(usage, cost) {
32
+ this.totalRequests++;
33
+ this.totalTokens += usage.total_tokens;
34
+ this.totalPromptTokens += usage.prompt_tokens;
35
+ this.totalCompletionTokens += usage.completion_tokens;
36
+ this.totalCost += cost;
37
+ if (usage.prompt_cache_hit_tokens !== undefined) {
38
+ this.cacheHitTokens += usage.prompt_cache_hit_tokens;
39
+ }
40
+ if (usage.prompt_cache_miss_tokens !== undefined) {
41
+ this.cacheMissTokens += usage.prompt_cache_miss_tokens;
42
+ }
43
+ }
44
+ /**
45
+ * Get current usage statistics
46
+ */
47
+ getStats() {
48
+ let activeSessions = 0;
49
+ try {
50
+ activeSessions = SessionStore.getInstance().list().length;
51
+ }
52
+ catch {
53
+ // SessionStore may not be initialized (e.g., config not loaded in tests)
54
+ }
55
+ return {
56
+ totalRequests: this.totalRequests,
57
+ totalTokens: this.totalTokens,
58
+ totalPromptTokens: this.totalPromptTokens,
59
+ totalCompletionTokens: this.totalCompletionTokens,
60
+ totalCost: this.totalCost,
61
+ cacheHitTokens: this.cacheHitTokens,
62
+ cacheMissTokens: this.cacheMissTokens,
63
+ activeSessions,
64
+ };
65
+ }
66
+ /**
67
+ * Get cache hit ratio (0-1)
68
+ */
69
+ getCacheHitRatio() {
70
+ const total = this.cacheHitTokens + this.cacheMissTokens;
71
+ if (total === 0)
72
+ return 0;
73
+ return this.cacheHitTokens / total;
74
+ }
75
+ }
76
+ //# sourceMappingURL=usage-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-tracker.js","sourceRoot":"","sources":["../src/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,OAAO,YAAY;IACf,MAAM,CAAC,QAAQ,GAAwB,IAAI,CAAC;IAE5C,aAAa,GAAG,CAAC,CAAC;IAClB,WAAW,GAAG,CAAC,CAAC;IAChB,iBAAiB,GAAG,CAAC,CAAC;IACtB,qBAAqB,GAAG,CAAC,CAAC;IAC1B,SAAS,GAAG,CAAC,CAAC;IACd,cAAc,GAAG,CAAC,CAAC;IACnB,eAAe,GAAG,CAAC,CAAC;IAE5B,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAClB,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,YAAY,CACV,KAMC,EACD,IAAY;QAEZ,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,qBAAqB,IAAI,KAAK,CAAC,iBAAiB,CAAC;QACtD,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;QAEvB,IAAI,KAAK,CAAC,uBAAuB,KAAK,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,uBAAuB,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,wBAAwB,KAAK,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,eAAe,IAAI,KAAK,CAAC,wBAAwB,CAAC;QACzD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC;YACH,cAAc,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;QAED,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,cAAc;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;QACzD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arikusi/deepseek-mcp-server",
3
- "version": "1.1.1",
3
+ "version": "1.3.0",
4
4
  "description": "MCP Server for DeepSeek API integration - enables Claude Code to use DeepSeek Chat and Reasoner models",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -31,7 +31,10 @@
31
31
  "llm",
32
32
  "openai-compatible",
33
33
  "function-calling",
34
- "tool-use"
34
+ "tool-use",
35
+ "session-management",
36
+ "circuit-breaker",
37
+ "model-fallback"
35
38
  ],
36
39
  "author": "arikusi",
37
40
  "license": "MIT",