import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import { fetchSummary, jsonResponse, errorResponse, WikipediaApiError } from "../api.js";
export function registerSummaryTool(server: McpServer): void {
server.tool(
"wiki_get_summary",
"Get a summary of a Wikipedia article",
{
title: z.string().describe("Article title"),
},
async ({ title }) => {
try {
const data = await fetchSummary(title);
return jsonResponse({
title: data.title,
description: data.description,
extract: data.extract,
url: data.content_urls?.desktop?.page,
});
} catch (error) {
if (error instanceof WikipediaApiError && error.statusCode === 404) {
return jsonResponse({ error: `Article "${title}" not found` });
}
return errorResponse(error);
}
}
);
}