Skip to main content
Glama

summarize

Generate concise summaries from text input, controlling length and language to extract key information quickly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
textYes
maxLengthNo
languageNoen

Implementation Reference

  • The handler function passed to server.tool('summarize') that wraps the summary generation with error handling and formats the response.
    async ({ text, maxLength, language }) => { return wrapToolExecution(async () => { const options: SummarizeOptions = { text, maxLength, language }; const summary = await generateSummary(options); return { content: [{ type: "text" as const, text: summary }] }; }, { errorCode: ERROR_CODES.AI_OPERATION, context: "Failed to generate summary", rethrow: true }); } );
  • Zod input schema for the summarize tool defining parameters: text (required string), maxLength (optional number), language (optional string).
    { text: z.string().min(1), maxLength: z.number().optional().default(DEFAULTS.MAX_SUMMARY_LENGTH), language: z.string().optional().default(DEFAULTS.SUMMARY_LANGUAGE) },
  • The registration function that defines and registers the 'summarize' tool with the MCP server, including schema and handler.
    export function registerSummarizeTool(server: McpServer): void { server.tool("summarize", { text: z.string().min(1), maxLength: z.number().optional().default(DEFAULTS.MAX_SUMMARY_LENGTH), language: z.string().optional().default(DEFAULTS.SUMMARY_LANGUAGE) }, async ({ text, maxLength, language }) => { return wrapToolExecution(async () => { const options: SummarizeOptions = { text, maxLength, language }; const summary = await generateSummary(options); return { content: [{ type: "text" as const, text: summary }] }; }, { errorCode: ERROR_CODES.AI_OPERATION, context: "Failed to generate summary", rethrow: true }); } ); }
  • src/index.ts:68-68 (registration)
    Invocation of the registerSummarizeTool function to add the tool to the main MCP server instance.
    registerSummarizeTool(server);
  • Helper function that implements the core summarization logic using Google Gemini 1.5 Pro via the ai-sdk.
    async function generateSummary(options: SummarizeOptions): Promise<string> { const { text, maxLength, language } = options; const prompt = `Please summarize the following text in ${language}, keeping the summary within ${maxLength} characters:\n\n${text}`; const model = google.chat("gemini-1.5-pro"); const result = await generateText({ model: model, prompt: prompt, maxTokens: maxLength, temperature: DEFAULTS.AI_TEMPERATURE }); return result.text; }
  • TypeScript interface defining the shape of SummarizeOptions used in the tool.
    export interface SummarizeOptions { text: string; maxLength: number; language: string; }

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/ishuru/open-mcp'

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