UNPKG

mcp-use

Version:

A utility library for integrating Model Context Protocol (MCP) with LangChain, Zod, and related tools. Provides helpers for schema conversion, event streaming, and SDK usage.

53 lines (52 loc) 1.39 kB
import { logger } from './logging.js'; export class MCPSession { connector; autoConnect; _sessionInfo = null; _tools = []; constructor(connector, autoConnect = true) { this.connector = connector; this.autoConnect = autoConnect; } async open() { await this.connect(); return this; } async close() { await this.disconnect(); } async connect() { await this.connector.connect(); } async disconnect() { await this.connector.disconnect(); } async initialize() { if (!this.isConnected && this.autoConnect) { await this.connect(); } this._sessionInfo = await this.connector.initialize() ?? {}; await this.discoverTools(); return this._sessionInfo; } get isConnected() { return this.connector && this.connector.isClientConnected; } get sessionInfo() { return this._sessionInfo; } get tools() { return this._tools; } async discoverTools() { this._tools = this.connector.tools; return this._tools; } async callTool(name, args) { if (!this.isConnected && this.autoConnect) { await this.connect(); } logger.debug(`MCPSession calling tool '${name}'`); return await this.connector.callTool(name, args); } }