# MCP server

> Connect an MCP client such as Claude or Cursor to the FluentC MCP server, so an agent can translate on its own. Server URL, authentication, client configuration and troubleshooting.

Source: https://www.fluentc.ai/docs/integrations/mcp/

The FluentC MCP server gives any agent that speaks the [Model Context Protocol](https://modelcontextprotocol.io) a translation tool. The agent decides when to translate; you don't write glue code.

- **Server URL:** `https://mcp.fluentc.ai`
- **Authentication:** your FluentC API key in the `Authorization` header, sent as-is with no `Bearer` prefix, the same as the REST API.
- **Plan and languages:** the same as the REST API. The server uses your key's languages and plan.

## Connect a client

You need an [API key](https://dashboard.fluentc.io/users/sign_up). Add FluentC as a remote MCP server in your client.

### Claude Code

```bash
claude mcp add --transport http fluentc https://mcp.fluentc.ai \
  --header "Authorization: YOUR_FLUENTC_KEY"
```

### Cursor and other clients with a JSON config

Most MCP clients take a JSON entry like this (Cursor reads it from `.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "fluentc": {
      "url": "https://mcp.fluentc.ai",
      "headers": { "Authorization": "YOUR_FLUENTC_KEY" }
    }
  }
}
```

Keep the key out of files you commit. Use your client's support for environment variables or a secrets store where it has one.

### Any other client

Point it at `https://mcp.fluentc.ai` as a remote HTTP server and set one request header, `Authorization`, to your key. Check your client's documentation for where headers go.

## Check the connection

The [MCP Inspector](https://github.com/modelcontextprotocol/inspector) connects to a server and lists what it offers:

```bash
npx @modelcontextprotocol/inspector
```

Enter `https://mcp.fluentc.ai` as the server URL, add the `Authorization` header, and connect. You should see FluentC's tools listed.

## What the agent sees

When a client connects, the server lists its tools, each with a name, a description and an input schema. Your client shows the current set and the agent chooses among them, so the tool list here never goes stale. The tools wrap the same operations as the [REST API](https://www.fluentc.ai/docs/api/translate.md), so the same rules apply:

- Languages are lowercase two- or three-letter codes, and must be enabled for your key. See [Languages](https://www.fluentc.ai/docs/api/languages.md).
- Real-time translation needs the Real-time plan. Batch needs a job to be polled for its result. See [Concepts](https://www.fluentc.ai/docs/concepts.md).
- Repeated text is answered from [translation memory](https://www.fluentc.ai/docs/concepts.md#translation-memory).

## Prompting an agent

Agents translate best when the request is specific.

- Name the target language: "translate this into Japanese" or "into `ja`".
- Say what the text is if it matters: UI label, legal notice, chat message.
- For a lot of text, ask for batch mode and say it can wait for the result.

## Troubleshooting

| Symptom | Likely cause |
| --- | --- |
| The client can't connect, or reports `401` | The key is missing or wrong, or has a `Bearer` prefix. See [Authentication](https://www.fluentc.ai/docs/authentication.md). |
| Tools don't appear | The client didn't send the header, or needs a restart after you edit its config. |
| A translation fails with "not enabled" | The language isn't enabled for your key. See [Languages](https://www.fluentc.ai/docs/api/languages.md). |
| A real-time call fails with "not supported for this agent" | Your key is on the Batch plan. Ask for batch mode, or move to the Real-time plan. |
| `403` | The subscription is inactive or a usage limit was reached. See [Errors](https://www.fluentc.ai/docs/api/errors.md). |

If it still doesn't work, [contact us](https://www.fluentc.ai/contact/) with your client's name and the error text.
