claude-flow
Version:
Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration
266 lines • 5.49 kB
TypeScript
/**
* V3 MCP Types
* Model Context Protocol type definitions
* Aligned with ADR-005 (MCP-first API design)
*/
/**
* MCP tool definition
*/
export interface MCPTool {
name: string;
description: string;
inputSchema: MCPInputSchema;
handler: MCPToolHandler;
}
/**
* MCP input schema (JSON Schema)
*/
export interface MCPInputSchema {
type: 'object';
properties: Record<string, MCPPropertySchema>;
required?: string[];
additionalProperties?: boolean;
}
/**
* MCP property schema
*/
export interface MCPPropertySchema {
type: 'string' | 'number' | 'boolean' | 'array' | 'object';
description?: string;
enum?: unknown[];
default?: unknown;
items?: MCPPropertySchema;
properties?: Record<string, MCPPropertySchema>;
required?: string[];
}
/**
* MCP tool handler
*/
export type MCPToolHandler = (params: Record<string, unknown>) => Promise<MCPToolResult>;
/**
* MCP tool result
*/
export interface MCPToolResult {
content: MCPContent[];
isError?: boolean;
}
/**
* MCP content types
*/
export type MCPContent = MCPTextContent | MCPImageContent | MCPResourceContent;
/**
* MCP text content
*/
export interface MCPTextContent {
type: 'text';
text: string;
}
/**
* MCP image content
*/
export interface MCPImageContent {
type: 'image';
data: string;
mimeType: string;
}
/**
* MCP resource content
*/
export interface MCPResourceContent {
type: 'resource';
resource: {
uri: string;
mimeType?: string;
text?: string;
blob?: string;
};
}
/**
* MCP server configuration
*/
export interface MCPServerConfig {
name: string;
version: string;
transport: MCPTransportConfig;
tools?: MCPTool[];
resources?: MCPResource[];
prompts?: MCPPrompt[];
capabilities?: MCPCapabilities;
}
/**
* MCP transport configuration
*/
export interface MCPTransportConfig {
type: 'stdio' | 'http' | 'websocket';
port?: number;
host?: string;
path?: string;
}
/**
* MCP resource definition
*/
export interface MCPResource {
uri: string;
name: string;
description?: string;
mimeType?: string;
handler: () => Promise<MCPResourceContent['resource']>;
}
/**
* MCP prompt definition
*/
export interface MCPPrompt {
name: string;
description?: string;
arguments?: MCPPromptArgument[];
handler: (args: Record<string, string>) => Promise<MCPPromptResult>;
}
/**
* MCP prompt argument
*/
export interface MCPPromptArgument {
name: string;
description?: string;
required?: boolean;
}
/**
* MCP prompt result
*/
export interface MCPPromptResult {
messages: MCPPromptMessage[];
}
/**
* MCP prompt message
*/
export interface MCPPromptMessage {
role: 'user' | 'assistant';
content: MCPContent;
}
/**
* MCP capabilities
*/
export interface MCPCapabilities {
tools?: boolean;
resources?: boolean;
prompts?: boolean;
logging?: boolean;
experimental?: Record<string, boolean>;
}
/**
* MCP request types
*/
export type MCPRequest = MCPInitializeRequest | MCPToolCallRequest | MCPResourceReadRequest | MCPPromptGetRequest | MCPListRequest;
/**
* MCP initialize request
*/
export interface MCPInitializeRequest {
method: 'initialize';
params: {
protocolVersion: string;
capabilities: MCPCapabilities;
clientInfo: {
name: string;
version: string;
};
};
}
/**
* MCP tool call request
*/
export interface MCPToolCallRequest {
method: 'tools/call';
params: {
name: string;
arguments: Record<string, unknown>;
};
}
/**
* MCP resource read request
*/
export interface MCPResourceReadRequest {
method: 'resources/read';
params: {
uri: string;
};
}
/**
* MCP prompt get request
*/
export interface MCPPromptGetRequest {
method: 'prompts/get';
params: {
name: string;
arguments?: Record<string, string>;
};
}
/**
* MCP list request
*/
export interface MCPListRequest {
method: 'tools/list' | 'resources/list' | 'prompts/list';
params?: Record<string, unknown>;
}
/**
* MCP response types
*/
export interface MCPResponse<T = unknown> {
id: string | number;
result?: T;
error?: MCPError;
}
/**
* MCP error
*/
export interface MCPError {
code: number;
message: string;
data?: unknown;
}
/**
* MCP event payloads
*/
export interface MCPEventPayloads {
'mcp:initialized': {
serverName: string;
version: string;
capabilities: MCPCapabilities;
};
'mcp:tool:called': {
toolName: string;
arguments: Record<string, unknown>;
duration: number;
success: boolean;
};
'mcp:resource:read': {
uri: string;
mimeType?: string;
size: number;
};
'mcp:prompt:executed': {
promptName: string;
arguments: Record<string, string>;
messageCount: number;
};
'mcp:error': {
error: MCPError;
request?: MCPRequest;
};
'mcp:shutdown': {
reason: string;
};
}
/**
* MCP server status
*/
export interface MCPServerStatus {
running: boolean;
transport: MCPTransportConfig['type'];
connectedClients: number;
toolsRegistered: number;
resourcesRegistered: number;
promptsRegistered: number;
requestsHandled: number;
errorsCount: number;
uptime: number;
}
//# sourceMappingURL=mcp.types.d.ts.map