Skip to main content
Glama
oofengoo

MCP-Serve 多语言翻译服务

by oofengoo

translationI18n

Translate text between languages using the MCP-Serve multilingual translation service. This tool processes input text through external APIs for automatic language conversion and resource management.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
inputYes

Implementation Reference

  • The handler function for the translationI18n tool. It uses regex to find content between ## markers, prepares params, optionally translates to English if port==5500, calls geti18n API, replaces the markers with aliases, and returns a text content block.
    async ({ input }) => {
      // 匹配所有 ##...## 的内容
      const regex = /##([\s\S]+?)##/g;
      let matches = input.matchAll(regex);
      let result = input;
      for (const match of matches) {
        const value = match[1];
        if (!value) continue;
        let params: Record<string, any> = {
          language: 1,
          autoAlias: true,
          value: value,
        };
        if (port === "5500") {
          params.valueEn = await TranslateToEn(value);
        }
        // 调用多语言接口
        const alias = await geti18n(params);
        if (alias) {
          result = result.replace(match[0], alias);
        }
      }
      return {
        content: [
          {
            type: "text",
            text: result,
          },
        ],
      };
    }
  • Input schema definition using Zod: expects a single string input.
    {
      input: z.string(),
    },
  • src/index.ts:13-49 (registration)
    Registration of the translationI18n tool on the McpServer instance.
    server.tool(
      "translationI18n",
      {
        input: z.string(),
      },
      async ({ input }) => {
        // 匹配所有 ##...## 的内容
        const regex = /##([\s\S]+?)##/g;
        let matches = input.matchAll(regex);
        let result = input;
        for (const match of matches) {
          const value = match[1];
          if (!value) continue;
          let params: Record<string, any> = {
            language: 1,
            autoAlias: true,
            value: value,
          };
          if (port === "5500") {
            params.valueEn = await TranslateToEn(value);
          }
          // 调用多语言接口
          const alias = await geti18n(params);
          if (alias) {
            result = result.replace(match[0], alias);
          }
        }
        return {
          content: [
            {
              type: "text",
              text: result,
            },
          ],
        };
      }
    );
  • Helper function that calls the /MultiLanguageResource/AddResource API to get the i18n alias for given params.
    async function geti18n(params: Record<string, any>) {
      
      const res = await http.post(
        "/MultiLanguageResource/AddResource",
        params,
        baseConfig
      );
      if (res.Data) {
        return res.Data.ResourceAlias;
      } else {
        return "";
      }
    }
  • Helper function that translates text to English via API, used conditionally in handler.
    async function TranslateToEn(text: string) {
      const res = await http.get(
        "/MultiLanguageResource/TranslateToEn",
        { text },
        baseConfig
      );
      return res;
    }
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/oofengoo/mcp-serve-learn'

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