File size: 1,176 Bytes
f326613
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import type { Tool as MCPTool } from "@modelcontextprotocol/sdk/types.js";

export interface MCPServerConfig {
  id: string;
  name: string;
  url: string;
  enabled: boolean;
  transport: "sse" | "streamable-http";
  auth?: {
    type: "bearer" | "basic" | "oauth";
    token?: string;
    username?: string;
    password?: string;
  };
}

export interface MCPServerConnection {
  config: MCPServerConfig;
  isConnected: boolean;
  tools: MCPTool[];
  lastError?: string;
  lastConnected?: Date;
}

// Extended Tool interface to support both local and MCP tools
export interface ExtendedTool {
  id: number | string;
  name: string;
  enabled: boolean;
  isCollapsed?: boolean;

  // Local tool properties
  code?: string;
  renderer?: string;

  // MCP tool properties
  mcpServerId?: string;
  mcpTool?: MCPTool;
  isRemote?: boolean;
}

// MCP Tool execution result
export interface MCPToolResult {
  content: Array<{
    type: string;
    text?: string;
    data?: unknown;
    mimeType?: string;
  }>;
  isError?: boolean;
}

// MCP Client state
export interface MCPClientState {
  servers: Record<string, MCPServerConnection>;
  isLoading: boolean;
  error?: string;
}