Skip to main content
Glama
traghav
by traghav
metabase-types.ts3.34 kB
// Metabase type definitions export interface MetabaseFieldResource { uri?: string; // e.g., metabase://database/1/table/2/field/3 id: number; name: string; display_name?: string; table_id?: number | string; // string for card-based models like 'card__XYZ' base_type: string; effective_type?: string; semantic_type?: string | null; description?: string | null; visibility_type?: string; fk_target_field_id?: number | null; schema?: string; // ... other relevant fields from the detailed spec } export interface MetabaseTableResource { uri?: string; // e.g., metabase://database/1/table/2 or metabase://model/card__123 id: number | string; name: string; display_name?: string; db_id: number; schema?: string | null; schema_name?: string | null; description?: string | null; fields?: MetabaseFieldResource[]; // Could be stubs (URIs) or full objects depending on context fks?: any[]; // Define FK structure entity_type?: string | null; // ... other relevant fields } export interface MetabaseDatabaseResource { uri?: string; // e.g., metabase://database/1 id: number; name: string; engine: string; description?: string | null; tables?: MetabaseTableResource[]; // Stubs or full objects schemas?: string[]; // ... other relevant fields } export interface MetabaseCardResource { uri?: string; // e.g., metabase://card/1 id: number; name: string; display_name?: string; description?: string | null; display: string; collection_id?: number | null; database_id?: number; dataset_query: any; // MBQL, can be complex visualization_settings: any; result_metadata?: MetabaseFieldResource[]; // Describes output columns parameters?: any[]; // Card parameter definitions archived: boolean; type?: "question" | "metric" | "model"; // ... other relevant fields } export interface MetabaseDashboardCardResource { // For cards *on* a dashboard id: number; // dashcard_id card_id?: number | null; card?: MetabaseCardResource; // Embedded card details size_x: number; size_y: number; row: number; col: number; visualization_settings?: any; parameter_mappings?: any[]; // ... other relevant fields } export interface MetabaseDashboardResource { uri?: string; // e.g., metabase://dashboard/1 id: number; name: string; display_name?: string; description?: string | null; collection_id?: number | null; parameters?: any[]; // Dashboard filter definitions dashcards?: MetabaseDashboardCardResource[]; tabs?: any[]; archived: boolean; // ... other relevant fields } export interface MetabaseCollectionResource { uri?: string; // e.g., metabase://collection/1 or metabase://collection/root id: number | "root"; name: string; description?: string | null; parent_id?: number | null; personal_owner_id?: number | null; // ... other relevant fields } // Define output structure for query results export interface MetabaseQueryResultData { cols: Array<{ name: string; display_name: string; base_type: string; [key: string]: any }>; rows: any[][]; row_count: number; status: string; // ... other common fields like database_id, query_time_ms } export interface MetabaseQueryResult { data: MetabaseQueryResultData; status: string; // ... other top-level fields from Metabase query responses }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/traghav/metabase-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server