@the_cfdude/productboard-mcp
Version:
Model Context Protocol server for Productboard REST API with dynamic tool loading
33 lines (32 loc) • 1.15 kB
TypeScript
import { MultiInstanceProductboardConfig, ProductboardInstanceConfig } from '../types.js';
import { AxiosInstance } from 'axios';
declare module 'axios' {
interface AxiosRequestConfig {
toolName?: string;
}
}
export interface ToolContext {
config: MultiInstanceProductboardConfig;
instance: ProductboardInstanceConfig;
workspaceId?: string;
axios: AxiosInstance;
}
/**
* Create tool context with configuration and HTTP client
*/
export declare function createToolContext(instanceName?: string, workspaceId?: string): ToolContext;
/**
* Wrapper function to handle common tool patterns
*/
export declare function withContext<T>(handler: (context: ToolContext) => Promise<T>, instanceName?: string, workspaceId?: string, toolName?: string): Promise<T>;
/**
* Helper to format API responses consistently
*/
export declare function formatResponse(data: any, includeRaw?: boolean): string | {
formatted: string;
raw: any;
};
/**
* Helper to handle pagination
*/
export declare function handlePagination<T>(context: ToolContext, endpoint: string, params?: Record<string, any>, maxPages?: number): Promise<T[]>;