UILM MCP Server
MCP (Model Context Protocol) server for the SELISE Blocks UILM (UI Language Management) API. Provides translation key management tools for Claude Code, Cursor, and any MCP-compatible client.
Features
- Automatic Bearer token management (caches + auto-refreshes on 15-min expiry)
- Module name resolution (use
"auth"instead of UUIDs) - Batch key creation with automatic fallback
- 13 tools covering modules, languages, and translation keys
Quick Start
Option A: Interactive setup (recommended)
npx uilm-mcp-server --init
This walks you through entering credentials and writes the config directly to your Claude Code or Cursor settings.
Option B: Manual config
Add to your project's .mcp.json (Claude Code) or Cursor MCP settings:
{
"mcpServers": {
"uilm": {
"command": "npx",
"args": ["-y", "uilm-mcp-server"],
"env": {
"UILM_API_BASE_URL": "https://api.seliseblocks.com",
"UILM_PROJECT_KEY": "your-project-key",
"UILM_CLIENT_ID": "your-client-id",
"UILM_CLIENT_SECRET": "your-client-secret"
}
}
}
}
No clone or build step required -- npx handles everything.
Option C: Using a .env file
Create a .env file in your project root (make sure it's in .gitignore):
UILM_API_BASE_URL=https://api.seliseblocks.com
UILM_PROJECT_KEY=your-project-key
UILM_CLIENT_ID=your-client-id
UILM_CLIENT_SECRET=your-client-secret
Then use a simpler MCP config without the env block:
{
"mcpServers": {
"uilm": {
"command": "npx",
"args": ["-y", "uilm-mcp-server"]
}
}
}
Getting Your Credentials
You need four values from the SELISE Blocks platform.
API Base URL
https://api.seliseblocks.com
Project Key
- Log in to the SELISE Blocks Console
- Select your project
- Go to Settings (gear icon)
- Copy the Project Key (starts with
P)
Client ID and Client Secret
These are OAuth credentials used for machine-to-machine authentication:
- In the SELISE Blocks Console, navigate to your project
- Go to IAM > Clients (or Settings > API Clients, depending on your console version)
- Click Create Client (or use an existing one)
- Set the grant type to Client Credentials
- Copy the Client ID (UUID format) and Client Secret
Note: If you don't see the Clients section, ask your project admin to create a client credential for you or grant you access to IAM settings.
Environment Variables
| Variable | Description | |----------|-------------| | UILM_API_BASE_URL | SELISE Blocks API base URL | | UILM_PROJECT_KEY | Project key (starts with P, used as x-blocks-key header) | | UILM_CLIENT_ID | OAuth client ID (UUID format) | | UILM_CLIENT_SECRET | OAuth client secret |
Tools
Auth
| Tool | Description | |------|-------------| | uilm_authenticate | Force-refresh Bearer token and check auth status |
Modules
| Tool | Description | |------|-------------| | uilm_list_modules | List all modules with IDs | | uilm_create_module | Create a new translation module |
Languages
| Tool | Description | |------|-------------| | uilm_list_languages | List all configured languages |
Keys (Read)
| Tool | Description | |------|-------------| | uilm_get_keys | Get published translations for a module + language | | uilm_search_keys | Search keys with filters and pagination | | uilm_get_key | Get a single key by item ID | | uilm_get_keys_by_names | Look up keys by name (check existence) |
Keys (Write)
| Tool | Description | |------|-------------| | uilm_create_key | Create a single translation key | | uilm_create_keys | Batch create multiple keys | | uilm_update_key | Update an existing key's translations |
Keys (Delete / Rollback)
| Tool | Description | |------|-------------| | uilm_delete_key | Delete a key by item ID (irreversible) | | uilm_rollback_key | Rollback a key to previous state |
Usage Examples
Once configured, ask your AI assistant:
- "List all UILM modules"
- "Create a translation key LOGIN_TITLE in the auth module with en-US: 'Login' and de-DE: 'Anmelden'"
- "Create these keys in the dashboard module: WELCOME_MESSAGE (Welcome / Willkommen), LOGOUT (Logout / Abmelden)"
- "Search for keys containing 'LOGIN'"
- "Get all English translations for the common module"
- "Delete the key with ID abc-123"
CLI
npx uilm-mcp-server # Start the MCP server (stdio transport)
npx uilm-mcp-server --init # Interactive setup wizard
npx uilm-mcp-server --help # Show help
npx uilm-mcp-server --version # Show version
Development
git clone https://github.com/sohanuzzaman/uilm-mcp-server.git
cd uilm-mcp-server
npm install # Also runs build via prepare script
npm run dev # Run with tsx (hot TypeScript execution)
npm run build # Compile TypeScript
npm start # Run compiled version
Verify with MCP Inspector
UILM_API_BASE_URL=https://api.seliseblocks.com \
UILM_PROJECT_KEY=your-project-key \
UILM_CLIENT_ID=your-client-id \
UILM_CLIENT_SECRET=your-client-secret \
npx @modelcontextprotocol/inspector node dist/index.js





