request_baike
Fetch and render Baidu Baike article discussions to access Chinese encyclopedia content and generate readable analysis from structured data.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | 百度百科URL,例如:https://baike.baidu.com/item/DeepSeek |
Implementation Reference
- src/index.ts:32-54 (handler)The main handler function for the "request_baike" tool. It takes a Baidu Baike URL, fetches discussions using BaikeClient, and returns the JSON-formatted discussions as text content or an error message.async ({ url }: { url: string }) => { try { const discussions = await baikeClient.getDiscussions(url); return { content: [ { type: "text", text: JSON.stringify(discussions, null, 2) } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : "获取百科讨论时发生未知错误"; return { content: [{ type: "text", text: errorMessage }], isError: true }; } }
- src/index.ts:31-31 (schema)Input schema definition for the "request_baike" tool using Zod, requiring a single 'url' parameter of type string.{ url: z.string().describe("百度百科URL,例如:https://baike.baidu.com/item/DeepSeek") },
- src/index.ts:29-55 (registration)MCP server tool registration for "request_baike", including the tool name, input schema, and handler function.server.tool( "request_baike", { url: z.string().describe("百度百科URL,例如:https://baike.baidu.com/item/DeepSeek") }, async ({ url }: { url: string }) => { try { const discussions = await baikeClient.getDiscussions(url); return { content: [ { type: "text", text: JSON.stringify(discussions, null, 2) } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : "获取百科讨论时发生未知错误"; return { content: [{ type: "text", text: errorMessage }], isError: true }; } } );
- src/baike-client.ts:170-191 (helper)BaikeClient.getDiscussions helper method: parses URL to lemmaId, makes API request to fetch Baike discussions, handles errors.async getDiscussions(lemmaIdOrUrl: string): Promise<BaikeDiscussionResponse> { const lemmaId = this.parseLemmaIdOrUrl(lemmaIdOrUrl); try { const response = await axios.get<BaikeDiscussionResponse>( `${this.apiBaseUrl}${this.discussionApiPath}?lemmaId=${lemmaId}`, { headers: { "Content-Type": "application/json", cookie: this.cookie, }, } ); return response.data; } catch (error: unknown) { if (axios.isAxiosError(error) && error.response) { throw new Error(`百度百科API错误: ${error.response.status} - ${JSON.stringify(error.response.data)}`); } throw error; } }