bottlenecks-mcp-server
Version:
Model Context Protocol server for Bottlenecks database - enables AI agents like Claude to interact with bottleneck data
118 lines • 2.8 kB
TypeScript
/**
* MCP Server Types and Interfaces
* Defines the structure for Model Context Protocol integration
*/
export interface MCPConfig {
apiBaseUrl: string;
supabaseUrl: string;
supabaseKey: string;
defaultTimeout?: number;
}
export interface MCPToolResult {
content: Array<{
type: 'text';
text: string;
}>;
isError?: boolean;
}
export interface MCPTool {
type: 'call_tool';
name: string;
description: string;
inputSchema: {
type: 'object';
properties: Record<string, any>;
required?: string[];
};
handler: (args: any) => Promise<MCPToolResult>;
}
export interface BottleneckSchema {
id: string;
title: string;
slug: string;
description: string;
tags: string[];
is_public: boolean;
created_at: string;
updated_at: string;
author_id: string;
organization_id?: string;
file_attachments?: FileAttachment[];
}
export interface FileAttachment {
id: string;
filename: string;
original_filename: string;
file_path: string;
bucket_name: string;
file_type: string;
file_size: number;
mime_type: string;
upload_type: string;
description?: string;
metadata?: any;
is_public: boolean;
processing_status: string;
created_at: string;
}
export interface SearchFilters {
tags?: string[];
author_id?: string;
organization_id?: string;
is_public?: boolean;
approval_status?: 'approved' | 'pending' | 'rejected' | 'draft';
include_unapproved?: boolean;
created_after?: string;
created_before?: string;
has_attachments?: boolean;
}
export interface PaginationParams {
page?: number;
limit?: number;
offset?: number;
}
export interface APIResponse<T = any> {
success: boolean;
data?: T | null;
error?: string | null;
message?: string;
pagination?: {
page: number;
limit: number;
total: number;
hasMore: boolean;
};
}
export interface CreateBottleneckData {
title: string;
description: string;
tags?: string[];
is_public?: boolean;
organization_id?: string;
}
export interface UpdateBottleneckData {
title?: string;
description?: string;
tags?: string[];
is_public?: boolean;
organization_id?: string;
}
export interface FileUploadData {
file: File | Buffer;
filename: string;
card_id: string;
upload_type: 'attachment' | 'research_data' | 'image' | 'reference_doc';
description?: string;
is_public?: boolean;
}
export interface ValidationError {
field: string;
message: string;
code: string;
}
export interface ValidationResult {
valid: boolean;
errors: ValidationError[];
warnings?: ValidationError[];
}
//# sourceMappingURL=mcp.d.ts.map