项目简介
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'包提供。
- 初始化Intlayer项目: 在您的项目中(通常是前端应用,如Next.js、React或Vite),安装Intlayer核心库和相应的框架集成包。
npm install intlayer react-intlayer # 或其他框架包,如next-intlayer - 配置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; - 部署和启动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与计算