MT-MCP Docs
Setup

Generating a Terminal Key

The one credential every MCP client and every EA connection needs.

MT-MCP uses two different kinds of key, and mixing them up is the most common setup failure.

Not your master key

Your master license key (the one emailed to you at checkout, MTMCP-...) represents your subscription. It cannot authenticate an MCP client or an EA connection — /api/token rejects it outright. You need a terminal key instead.

Why a separate key

A terminal key is bound to a single MT4/MT5 terminal the first time that terminal connects with it. That binding is what stops a command from ever being routed to the wrong account, even if you're juggling multiple terminals under one subscription. Your plan's seat count determines how many terminals you can bind at once (Pro: 1 seat, Team: 5 seats).

Generate one

  1. Log in to your dashboard with the email you used at checkout.
  2. Go to Terminal Keys → Generate New Key.
  3. Copy the generated key (MTMCP- followed by 32 hex characters) somewhere safe — it's shown once.

Bind it

A freshly generated terminal key isn't usable yet — it has to be bound to a terminal first:

  1. Install the MT-MCP Expert Advisor on the terminal you want to connect (download the .ex5/.ex4 from your dashboard, drop it into MQL5/Experts/ or MQL4/Experts/, attach it to any chart).
  2. Enter the terminal key as the EA's license input and let it connect once.
  3. Once the EA shows as connected in your dashboard, the key is bound — it will now work in any MCP client config.

Keep it safe

A terminal key is a durable credential. Anyone holding it can act on the bound terminal within your subscription tier's capabilities until you revoke it — the session tokens issued from it don't bound the blast radius of a leaked key. If a key is ever exposed, revoke it from Dashboard → Terminal Keys immediately; the server stops issuing new sessions for it within seconds. An MCP session that's already running keeps working until its cached session token expires (default 1 hour), then fails to refresh.

On this page