UNPKG

breathe-api

Version:

Model Context Protocol server for Breathe HR APIs with Swagger/OpenAPI support - also works with custom APIs

95 lines 2.61 kB
import { Brand } from './security.js'; export type EnvironmentName = 'production' | 'staging' | 'development' | 'sandbox'; export type EnvironmentSecret = Brand<string, 'EnvironmentSecret'>; export interface ApiAuthConfig { type: 'none' | 'basic' | 'bearer' | 'api-key'; username?: string; password?: EnvironmentSecret; token?: EnvironmentSecret; apiKey?: EnvironmentSecret; apiKeyHeader?: string; } export interface ApiEndpointConfig { path: string; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; description?: string; rateLimit?: { requests: number; windowMs: number; }; } export interface EnvironmentConfig { name: EnvironmentName; displayName: string; description?: string; baseUrl: string; auth: ApiAuthConfig; endpoints?: Record<string, ApiEndpointConfig>; metadata?: { region?: string; version?: string; lastUpdated?: string; contact?: string; swaggerUrl?: string; customHeaders?: Record<string, string>; }; isActive: boolean; } export interface ResourceUri { scheme: 'breathe' | 'swagger' | 'config'; environment: EnvironmentName; resourceType: 'api' | 'employees' | 'leave' | 'timesheets' | 'kudos' | 'config' | 'swagger'; path?: string[]; query?: Record<string, string>; } export interface ResourceMetadata { uri: string; name: string; description?: string; mimeType?: string; size?: number; lastModified?: string; environment?: EnvironmentName; tags?: string[]; } export interface ResourceTemplate { uriTemplate: string; name: string; description?: string; mimeType?: string; parameters?: Array<{ name: string; description?: string; required?: boolean; values?: string[]; }>; } export interface ResourceContent { uri: string; mimeType?: string; text?: string; blob?: string; } export interface ResourceManagerConfig { environments: Record<EnvironmentName, EnvironmentConfig>; defaultEnvironment: EnvironmentName; cacheEnabled?: boolean; cacheTTL?: number; autoDiscovery?: boolean; } export interface ApiDiscoveryResult { environment: EnvironmentName; endpoints: Array<{ path: string; method: string; description?: string; parameters?: Array<{ name: string; in: 'path' | 'query' | 'header' | 'body'; required?: boolean; type?: string; }>; }>; timestamp: string; } //# sourceMappingURL=resources.d.ts.map