@nanocollective/nanocoder
Version:
A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter
62 lines • 2.26 kB
TypeScript
import type { AISDKCoreTool, MCPInitResult, MCPServer, MCPTool, Tool } from '../types/index.js';
export declare class MCPClient {
private clients;
private transports;
private serverTools;
private serverConfigs;
private isConnected;
private logger;
private isToolAutoApproved;
constructor();
/**
* Ensures backward compatibility for old MCP server configurations
* by adding default transport type for existing configurations
*/
private normalizeServerConfig;
connectToServer(server: MCPServer): Promise<void>;
connectToServers(servers: MCPServer[], onProgress?: (result: MCPInitResult) => void): Promise<MCPInitResult[]>;
getAllTools(): Tool[];
/**
* Get all MCP tools as AI SDK native CoreTool format
* Converts MCP tool schemas to AI SDK's tool() format
*/
getNativeToolsRegistry(): Record<string, AISDKCoreTool>;
getToolMapping(): Map<string, {
serverName: string;
originalName: string;
}>;
/**
* Get all MCP tools as entries with handlers for easy registration
* Each entry contains the native AI SDK tool and its handler function
*
* the AI SDK tool definition and the corresponding handler function.
* This enables cleaner integration with ToolManager.
*
* @returns Array of tool entries with name, AI SDK tool, and handler function
*/
getToolEntries(): Array<{
name: string;
tool: AISDKCoreTool;
handler: (args: Record<string, unknown>) => Promise<string>;
}>;
callTool(toolName: string, args: Record<string, unknown>): Promise<string>;
private executeToolCall;
disconnect(): Promise<void>;
getConnectedServers(): string[];
isServerConnected(serverName: string): boolean;
getServerTools(serverName: string): MCPTool[];
/**
* Gets server information including transport type and URL for remote servers
*/
getServerInfo(serverName: string): {
name: string;
transport: string;
url?: string;
toolCount: number;
connected: boolean;
description?: string;
tags?: string[];
autoApprovedCommands?: string[];
} | undefined;
}
//# sourceMappingURL=mcp-client.d.ts.map