mcp-crawl4ai-ts
Version:
TypeScript MCP server for Crawl4AI - web crawling and content extraction
134 lines • 4.24 kB
TypeScript
import { AxiosInstance } from 'axios';
import { Crawl4AIService } from './crawl4ai-service.js';
import { ContentHandlers } from './handlers/content-handlers.js';
import { UtilityHandlers } from './handlers/utility-handlers.js';
import { CrawlHandlers } from './handlers/crawl-handlers.js';
export declare class Crawl4AIServer {
private server;
protected axiosClient: AxiosInstance;
protected service: Crawl4AIService;
private sessions;
private serverName;
private serverVersion;
private contentHandlers;
private sessionHandlers;
private utilityHandlers;
private crawlHandlers;
constructor(baseUrl: string, apiKey: string, serverName?: string, serverVersion?: string);
/**
* Helper method to validate arguments and execute handler with consistent error formatting
* Preserves the exact error message format that LLMs rely on
*/
private validateAndExecute;
private setupHandlers;
protected getMarkdown(options: Parameters<ContentHandlers['getMarkdown']>[0]): Promise<{
content: {
type: string;
text: string;
}[];
}>;
protected captureScreenshot(options: Parameters<ContentHandlers['captureScreenshot']>[0]): Promise<{
content: ({
type: string;
data: string;
mimeType: string;
text?: undefined;
} | {
type: string;
text: string;
data?: undefined;
mimeType?: undefined;
})[];
}>;
protected generatePDF(options: Parameters<ContentHandlers['generatePDF']>[0]): Promise<{
content: ({
type: string;
resource: {
uri: string;
mimeType: string;
blob: string;
};
text?: undefined;
} | {
type: string;
text: string;
resource?: undefined;
})[];
}>;
protected getHTML(options: Parameters<ContentHandlers['getHTML']>[0]): Promise<{
content: {
type: string;
text: string;
}[];
}>;
protected extractWithLLM(options: Parameters<ContentHandlers['extractWithLLM']>[0]): Promise<{
content: {
type: string;
text: string;
}[];
}>;
protected executeJS(options: Parameters<UtilityHandlers['executeJS']>[0]): Promise<{
content: {
type: string;
text: string;
}[];
}>;
protected extractLinks(options: Parameters<UtilityHandlers['extractLinks']>[0]): Promise<{
content: {
type: string;
text: string;
}[];
}>;
protected batchCrawl(options: Parameters<CrawlHandlers['batchCrawl']>[0]): Promise<{
content: {
type: string;
text: string;
}[];
}>;
protected smartCrawl(options: Parameters<CrawlHandlers['smartCrawl']>[0]): Promise<{
content: {
type: string;
text: string;
}[];
}>;
protected crawlRecursive(options: Parameters<CrawlHandlers['crawlRecursive']>[0]): Promise<{
content: {
type: string;
text: string;
}[];
}>;
protected parseSitemap(options: Parameters<CrawlHandlers['parseSitemap']>[0]): Promise<{
content: {
type: string;
text: string;
}[];
}>;
protected crawl(options: Parameters<CrawlHandlers['crawl']>[0]): Promise<{
content: ({
type: string;
text: string;
data?: undefined;
mimeType?: undefined;
resource?: undefined;
} | {
type: string;
data: string;
mimeType: string;
text?: undefined;
resource?: undefined;
} | {
type: string;
resource: {
uri: string;
mimeType: string;
blob: string;
};
text?: undefined;
data?: undefined;
mimeType?: undefined;
})[];
}>;
set axiosClientForTesting(client: AxiosInstance);
start(): Promise<void>;
}
//# sourceMappingURL=server.d.ts.map