> ## Documentation Index
> Fetch the complete documentation index at: https://evolink.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# EvoLink MCP

> Remote and local MCP, client setup, tool workflows, references, and result delivery

Use the [CLI/MCP overview](/docs/en/cli-mcp/overview) to choose by client. Shared resources in this section cover costs, tasks, files, and agent instructions.

EvoLink MCP exposes model discovery, estimates, media generation, references, tasks, and balance as native agent tools. This section covers MCP; terminal commands and evolink-cli are in the [separate CLI section](/docs/en/cli/overview).

This guide describes released **MCP 1.6.1**. Remote MCP has 15 tools with browser OAuth; local stdio has 13 tools with a personal API Key. Query current account models and inputs before executing.

## Choose your assistant

Connect with Streamable HTTP at `https://mcp.evolink.ai/mcp`. Authorize through the client's own entry point, not a documentation URL.

<CardGroup cols={2}>
  <Card title="Claude" icon="https://cdn.evolink.ai/mcp/clients/claude.webp" href="/docs/en/mcp/claude">Add a remote connector and authorize in the browser.</Card>
  <Card title="Codex" icon="https://cdn.evolink.ai/mcp/clients/codex.svg" href="/docs/en/mcp/codex">Register the remote server and complete MCP OAuth.</Card>
  <Card title="Claude Code" icon="https://mintcdn.com/muyutechnology/nT64SbOJQf4nX61W/images/mcp/claude-code.svg?fit=max&auto=format&n=nT64SbOJQf4nX61W&q=85&s=4bbd9101fa0b0a0eb4640ff3e3574865" href="/docs/en/mcp/claude-code" width="24" height="24" data-path="images/mcp/claude-code.svg">Add HTTP MCP and authenticate with /mcp.</Card>
  <Card title="ChatGPT" icon="https://cdn.evolink.ai/mcp/clients/openai.svg" href="/docs/en/mcp/chatgpt">Add a custom MCP connection, sign in, and enable tools.</Card>
  <Card title="Cursor" icon="https://cdn.evolink.ai/mcp/clients/cursor.webp" href="/docs/en/mcp/cursor">Configure the server URL and authorize in the client.</Card>
  <Card title="OpenClaw" icon="https://cdn.evolink.ai/mcp/clients/openclaw.svg" href="/docs/en/mcp/openclaw">Configure OAuth-capable Gateway versions.</Card>
  <Card title="Hermes" icon="https://cdn.evolink.ai/mcp/clients/hermes.png" href="/docs/en/mcp/hermes-agent">Merge MCP configuration, sign in, and reload tools.</Card>
  <Card title="Other MCP clients" icon="plug" href="/docs/en/mcp/other-clients#remote-mcp">Generic Streamable HTTP and OAuth setup.</Card>
  <Card title="Local MCP" icon="key" href="/docs/en/mcp/other-clients#local-mcp">Start stdio with npx and verify using a personal Key.</Card>
</CardGroup>

<span id="remote-mcp" />

<span id="quickstart" />

## Quickstart: remote MCP

<Steps>
  <Step title="Add the server">
    Add a custom MCP/connector named EvoLink at [https://mcp.evolink.ai/mcp](https://mcp.evolink.ai/mcp). Follow the client guide above; a local MCP package is not required.
  </Step>

  <Step title="Sign in and authorize in the browser">
    Select OAuth, sign in to EvoLink, inspect the account and permissions, approve, and return. Enable the connection and tools. CLI sign-in does not replace host MCP authorization.
  </Step>

  <Step title="Verify actual tools for free">
    Send this and confirm actual balance and model results:

    ```text theme={null}
    Use EvoLink to check my balance and search available image models. Do not generate anything yet.
    ```

    Successful check\_balance and search\_models calls establish access; a tool list alone does not. This check creates no paid media task.
  </Step>
</Steps>

For stdio-only clients, follow [local MCP setup](/docs/en/mcp/other-clients#local-mcp). Configure its startup and authentication separately.

## Your first generation

After connecting, describe your goal:

<Tabs>
  <Tab title="Image">
    ```text theme={null}
    Use EvoLink to make a coffee brand ad with warm light, a cream ceramic cup and space for brand text at the top.
    Compare suitable models and show the output specifications, estimate and limitations. Wait for my approval.
    Return the original image link and reported final charge. Do not automatically regenerate or modify the result.
    ```
  </Tab>

  <Tab title="Video">
    ```text theme={null}
    Use EvoLink to create a short ocean sunset video. Show suitable models, supported duration, quality, audio options and the estimate first.
    After approval, submit once, save the task ID and query it until completion. Return the original video link and reported charge.
    ```
  </Tab>

  <Tab title="Audio">
    ```text theme={null}
    Use EvoLink to generate a Chinese welcome voice saying “欢迎来到我们的咖啡店”.
    Choose a speech model, check voice and input requirements, explain billing, then wait for approval before generating and returning the original audio.
    ```
  </Tab>
</Tabs>

Generation uses EvoLink credits. These prompts ask the assistant to wait for approval. Account authorization, host tool permission and task cost approval are separate. Native MCP does not provide a server-side conversational approval button; the agent must obtain explicit approval for this task. Read [Billing and authorization](/docs/en/mcp/billing).

<span id="workflows" />

## How it works

Remote MCP follows `your assistant → EvoLink MCP → platform API`. The host manages OAuth sign-in; the remote service executes tools. Browser chat clients do not need Node.js or EvoLink CLI.

Local stdio follows `your assistant → local MCP process → platform API`. Install Node.js 18+ on the machine that runs the assistant, let the host launch the process, and provide a platform API Key. See [other MCP clients](/docs/en/mcp/other-clients#local-mcp) for configuration.

Both modes expose the main model, estimate, generation, and task tools. Remote MCP additionally exposes `prepare_upload` and `get_upload`. Optional skills and plugins provide operating instructions; they do not replace server registration, account authorization, or host tool permissions.

| Goal | Tools |
| - | - |
| Check balance and account access | `check_balance` |
| Find models, parameters, and documentation | `search_models`, `get_model`, `search_docs` |
| Compare candidates for a task | `recommend_models` |
| Estimate cost | `estimate_cost` |
| Generate images, video, or audio | `generate_image`, `generate_video`, `generate_audio` |
| Query, wait for, and list tasks | `get_task`, `list_tasks` |
| Inspect account usage | `get_task_usage` |
| Upload references | `upload_file`; remote also has `prepare_upload`, `get_upload` |

These tools do not provide code development, local video editing, or website building. An agent host may have those capabilities of its own; attribute them to the host when describing EvoLink.

<span id="models" />

## Step 1: select a model and validate its inputs

Use `search_models` or `recommend_models` for current candidates, then `get_model` for exact IDs, supported capabilities, required fields, and limits. Use `search_docs` for additional guidance. A family name is not necessarily a valid submission ID.

See [models, costs, and quotas](/docs/en/cli-mcp/models-and-billing#models) for selection order, newer families to compare, and pricing rules. Check the current account catalog and inputs; example models are not default recommendations.

The following example uses `z-image-turbo`. Check parameters before using any model:

```json theme={null}
{"name":"get_model","arguments":{"model":"z-image-turbo"}}
```

<span id="files" />

## Step 2: prepare references

Skip uploads for text-only inputs. For reference images, video, or audio, first check supported types, counts, and size limits.

1. **Accessible URL**: call `upload_file` with `file_url`. The server must be able to fetch the URL; a path on the user's computer is not a public URL.
2. **Small inline file**: remote `upload_file` accepts up to 1 MiB of base64 content and needs a matching MIME type. Keep large files out of tool messages.
3. **Local file for remote MCP**: call `prepare_upload`, upload from an environment with file access and HTTP capabilities, then inspect the receipt with `get_upload`. The upload limit is 95 MiB, subject to model restrictions. Upload authorization is single-use and expires after about 15 minutes; status URLs last about one hour.
4. **Local stdio**: `upload_file` supports a local `file_path`. This is an absolute path on the MCP process machine, not automatically on the chat user's computer. File-service and model limits still apply.

```json theme={null}
{"name":"prepare_upload","arguments":{"file_name":"reference.png"}}
```

```json theme={null}
{"name":"get_upload","arguments":{"upload_id":"UPLOAD_ID"}}
```

A chat attachment does not automatically become a usable model URL. If the host cannot read or upload files, ask for an accessible URL. Preserve the original `upload_id` when the outcome is unknown; do not immediately upload again. Receipt compatibility depends on file-service deployment. References usually last 72 hours; re-upload expired inputs and update the request.

<span id="images" />

## Step 3: estimate, approve, and generate an image

Prepare final inputs before estimating. Show the model, image count, size, content, and estimated cost. An estimate is not a guarantee of final settlement. See [costs](/docs/en/mcp/billing#pricing) for released pricing coverage and limitations.

```json theme={null}
{"name":"estimate_cost","arguments":{"model":"z-image-turbo","input":{"prompt":"A minimalist coffee advertisement with a ceramic cup"}}}
```

Call generation only after explicit approval of this plan and estimated cost. `client_request_id` is a stable 16–96 character request identifier; retries of the same submission must retain its identifier and inputs. The budget below only illustrates the parameter; set it from the user's explicit budget:

```json theme={null}
{"name":"generate_image","arguments":{"model":"z-image-turbo","input":{"prompt":"A minimalist coffee advertisement with a ceramic cup"},"client_request_id":"coffee-image-demo-001","max_cost_usd":1}}
```

`max_cost_usd` is a pre-submission check, not an enforced final charge cap. `estimate_cost` does not accept it. Host permission to call a tool does not by itself approve the purchase.

<span id="video" />

## Video: check duration, resolution, sound, and references

Use `get_model` to find the exact text-to-video or image-to-video ID. Duration, resolution, sound options, and reference video can affect price; do not reuse an estimate from different inputs. Tasks within the same family may use different IDs.

Validate parameters → upload references → call `estimate_cost` with final inputs → show the plan and obtain explicit approval → call `generate_video` with those inputs → query the original task → deliver the original video.

When `media_seconds` is needed, use measured input duration. Pause when required measurements are unknown, pricing is incomplete, or a budget comparison cannot be completed. Do not repair a gray thumbnail by automatically editing or regenerating the finished video.

<span id="audio" />

## Audio: distinguish music from speech

Compare available Suno v6 models for music; use an appropriate speech model for narration or voiceover. Check model parameters, prepare text, language, voice, lyrics, duration, or reference audio, then estimate final inputs, get approval, and call `generate_audio`.

Incomplete audio pricing is not free usage. Deliver original audio URLs from the completed task, retain all returned outputs, and explain their actual format and how to save them.

<span id="tasks" />

## Step 4: wait, query, and recover the original task

Generation may return a result or a `task_id`. Query that task instead of submitting generation again. `get_task.wait_seconds` waits within one call and accepts 0–45 seconds. A wait timeout ends that wait only.

```json theme={null}
{"name":"get_task","arguments":{"task_id":"TASK_ID","wait_seconds":30}}
```

Use `list_tasks` with `task_ids` for batch queries, or use its filters for history. If submission times out before returning an ID, preserve the original request ID, inputs, credentials, and error for recovery. Do not switch identities or identifiers and generate again to troubleshoot.

There is currently no usable public queue-cancellation tool. Stopping an agent's wait, closing a page, or disconnecting MCP does not cancel the server task and does not establish that no charge occurred or that a refund completed.

<span id="delivery" />

## Step 5: deliver original results

Once complete, return accessible original URLs with the model, output count, known cost information, and expiry. Generated originals usually last 24 hours; save them promptly. A host may also render previews. For a link-only result or gray thumbnail, verify the original URL first.

Check HTTP status, content type, and actual file format before saving. An error page is not media. Controlled Python download code can set a product User-Agent when its default request is blocked; see [download troubleshooting](/docs/en/mcp/billing#download).

Do not repair delivery or preview issues through unapproved regeneration. If the user separately requests editing, use the relevant host capabilities and obtain any required cost approval.

See the [MCP tool reference](/docs/en/mcp/tools) for arguments and results, and [skills and readable resources](/docs/en/cli-mcp/agent-resources) for complete agent instructions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.