@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.
- package/CHANGELOG.md +44 -1
- package/README.md +134 -18
- package/dist/circuit-breaker.d.ts +37 -0
- package/dist/circuit-breaker.d.ts.map +1 -0
- package/dist/circuit-breaker.js +101 -0
- package/dist/circuit-breaker.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -1
- package/dist/cost.d.ts +30 -13
- package/dist/cost.d.ts.map +1 -1
- package/dist/cost.js +58 -19
- package/dist/cost.js.map +1 -1
- package/dist/deepseek-client.d.ts +23 -5
- package/dist/deepseek-client.d.ts.map +1 -1
- package/dist/deepseek-client.js +256 -115
- package/dist/deepseek-client.js.map +1 -1
- package/dist/errors.d.ts +13 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +18 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/resources/config.d.ts +7 -0
- package/dist/resources/config.d.ts.map +1 -0
- package/dist/resources/config.js +44 -0
- package/dist/resources/config.js.map +1 -0
- package/dist/resources/index.d.ts +7 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +13 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/models.d.ts +7 -0
- package/dist/resources/models.d.ts.map +1 -0
- package/dist/resources/models.js +62 -0
- package/dist/resources/models.js.map +1 -0
- package/dist/resources/usage.d.ts +7 -0
- package/dist/resources/usage.d.ts.map +1 -0
- package/dist/resources/usage.js +31 -0
- package/dist/resources/usage.js.map +1 -0
- package/dist/schemas.d.ts +72 -20
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +15 -2
- package/dist/schemas.js.map +1 -1
- package/dist/session.d.ts +68 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +184 -0
- package/dist/session.js.map +1 -0
- package/dist/tools/deepseek-chat.d.ts +2 -1
- package/dist/tools/deepseek-chat.d.ts.map +1 -1
- package/dist/tools/deepseek-chat.js +97 -32
- package/dist/tools/deepseek-chat.js.map +1 -1
- package/dist/tools/deepseek-sessions.d.ts +7 -0
- package/dist/tools/deepseek-sessions.d.ts.map +1 -0
- package/dist/tools/deepseek-sessions.js +101 -0
- package/dist/tools/deepseek-sessions.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 +71 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/usage-tracker.d.ts +40 -0
- package/dist/usage-tracker.d.ts.map +1 -0
- package/dist/usage-tracker.js +76 -0
- package/dist/usage-tracker.js.map +1 -0
- 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
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,UAAU,GACV;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAID;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,UAAU,CAAC;
|
|
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;
|
|
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.
|
|
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",
|