lookup_word
Look up word definitions, pronunciations, and example sentences from Cambridge Dictionary to understand word meanings and usage.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| word | Yes | The word to look up |
Implementation Reference
- src/index.ts:49-80 (handler)The handler function for the 'lookup_word' tool. It makes an API request to fetch the dictionary entry for the given word using axios, formats the response as MCP content, and handles errors appropriately.async ({ word }) => { try { const response = await axios.get<DictionaryEntry>( `${API_BASE_URL}${word}` ); const data = response.data; // 符合MCP工具响应格式 return { content: [ { type: "text", text: JSON.stringify(data, null, 2), }, ], }; } catch (error) { if (axios.isAxiosError(error)) { // 符合MCP错误响应格式 return { content: [ { type: "text", text: `Dictionary API error: ${error.message}`, }, ], isError: true, // 标记为错误响应 }; } throw error; } }
- src/index.ts:11-23 (schema)TypeScript interface defining the structure of the dictionary API response used in the lookup_word tool.interface DictionaryEntry { word: string; pronunciation: string; definition: Array<{ pos: string; text: string; translation: string; example: Array<{ text: string; translation: string; }>; }>; }
- src/index.ts:46-81 (registration)Registers the 'lookup_word' tool on the McpServer instance, specifying the input schema with Zod and the handler function.this.server.tool( "lookup_word", { word: z.string().min(1).describe("The word to look up") }, async ({ word }) => { try { const response = await axios.get<DictionaryEntry>( `${API_BASE_URL}${word}` ); const data = response.data; // 符合MCP工具响应格式 return { content: [ { type: "text", text: JSON.stringify(data, null, 2), }, ], }; } catch (error) { if (axios.isAxiosError(error)) { // 符合MCP错误响应格式 return { content: [ { type: "text", text: `Dictionary API error: ${error.message}`, }, ], isError: true, // 标记为错误响应 }; } throw error; } } );
- src/index.ts:48-48 (schema)Zod schema defining the input parameter 'word' for the lookup_word tool.{ word: z.string().min(1).describe("The word to look up") },
- src/index.ts:8-8 (helper)Constant defining the base URL for the dictionary API used by the lookup_word tool.const API_BASE_URL = "https://dict.meowrain.cn/api/dictionary/en-cn/";