import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import type { WikiRandomResponse } from "../types.js";
import { queryWikipedia, jsonResponse, errorResponse } from "../api.js";
export function registerRandomTool(server: McpServer): void {
server.tool(
"wiki_random",
"Get random Wikipedia articles",
{
count: z.number().optional().default(5).describe("Number of random articles (default 5)"),
},
async ({ count }) => {
try {
const data = await queryWikipedia<WikiRandomResponse>({
action: "query",
list: "random",
rnnamespace: "0",
rnlimit: String(count),
});
const articles = data.query?.random?.map((article) => ({
title: article.title,
id: article.id,
})) ?? [];
return jsonResponse(articles);
} catch (error) {
return errorResponse(error);
}
}
);
}