项目简介

Intlayer是一个开源的、基于组件的国际化(i18n)工具包,集成了AI驱动的翻译和内容管理系统(CMS)。它为Web和移动应用提供现代化的i18n解决方案,支持多种前端框架。除了提供开发者工具,Intlayer还包含一个MCP(Model Context Protocol)服务器,旨在为LLM(大型语言模型)客户端提供标准化的上下文信息和功能,从而实现IDE自动化和更智能的国际化工作流。

主要功能点

  • 多语言资源托管: 负责托管和管理多语言内容资源,例如翻译字典、文本片段和Markdown格式的文档,并提供统一的数据访问能力。
  • AI驱动工具集成: 注册并执行与国际化相关的AI工具(如AI翻译、内容生成),允许LLM客户端调用这些外部功能来处理多语言内容。
  • Prompt模板定义: 支持定义和渲染可定制的Prompt模板,使LLM客户端能够以结构化和一致的方式与Intlayer服务器交互,获取定制化的LLM交互模式。
  • JSON-RPC通信: MCP服务器通过JSON-RPC协议与LLM客户端通信,接收并处理读取资源、调用工具、获取Prompt等请求,并返回相应的JSON-RPC响应。
  • IDE自动化支持: 作为IDE自动化环境的一部分,帮助开发人员在开发环境中实现无缝的内容管理和国际化工作流,例如实时翻译建议或内容同步。

安装步骤

Intlayer MCP服务器通常作为独立的服务运行,或者作为更大应用(如Intlayer CMS后端)的一部分。其核心功能由'@intlayer/backend'包提供。

  1. 初始化Intlayer项目: 在您的项目中(通常是前端应用,如Next.js、React或Vite),安装Intlayer核心库和相应的框架集成包。
    npm install intlayer react-intlayer # 或其他框架包,如next-intlayer
  2. 配置Intlayer: 创建或修改'intlayer.config.ts'文件,用于配置国际化、AI服务和后端连接等。MCP服务器的连接信息通常在这里指定。
    // intlayer.config.ts (示例配置,具体内容请参考官方文档)
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      internationalization: {
        locales: [Locales.ENGLISH, Locales.FRENCH],
        defaultLocale: Locales.ENGLISH,
      },
      // 启用编辑器功能,这可能涉及到MCP服务器
      editor: {
        enabled: true,
        // 这里配置Intlayer后端服务的URL,MCP服务器是其一部分
        backendURL: process.env.NEXT_PUBLIC_BACKEND_URL, 
      },
      // 如果使用AI翻译,需要配置API密钥
      ai: {
        apiKey: process.env.OPENAI_API_KEY,
      },
      // 其他构建和日志配置
    };
    
    export default config;
  3. 部署和启动MCP服务器: Intlayer的MCP服务器功能由其后端服务实现。您需要部署包含'@intlayer/backend'的Node.js服务。具体部署方式可能包括:
    • 作为独立的Node.js应用启动。
    • 通过Docker容器部署。
    • 作为Next.js应用的'serverExternalPackages'的一部分进行打包和部署(如仓库中的'apps/website'所示)。 请务必查阅Intlayer的官方文档,特别是关于 MCP Server 的说明,以获取最准确的部署和启动指令。

服务器配置(MCP客户端使用)

MCP客户端(例如VSCode插件或其他LLM集成工具)需要知道如何启动或连接到Intlayer MCP服务器。以下是一个JSON格式的配置示例,描述了客户端如何启动本地的Intlayer MCP服务器。请根据您实际的部署环境调整其中的路径和参数。

{
  "server_name": "Intlayer MCP Server",
  "command": "node",
  "args": [
    "./node_modules/@intlayer/backend/dist/index.js",
    "--port", "8080",
    "--config", "./intlayer.config.js"
  ]
}

参数注释:

  • 'server_name': MCP服务器的识别名称,方便客户端识别。
  • 'command': 启动MCP服务器的可执行文件或命令,例如'node'。
  • 'args': 传递给'command'的参数列表。
    • './node_modules/@intlayer/backend/dist/index.js': 这是Intlayer后端服务的启动脚本路径,假定'@intlayer/backend'包已安装并在'node_modules'中,且已编译到'dist'目录。
    • '--port 8080': 服务器监听的端口,例如'8080'。请确保与服务器实际监听的端口一致。
    • '--config ./intlayer.config.js': 指定Intlayer的配置文件路径,该文件可能包含AI密钥、CMS连接信息等,用于服务器初始化。

基本使用方法(LLM应用与MCP服务器交互)

LLM应用作为MCP客户端,通过发送标准JSON-RPC请求与Intlayer MCP服务器进行交互。

1. 请求多语言资源示例: LLM客户端可以向MCP服务器发送一个JSON-RPC请求,以获取特定语言的翻译文本。

  • 请求(示例:获取法文的“Home”标题):
    {
      "jsonrpc": "2.0",
      "method": "mcp/getResource",
      "params": {
        "resourceId": "home.title",
        "locale": "fr"
      },
      "id": 1
    }
  • 响应(服务器返回法文翻译):
    {
      "jsonrpc": "2.0",
      "result": {
        "value": "Accueil"
      },
      "id": 1
    }

2. 调用AI翻译工具示例: LLM客户端可以通过MCP服务器调用AI翻译工具,对一段文本进行翻译。

  • 请求(示例:将英文文本翻译成西班牙文):
    {
      "jsonrpc": "2.0",
      "method": "mcp/callTool",
      "params": {
        "toolId": "aiTranslate",
        "inputs": {
          "text": "Hello, world!",
          "targetLocale": "es"
        }
      },
      "id": 2
    }
  • 响应(服务器返回AI翻译结果):
    {
      "jsonrpc": "2.0",
      "result": {
        "translation": "¡Hola, mundo!"
      },
      "id": 2
    }

具体的方法名('method')和参数('params')应参考Intlayer MCP服务器的API文档。

信息

分类

AI与计算