@diegoaltoworks/chatter 0.1.8 → 0.8.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/README.md +164 -106
- package/dist/auth/apikeys.test.d.ts +2 -0
- package/dist/auth/apikeys.test.d.ts.map +1 -0
- package/dist/core/guardrails.test.d.ts +2 -0
- package/dist/core/guardrails.test.d.ts.map +1 -0
- package/dist/core/llm.d.ts +1 -0
- package/dist/core/llm.d.ts.map +1 -1
- package/dist/core/loaders.test.d.ts +2 -0
- package/dist/core/loaders.test.d.ts.map +1 -0
- package/dist/core/prompts.test.d.ts +2 -0
- package/dist/core/prompts.test.d.ts.map +1 -0
- package/dist/core/session.test.d.ts +2 -0
- package/dist/core/session.test.d.ts.map +1 -0
- package/dist/core/widgets.test.d.ts +2 -0
- package/dist/core/widgets.test.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22638 -1395
- package/dist/index.mjs +22619 -1373
- package/dist/mcp-server/conversation-id.d.ts +27 -0
- package/dist/mcp-server/conversation-id.d.ts.map +1 -0
- package/dist/mcp-server/conversation-id.test.d.ts +2 -0
- package/dist/mcp-server/conversation-id.test.d.ts.map +1 -0
- package/dist/mcp-server/cost-tracker.d.ts +36 -0
- package/dist/mcp-server/cost-tracker.d.ts.map +1 -0
- package/dist/mcp-server/cost-tracker.test.d.ts +2 -0
- package/dist/mcp-server/cost-tracker.test.d.ts.map +1 -0
- package/dist/mcp-server/index.d.ts +12 -0
- package/dist/mcp-server/index.d.ts.map +1 -0
- package/dist/mcp-server/logger.d.ts +25 -0
- package/dist/mcp-server/logger.d.ts.map +1 -0
- package/dist/mcp-server/logger.test.d.ts +2 -0
- package/dist/mcp-server/logger.test.d.ts.map +1 -0
- package/dist/mcp-server/rate-limiter.d.ts +59 -0
- package/dist/mcp-server/rate-limiter.d.ts.map +1 -0
- package/dist/mcp-server/rate-limiter.test.d.ts +2 -0
- package/dist/mcp-server/rate-limiter.test.d.ts.map +1 -0
- package/dist/mcp-server/types.d.ts +82 -0
- package/dist/mcp-server/types.d.ts.map +1 -0
- package/dist/mcp-server.d.ts +36 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +671 -0
- package/dist/mcp-server.mjs +636 -0
- package/dist/middleware/auth.test.d.ts +2 -0
- package/dist/middleware/auth.test.d.ts.map +1 -0
- package/dist/middleware/cors.test.d.ts +2 -0
- package/dist/middleware/cors.test.d.ts.map +1 -0
- package/dist/middleware/jwt.test.d.ts +2 -0
- package/dist/middleware/jwt.test.d.ts.map +1 -0
- package/dist/middleware/ratelimit.test.d.ts +2 -0
- package/dist/middleware/ratelimit.test.d.ts.map +1 -0
- package/dist/middleware/referrer.d.ts.map +1 -1
- package/dist/middleware/referrer.test.d.ts +2 -0
- package/dist/middleware/referrer.test.d.ts.map +1 -0
- package/dist/middleware/session.test.d.ts +2 -0
- package/dist/middleware/session.test.d.ts.map +1 -0
- package/package.json +26 -10
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Conversation ID Generation
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Generate a unique conversation ID
|
|
6
|
+
*
|
|
7
|
+
* Format: conv_{timestamp}_{random}
|
|
8
|
+
* Example: conv_1710421200000_abc123xyz
|
|
9
|
+
*
|
|
10
|
+
* @returns Unique conversation ID string
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateConversationId(): string;
|
|
13
|
+
/**
|
|
14
|
+
* Get or generate conversation ID
|
|
15
|
+
*
|
|
16
|
+
* @param providedId - Optional conversation ID provided by client
|
|
17
|
+
* @returns The provided ID or a newly generated one
|
|
18
|
+
*/
|
|
19
|
+
export declare function getOrGenerateConversationId(providedId: string | undefined): string;
|
|
20
|
+
/**
|
|
21
|
+
* Validate conversation ID format
|
|
22
|
+
*
|
|
23
|
+
* @param id - Conversation ID to validate
|
|
24
|
+
* @returns true if valid format, false otherwise
|
|
25
|
+
*/
|
|
26
|
+
export declare function isValidConversationId(id: string): boolean;
|
|
27
|
+
//# sourceMappingURL=conversation-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-id.d.ts","sourceRoot":"","sources":["../../src/mcp-server/conversation-id.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAI/C;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-id.test.d.ts","sourceRoot":"","sources":["../../src/mcp-server/conversation-id.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cost Tracking for OpenAI API Usage
|
|
3
|
+
*/
|
|
4
|
+
import type { CostInfo } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Calculate cost based on token usage
|
|
7
|
+
* GPT-4o pricing as of 2024: $2.50 per 1M input tokens, $10.00 per 1M output tokens
|
|
8
|
+
*
|
|
9
|
+
* @param usage - Token usage from OpenAI API response
|
|
10
|
+
* @returns Cost information including token counts and estimated USD cost
|
|
11
|
+
*/
|
|
12
|
+
export declare function calculateCost(usage: {
|
|
13
|
+
prompt_tokens: number;
|
|
14
|
+
completion_tokens: number;
|
|
15
|
+
}): CostInfo;
|
|
16
|
+
/**
|
|
17
|
+
* Format cost as a human-readable string
|
|
18
|
+
*
|
|
19
|
+
* @param cost - Cost information
|
|
20
|
+
* @returns Formatted cost string (e.g., "$0.003670")
|
|
21
|
+
*/
|
|
22
|
+
export declare function formatCost(cost: CostInfo): string;
|
|
23
|
+
/**
|
|
24
|
+
* Get cost summary for logging
|
|
25
|
+
*
|
|
26
|
+
* @param cost - Cost information
|
|
27
|
+
* @returns Object with formatted cost data
|
|
28
|
+
*/
|
|
29
|
+
export declare function getCostSummary(cost: CostInfo): {
|
|
30
|
+
promptTokens: number;
|
|
31
|
+
completionTokens: number;
|
|
32
|
+
totalTokens: number;
|
|
33
|
+
estimatedCostUSD: number;
|
|
34
|
+
formatted: string;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=cost-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../../src/mcp-server/cost-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,QAAQ,CAgBX;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ;;;;;;EAQ5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker.test.d.ts","sourceRoot":"","sources":["../../src/mcp-server/cost-tracker.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Modules
|
|
3
|
+
*
|
|
4
|
+
* Modular implementation of the Model Context Protocol server
|
|
5
|
+
*/
|
|
6
|
+
export * from "./types";
|
|
7
|
+
export * from "./cost-tracker";
|
|
8
|
+
export * from "./rate-limiter";
|
|
9
|
+
export * from "./conversation-id";
|
|
10
|
+
export * from "./logger";
|
|
11
|
+
export { createMCPServer } from "../mcp-server";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp-server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,SAAS,CAAC;AAGxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging for MCP Server
|
|
3
|
+
*/
|
|
4
|
+
import type { ChatMessage, CostInfo, MCPLogCallback } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Logger for MCP chat interactions
|
|
7
|
+
*/
|
|
8
|
+
export declare class MCPLogger {
|
|
9
|
+
private enableConsole;
|
|
10
|
+
private callback?;
|
|
11
|
+
constructor(enableConsole?: boolean, callback?: MCPLogCallback);
|
|
12
|
+
/**
|
|
13
|
+
* Log a chat interaction
|
|
14
|
+
*/
|
|
15
|
+
logChatInteraction(toolName: string, conversationId: string, conversationMessages: ChatMessage[], ragContext: string[], response: string, duration: number, cost: CostInfo): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create a logger instance
|
|
19
|
+
*
|
|
20
|
+
* @param enableConsole - Enable console logging
|
|
21
|
+
* @param callback - Custom logging callback
|
|
22
|
+
* @returns MCPLogger instance
|
|
23
|
+
*/
|
|
24
|
+
export declare function createLogger(enableConsole?: boolean, callback?: MCPLogCallback): MCPLogger;
|
|
25
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/mcp-server/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErE;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,CAAiB;gBAEtB,aAAa,UAAO,EAAE,QAAQ,CAAC,EAAE,cAAc;IAK3D;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,WAAW,EAAE,EACnC,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,IAAI,CAAC;CAkCjB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,aAAa,UAAO,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAEvF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.test.d.ts","sourceRoot":"","sources":["../../src/mcp-server/logger.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limiting for MCP Tools
|
|
3
|
+
* Simple in-memory sliding window implementation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Rate limiter using sliding window algorithm
|
|
7
|
+
*/
|
|
8
|
+
export declare class RateLimiter {
|
|
9
|
+
private requestMap;
|
|
10
|
+
private readonly limit;
|
|
11
|
+
private readonly windowMs;
|
|
12
|
+
/**
|
|
13
|
+
* Create a new rate limiter
|
|
14
|
+
*
|
|
15
|
+
* @param limit - Maximum requests allowed in the time window
|
|
16
|
+
* @param windowMs - Time window in milliseconds (default: 60000 = 1 minute)
|
|
17
|
+
*/
|
|
18
|
+
constructor(limit: number, windowMs?: number);
|
|
19
|
+
/**
|
|
20
|
+
* Check if a request should be allowed
|
|
21
|
+
*
|
|
22
|
+
* @param key - Unique identifier for the rate limit (e.g., tool name)
|
|
23
|
+
* @returns true if request is allowed, false if rate limit exceeded
|
|
24
|
+
*/
|
|
25
|
+
check(key: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Get current request count for a key
|
|
28
|
+
*
|
|
29
|
+
* @param key - Unique identifier
|
|
30
|
+
* @returns Current number of requests in the window
|
|
31
|
+
*/
|
|
32
|
+
getCount(key: string): number;
|
|
33
|
+
/**
|
|
34
|
+
* Reset rate limit for a specific key
|
|
35
|
+
*
|
|
36
|
+
* @param key - Unique identifier to reset
|
|
37
|
+
*/
|
|
38
|
+
reset(key: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Reset all rate limits
|
|
41
|
+
*/
|
|
42
|
+
resetAll(): void;
|
|
43
|
+
/**
|
|
44
|
+
* Get time until rate limit resets (in ms)
|
|
45
|
+
*
|
|
46
|
+
* @param key - Unique identifier
|
|
47
|
+
* @returns Milliseconds until the oldest request falls out of the window
|
|
48
|
+
*/
|
|
49
|
+
getTimeUntilReset(key: string): number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a rate limiter if limit is specified
|
|
53
|
+
*
|
|
54
|
+
* @param limit - Maximum requests per window, or undefined for no limit
|
|
55
|
+
* @param windowMs - Time window in milliseconds
|
|
56
|
+
* @returns RateLimiter instance or null if no limit specified
|
|
57
|
+
*/
|
|
58
|
+
export declare function createRateLimiter(limit: number | undefined, windowMs?: number): RateLimiter | null;
|
|
59
|
+
//# sourceMappingURL=rate-limiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/mcp-server/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;;OAKG;gBACS,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAQ;IAM3C;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAsB3B;;;;;OAKG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAO7B;;;;OAIG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAUvC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,SAAQ,GAAG,WAAW,GAAG,IAAI,CAEjG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.test.d.ts","sourceRoot":"","sources":["../../src/mcp-server/rate-limiter.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server Type Definitions
|
|
3
|
+
*/
|
|
4
|
+
import type { ChatterConfig } from "../types";
|
|
5
|
+
/**
|
|
6
|
+
* MCP Server transport options
|
|
7
|
+
*/
|
|
8
|
+
export type MCPTransportMode = "stdio";
|
|
9
|
+
/**
|
|
10
|
+
* Cost information for API usage
|
|
11
|
+
*/
|
|
12
|
+
export interface CostInfo {
|
|
13
|
+
promptTokens: number;
|
|
14
|
+
completionTokens: number;
|
|
15
|
+
totalTokens: number;
|
|
16
|
+
estimatedCost: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Logging callback for observability
|
|
20
|
+
*/
|
|
21
|
+
export type MCPLogCallback = (event: {
|
|
22
|
+
timestamp: string;
|
|
23
|
+
toolName: string;
|
|
24
|
+
conversationId: string;
|
|
25
|
+
userMessage: string;
|
|
26
|
+
conversationHistory: Array<{
|
|
27
|
+
role: "user" | "assistant";
|
|
28
|
+
content: string;
|
|
29
|
+
}>;
|
|
30
|
+
ragContext: string[];
|
|
31
|
+
response: string;
|
|
32
|
+
duration: number;
|
|
33
|
+
cost: CostInfo;
|
|
34
|
+
}) => void | Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Configuration for individual MCP tools
|
|
37
|
+
*/
|
|
38
|
+
export interface MCPToolConfig {
|
|
39
|
+
/** Enable this tool. Default: true */
|
|
40
|
+
enabled?: boolean;
|
|
41
|
+
/** Tool name override. Defaults to chat_public/chat_private */
|
|
42
|
+
name?: string;
|
|
43
|
+
/** Tool description override */
|
|
44
|
+
description?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface MCPServerOptions extends ChatterConfig {
|
|
47
|
+
/** Transport mode. Default: stdio */
|
|
48
|
+
transport?: MCPTransportMode;
|
|
49
|
+
/** Configuration for MCP tools */
|
|
50
|
+
tools?: {
|
|
51
|
+
/** Public chat tool configuration */
|
|
52
|
+
public?: MCPToolConfig;
|
|
53
|
+
/** Private chat tool configuration */
|
|
54
|
+
private?: MCPToolConfig;
|
|
55
|
+
};
|
|
56
|
+
/** Logging and observability */
|
|
57
|
+
logging?: {
|
|
58
|
+
/** Enable console logging. Default: true */
|
|
59
|
+
console?: boolean;
|
|
60
|
+
/** Custom logging callback for external monitoring */
|
|
61
|
+
onChat?: MCPLogCallback;
|
|
62
|
+
};
|
|
63
|
+
/** Rate limiting per tool (requests per minute). Default: no limit */
|
|
64
|
+
toolRateLimit?: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Chat message structure
|
|
68
|
+
*/
|
|
69
|
+
export interface ChatMessage {
|
|
70
|
+
role: "user" | "assistant";
|
|
71
|
+
content: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Tool execution context
|
|
75
|
+
*/
|
|
76
|
+
export interface ToolContext {
|
|
77
|
+
conversationId: string;
|
|
78
|
+
conversationMessages: ChatMessage[];
|
|
79
|
+
ragContext: string[];
|
|
80
|
+
startTime: number;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp-server/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;CAChB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,qCAAqC;IACrC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B,kCAAkC;IAClC,KAAK,CAAC,EAAE;QACN,qCAAqC;QACrC,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,sCAAsC;QACtC,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB,CAAC;IAEF,gCAAgC;IAChC,OAAO,CAAC,EAAE;QACR,4CAA4C;QAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,sDAAsD;QACtD,MAAM,CAAC,EAAE,cAAc,CAAC;KACzB,CAAC;IAEF,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,WAAW,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chatter MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Model Context Protocol server implementation that exposes Chatter's
|
|
5
|
+
* AI chat capabilities as MCP tools for use with Claude Desktop,
|
|
6
|
+
* VS Code extensions, and other MCP-compatible clients.
|
|
7
|
+
*/
|
|
8
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
9
|
+
export type { ChatMessage, CostInfo, MCPLogCallback, MCPServerOptions, MCPToolConfig, MCPTransportMode, } from "./mcp-server/types";
|
|
10
|
+
import type { MCPServerOptions } from "./mcp-server/types";
|
|
11
|
+
/**
|
|
12
|
+
* Create and configure an MCP server instance
|
|
13
|
+
*
|
|
14
|
+
* @param config - Chatter configuration with optional MCP transport settings
|
|
15
|
+
* @returns Configured MCP server ready to connect
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import { createMCPServer } from '@diegoaltoworks/chatter/mcp';
|
|
20
|
+
*
|
|
21
|
+
* const server = await createMCPServer({
|
|
22
|
+
* bot: { name: 'MyBot', personName: 'Your Name' },
|
|
23
|
+
* openai: { apiKey: process.env.OPENAI_API_KEY },
|
|
24
|
+
* database: { url: process.env.TURSO_URL, authToken: process.env.TURSO_AUTH_TOKEN },
|
|
25
|
+
* knowledgeDir: './knowledge',
|
|
26
|
+
* promptsDir: './prompts',
|
|
27
|
+
* transport: 'stdio' // Default
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Connect with STDIO transport
|
|
31
|
+
* const transport = new StdioServerTransport();
|
|
32
|
+
* await server.connect(transport);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function createMCPServer(config: MCPServerOptions): Promise<McpServer>;
|
|
36
|
+
//# sourceMappingURL=mcp-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAapE,YAAY,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,gBAAgB,sBAiT7D"}
|