@kyaniiii/google-search-mcp
Version:
MCP server for Google Search with API key rotation
90 lines • 3.43 kB
TypeScript
import { z } from 'zod';
import type { TextContent, ToolAnnotations } from '@modelcontextprotocol/sdk/types.js';
export interface SearchResult {
title: string;
link: string;
snippet: string;
displayLink: string;
}
export interface SearchParams {
query: string;
num?: number;
start?: number;
safe?: string;
lr?: string;
gl?: string;
dateRestrict?: string;
fileType?: string;
siteSearch?: string;
siteSearchFilter?: string;
cr?: string;
exactTerms?: string;
excludeTerms?: string;
orTerms?: string;
rights?: string;
sort?: string;
searchType?: string;
}
export declare const name = "google_search";
export declare const annotations: ToolAnnotations;
export declare const description = "\nPerforms Google searches using the official API with automatic API key rotation.\n\nFeatures:\n- Official Google Web Search\n- Automatic API key rotation\n- Intelligent quota management\n- Multi-language and geolocation support\n\nParameters:\n- query: Search query (required)\n- num: Number of results (1-10, default: 5)\n- start: Starting index (default: 1)\n- safe: SafeSearch (off/active, default: off)\n- lr: Language (ex: lang_fr, lang_en)\n- gl: Country (ex: fr, us, uk)\n\nReturns a JSON list of results with title, link, description and domain.\n";
export declare const inputSchema: z.ZodObject<{
query: z.ZodString;
num: z.ZodOptional<z.ZodNumber>;
start: z.ZodOptional<z.ZodNumber>;
safe: z.ZodOptional<z.ZodEnum<["off", "active"]>>;
lr: z.ZodOptional<z.ZodString>;
gl: z.ZodOptional<z.ZodString>;
dateRestrict: z.ZodOptional<z.ZodString>;
fileType: z.ZodOptional<z.ZodString>;
siteSearch: z.ZodOptional<z.ZodString>;
siteSearchFilter: z.ZodOptional<z.ZodEnum<["i", "e"]>>;
cr: z.ZodOptional<z.ZodString>;
exactTerms: z.ZodOptional<z.ZodString>;
excludeTerms: z.ZodOptional<z.ZodString>;
orTerms: z.ZodOptional<z.ZodString>;
rights: z.ZodOptional<z.ZodString>;
sort: z.ZodOptional<z.ZodString>;
searchType: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
query: string;
sort?: string | undefined;
num?: number | undefined;
start?: number | undefined;
safe?: "off" | "active" | undefined;
lr?: string | undefined;
gl?: string | undefined;
dateRestrict?: string | undefined;
fileType?: string | undefined;
siteSearch?: string | undefined;
siteSearchFilter?: "i" | "e" | undefined;
cr?: string | undefined;
exactTerms?: string | undefined;
excludeTerms?: string | undefined;
orTerms?: string | undefined;
rights?: string | undefined;
searchType?: string | undefined;
}, {
query: string;
sort?: string | undefined;
num?: number | undefined;
start?: number | undefined;
safe?: "off" | "active" | undefined;
lr?: string | undefined;
gl?: string | undefined;
dateRestrict?: string | undefined;
fileType?: string | undefined;
siteSearch?: string | undefined;
siteSearchFilter?: "i" | "e" | undefined;
cr?: string | undefined;
exactTerms?: string | undefined;
excludeTerms?: string | undefined;
orTerms?: string | undefined;
rights?: string | undefined;
searchType?: string | undefined;
}>;
export declare const execute: (params: SearchParams) => Promise<{
content: TextContent[];
isError: boolean;
}>;
//# sourceMappingURL=search.d.ts.map