Skip to main content
Glama
meowrain

Cambridge Dictionary MCP Server

by meowrain

lookup_word

Look up word definitions, pronunciations, and example sentences from Cambridge Dictionary to understand word meanings and usage.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
wordYesThe word to look up

Implementation Reference

  • 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;
      }
    }
  • 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;
        }
      }
    );
  • Zod schema defining the input parameter 'word' for the lookup_word tool.
    { word: z.string().min(1).describe("The word to look up") },
  • 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/";
Install Server

Other Tools

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/meowrain/mcp-server-cambridge-dict'

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