UNPKG

@toolprint/hypertool-mcp

Version:

HyperTool MCP proxy server for routing requests between clients and multiple underlying MCP servers

91 lines • 3.18 kB
/** * Database interfaces for server and group management * These interfaces provide abstraction over the underlying database implementation */ import { ServerConfig } from "../types/config.js"; /** * Represents a configuration source (where configs are imported from) * Stored in the 'configSources' collection. */ export interface IConfigSource { id: string; type: "global" | "app" | "profile"; appId?: string; profileId?: string; path: string; priority: number; lastSynced: number; } /** * Represents a canonical, internally managed MCP server configuration record. * Stored in the 'servers' collection. */ export interface ServerConfigRecord { id: string; name: string; type: "stdio" | "http" | "sse"; config: ServerConfig; lastModified: number; checksum: string; sourceId?: string; } /** * Represents a named, user-defined collection of ServerConfigRecord IDs. * Stored in the 'groups' collection. */ export interface ServerConfigGroup { id: string; name: string; description?: string; serverIds: string[]; } /** * Interface for interacting with ServerConfigRecord data. */ export interface IServerConfigRecordRepository { add(server: Omit<ServerConfigRecord, "id">): Promise<ServerConfigRecord>; update(server: ServerConfigRecord): Promise<ServerConfigRecord | null>; delete(id: string): Promise<boolean>; findById(id: string): Promise<ServerConfigRecord | null>; findByName(name: string): Promise<ServerConfigRecord | null>; findAll(): Promise<ServerConfigRecord[]>; } /** * Interface for interacting with ServerConfigGroup data. */ export interface IServerConfigGroupRepository { add(group: Omit<ServerConfigGroup, "id">): Promise<ServerConfigGroup>; update(group: ServerConfigGroup): Promise<ServerConfigGroup | null>; delete(id: string): Promise<boolean>; findById(id: string): Promise<ServerConfigGroup | null>; findByName(name: string): Promise<ServerConfigGroup | null>; findAll(): Promise<ServerConfigGroup[]>; /** * Retrieves all ServerConfigRecord objects that are members of a specific group. * This method will internally query the IServerConfigRecordRepository. */ findServersInGroup(groupId: string): Promise<ServerConfigRecord[]>; } /** * Interface for interacting with ConfigSource data. */ export interface IConfigSourceRepository { add(source: Omit<IConfigSource, "id">): Promise<IConfigSource>; update(source: IConfigSource): Promise<IConfigSource | null>; delete(id: string): Promise<boolean>; findById(id: string): Promise<IConfigSource | null>; findByPath(path: string): Promise<IConfigSource | null>; findByAppId(appId: string): Promise<IConfigSource[]>; findAll(): Promise<IConfigSource[]>; } /** * Central service interface for managing the database and providing access to repositories. */ export interface IDatabaseService { servers: IServerConfigRecordRepository; groups: IServerConfigGroupRepository; configSources: IConfigSourceRepository; init(): Promise<void>; close(): Promise<void>; } //# sourceMappingURL=interfaces.d.ts.map