UNPKG

@smartsamurai/krapi-sdk

Version:

KRAPI TypeScript SDK - Easy-to-use client SDK for connecting to self-hosted KRAPI servers (like Appwrite SDK)

86 lines (62 loc) 1.98 kB
/** * MCP HTTP Client for KRAPI SDK * * HTTP-based MCP operations for frontend applications. * Provides MCP chat, model capabilities, and model management. * * @module http-clients/mcp-http-client * @example * const client = new MCPHttpClient({ baseUrl: 'https://api.example.com' }); * const capabilities = await client.getModelCapabilities(); */ import { ApiResponse } from "../core"; import { ChatMessage, ChatResponse, ModelCapabilities, Model } from "../mcp-service"; import { BaseHttpClient } from "./base-http-client"; /** * MCP HTTP Client * * HTTP client for MCP operations. * * @class MCPHttpClient * @extends {BaseHttpClient} */ export class MCPHttpClient extends BaseHttpClient { /** * Get model capabilities * * @returns {Promise<ApiResponse<ModelCapabilities>>} Model capabilities */ async getModelCapabilities(): Promise<ApiResponse<ModelCapabilities>> { return this.get<ModelCapabilities>("/mcp/capabilities"); } /** * Send chat messages to MCP model * * @param {string} projectId - Project ID * @param {ChatMessage[]} messages - Chat messages * @returns {Promise<ApiResponse<ChatResponse>>} Chat response */ async chat( projectId: string, messages: ChatMessage[] ): Promise<ApiResponse<ChatResponse>> { return this.post<ChatResponse>(`/mcp/projects/${projectId}/chat`, { messages }); } /** * Send chat messages to MCP model (admin context) * * @param {ChatMessage[]} messages - Chat messages * @returns {Promise<ApiResponse<ChatResponse>>} Chat response */ async adminChat(messages: ChatMessage[]): Promise<ApiResponse<ChatResponse>> { return this.post<ChatResponse>("/mcp/admin/chat", { messages }); } /** * List available MCP models * * @returns {Promise<ApiResponse<Model[]>>} List of available models */ async listModels(): Promise<ApiResponse<Model[]>> { return this.get<Model[]>("/mcp/models"); } }