Skip to main content

Connect your AI

Register the easyi18n MCP server in your client with one of the snippets below. Each one starts the server with npx -y @easyi18n.com/cli@0.13.0-rc.6 mcp, which needs Node.js and no Dart SDK. The version is pinned: the snippet keeps running the CLI that printed it until you print it again after an upgrade. Replace eik_YOUR_AGENT_KEY with an agent key, or keep the key in your environment where the snippet reads it from there.

Before 0.13.0

The npm package @easyi18n.com/cli is published with CLI 0.13.0. Until then, install the CLI with Dart and print the Dart variant of a snippet with easyi18n mcp config --client <client> --runner dart. mcp config is also new in 0.13.0; with 0.12.0, use dart pub global run easyi18n_cli:easyi18n mcp as the command in the snippets below.

The CLI prints each snippet and where it goes:

easyi18n mcp config --client cursor

Clients: claude-code, claude-desktop, cursor, vscode, codex, gemini, windsurf, zed and generic. --runner dart prints the variant for dart pub global run. The command never reads your key.

On native Windows, a client that starts servers without a shell cannot find npx. Claude Code documents wrapping the command as cmd /c npx ... there.

Claude Code​

Run it in a terminal in the project. It registers the server in local scope, which stays out of the repository. The Claude Code plugin is the alternative, with skills and a key setting.

claude mcp add --env EASYI18N_TOKEN=eik_YOUR_AGENT_KEY --transport stdio easyi18n -- npx -y @easyi18n.com/cli@0.13.0-rc.6 mcp

Claude Desktop​

Merge it into claude_desktop_config.json (Settings, Developer, Edit Config) and restart Claude. Claude Desktop has no project folder, so the agent names one with the project_dir argument.

{
"mcpServers": {
"easyi18n": {
"command": "npx",
"args": [
"-y",
"@easyi18n.com/cli@0.13.0-rc.6",
"mcp"
],
"env": {
"EASYI18N_TOKEN": "eik_YOUR_AGENT_KEY"
}
}
}
}

Cursor​

Merge it into .cursor/mcp.json in the project. Cursor reads EASYI18N_TOKEN from the environment it was started in, so the file holds no key and can be committed.

{
"mcpServers": {
"easyi18n": {
"command": "npx",
"args": [
"-y",
"@easyi18n.com/cli@0.13.0-rc.6",
"mcp"
],
"env": {
"EASYI18N_TOKEN": "${env:EASYI18N_TOKEN}",
"EASYI18N_PROJECT_DIR": "${workspaceFolder}"
}
}
}
}

VS Code​

Merge it into .vscode/mcp.json in the project. VS Code asks for the key once and stores it.

{
"inputs": [
{
"type": "promptString",
"id": "easyi18n-token",
"description": "easyi18n AI agent key (eik_)",
"password": true
}
],
"servers": {
"easyi18n": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@easyi18n.com/cli@0.13.0-rc.6",
"mcp"
],
"env": {
"EASYI18N_TOKEN": "${input:easyi18n-token}",
"EASYI18N_PROJECT_DIR": "${workspaceFolder}"
}
}
}
}

Codex CLI​

Append it to ~/.codex/config.toml. Codex forwards EASYI18N_TOKEN from the shell it runs in. startup_timeout_sec gives the first npx download time to finish: Codex waits 10 seconds by default.

[mcp_servers.easyi18n]
command = "npx"
args = ["-y", "@easyi18n.com/cli@0.13.0-rc.6", "mcp"]
env_vars = ["EASYI18N_TOKEN"]
startup_timeout_sec = 60
required = true
omit_tools_from = ["deferred"]

Gemini CLI​

Merge it into .gemini/settings.json in the project. Gemini CLI reads EASYI18N_TOKEN from the shell it runs in.

{
"mcpServers": {
"easyi18n": {
"command": "npx",
"args": [
"-y",
"@easyi18n.com/cli@0.13.0-rc.6",
"mcp"
],
"env": {
"EASYI18N_TOKEN": "$EASYI18N_TOKEN"
}
}
}
}

Windsurf​

Merge it into Windsurf's mcp_config.json.

{
"mcpServers": {
"easyi18n": {
"command": "npx",
"args": [
"-y",
"@easyi18n.com/cli@0.13.0-rc.6",
"mcp"
],
"env": {
"EASYI18N_TOKEN": "eik_YOUR_AGENT_KEY"
}
}
}
}

Zed​

Merge it into Zed's user settings.json.

{
"context_servers": {
"easyi18n": {
"command": "npx",
"args": [
"-y",
"@easyi18n.com/cli@0.13.0-rc.6",
"mcp"
],
"env": {
"EASYI18N_TOKEN": "eik_YOUR_AGENT_KEY"
}
}
}
}

Other clients​

Most MCP clients read this mcpServers shape. Merge it into the client's MCP configuration.

{
"mcpServers": {
"easyi18n": {
"command": "npx",
"args": [
"-y",
"@easyi18n.com/cli@0.13.0-rc.6",
"mcp"
],
"env": {
"EASYI18N_TOKEN": "eik_YOUR_AGENT_KEY"
}
}
}
}

Check the connection​

Ask the agent to call status. It answers with the project, its languages and its family. A no_credential error means the key did not reach the server: check the client configuration and restart the client.