Sokin MCP - Setup and Usage Guide
Sokin MCP — Setup and Usage Guide#
Disclaimer: The MCP functionality described on this page is currently
available only in Sokin's UAT environment and is not yet available to all
customers across all live regions. This is a temporary limitation, and Sokin
plans to make these capabilities available to all customers across its live
regions in the near future. Please contact Sokin for further information
regarding availability and access.
An MCP connector lets an AI client — Claude, ChatGPT, Replit's Agent — call
Sokin tools in plain English: list your accounts, check balances, get an FX
quote. You ask in a chat; the client does the API work.This page connects one of them to Sokin, signs you in, and gets you to a
first working call. It covers all three, plus what to do if you are writing
your own client.You do not need to write any code to use this. Read top to bottom and you
will reach a working call without navigating anywhere else. Everything here
describes the UAT (test) environment.UAT only — never sign in with production credentials.Every step here points at https://mcp.uat.sokin.com/mcp. Sign in with a
Sokin UAT test account only. If you sign in with a production account,
your client's tool calls reach the production platform and can move real
money. Two tools do exactly that — sending a payment, and converting between
accounts — and your client asks you to confirm before either one runs.
Tool Guide names them.
Jump to#
Set up your client — pick one; each takes about five minutes.What you need#
| |
|---|
| The MCP server URL | https://mcp.uat.sokin.com/mcp — copy it exactly, including the trailing /mcp |
| An account | A Sokin UAT test account, linked to at least one UAT corporate |
| A client | Claude, Replit, ChatGPT, or your own MCP client |
| Network | The connector reaches Sokin over the public internet. A VPN or a locked-down corporate network can block the sign-in step — turn the VPN off for that step if the connection fails |
You do not need an API key, a client ID, or a client secret. The server
supports Dynamic Client Registration, so your client registers itself during
the first sign-in.1. Connect a client#
Pick your client. Each path ends at the same place: a connector showing
Connected, with the Sokin tools available in a chat.Claude (web)#
The Sokin MCP is not in Claude's connector directory, so you add it as a
custom connector. This works on Free, Pro, Max, Team, and Enterprise —
Free is limited to one custom connector.Individual account (Free, Pro, Max)1.
Open Claude and go to Settings (profile menu, bottom-left). 3.
Click Add, then Add custom connector. 4.
Name: Sokin (UAT) — any label works
Remote MCP server URL: https://mcp.uat.sokin.com/mcp
Leave Advanced settings (OAuth Client ID / Secret) empty
5.
Click Continue, leaving the remaining defaults as they are. 6.
Scroll down and click Connect. The Sokin sign-in page opens; sign in
with your UAT test account. The connector then shows Connected. 7.
Claude still needs permission to run the tools. Open the Needs
approval dropdowns and set them to Always allow — but leave the
money-moving tools on approval-per-call: submit_payment_instruction,
settle_fx_quote and create_fx_quote. That prompt is the last thing
standing between an assistant and a real transaction, and for payments it
is not backed up by any server-side check. Read-only tools are safe to
allow once and forget. Only an Owner can add a custom connector, and it is added once for the whole
organisation:1.
Organization settings → Connectors → Add, hover Custom, choose
Web.
2.
Enter https://mcp.uat.sokin.com/mcp, leave Advanced settings empty, and
click Add.
Every member then goes to Settings → Connectors, finds Sokin (UAT),
clicks Connect, and signs in with their own UAT test account.Claude Desktop uses the same connector — set it up once on the web as
above and it appears in the desktop app too.Claude Code is one command instead:Then run /mcp in Claude Code to sign in. Registration is automatic here
too; there is nothing to paste beyond the URL.Replit#
1.
Open the Replit website, go to Settings → Integrations → Your
integrations. 3.
Display name: Sokin (UAT) — the Agent uses this label in its chat
logs
Endpoint / server URL: https://mcp.uat.sokin.com/mcp
4.
Click Test & save. Replit prompts you to authorise.
5.
Click Authorize Sokin MCP Server and complete the sign-in. The server then shows Connected under MCP Servers, and the Agent
fetches the tools automatically across your projects.ChatGPT#
ChatGPT needs Developer mode enabled first, and the flow differs enough
from Claude's to be worth spelling out. Requires Plus, Pro, Business,
Enterprise, or Edu on the web — there is no Free tier for this.1.
Settings → Security and login → turn on Developer mode. On
Business or Enterprise, if the toggle is missing, an admin must enable it
under Workspace Settings → Permissions & Roles → Connected Data →
Developer mode / Create custom MCP connectors.
2.
In a chat, click + and open the Developer mode apps area (or
Settings → Connectors → Advanced / Developer mode).
3.
Choose Create, for a developer-mode app backed by a remote MCP server.
4.
MCP Server URL: https://mcp.uat.sokin.com/mcp — include the
/mcp
Transport: leave the default (Streaming HTTP / SSE)
5.
Click Create, then sign in with your UAT test account and approve.
6.
Open the app's details page and make sure the tools are toggled on. If
the list is empty or stale, click Refresh to re-pull the tool list.
7.
To use it in a chat: + → Developer mode → Sokin (UAT). The app is
selected per conversation, so re-select it in each new chat.
ChatGPT flags Developer mode as elevated-risk, because it grants full read
and write MCP access. Check any write action before approving it. The
stakes are low on UAT, but the habit matters before anyone points a client
at production.
ChatGPT is also the least reliable of the three today: tool selection is
inconsistent, and it does not render Sokin's interactive cards — the small
panels some tools show inside the chat instead of plain text, including the one
carrying the Approve button that sends a payment. See
How the three clients differ. If you have a
choice, use Claude.How the three clients differ#
| Claude | Replit | ChatGPT |
|---|
| What it's called | A custom connector | An MCP server integration | An app, created in Developer mode |
| Extra gate | None | None | Must enable Developer mode first |
| Plans | Free (1 connector) and up | Any | Plus / Pro / Business / Enterprise / Edu — no Free |
| Scope | Per user, or org-wide by an Owner | Per user, across all projects | Per user, selected per conversation |
| Interactive cards | Rendered | Not rendered today | Not rendered today |
That last row decides which tools you can use, so it is worth explaining.
An interactive card is a small panel a tool draws inside the chat instead
of answering with plain text — something you can look at and click, rather
than read. Sokin uses them for three things: a payment review card with
Approve and Cancel, an exchange-rate card with a live countdown and a
Settle button, and charts or diagrams.They are not decoration, but they matter in different ways depending on what
you are doing:Converting between your own accounts needs a card. The server refuses
those tools outright on a client that cannot draw one — do it in the Sokin
portal instead.
Paying a beneficiary works either way. With a card you approve on the
card; without one, the figures and references come back as text and you
approve in the chat. Both are supported paths.
If you are writing your own client, read the Tool Guide's note on this:
for payments the server enforces no card requirement at all, so your client's
own confirmation prompt before a money-moving tool is doing real work — as are
the company's approval rules in the Sokin portal.Everything else — balances, transactions, payees, exchange rates — works on
every client. Tool Guide spells out which tool needs what.Your own MCP client#
Point it at https://mcp.uat.sokin.com/mcp over Streamable HTTP and let
it discover the rest:| Field | Value |
|---|
| Transport | Streamable HTTP |
| Protocol | JSON-RPC 2.0 (MCP) |
| Authentication | OAuth 2.1 + PKCE, with Dynamic Client Registration |
| Tools | 23 |
| Session model | Stateless — every request is independent |
Three transport details that catch people out:Your Accept header must include both content types. Send
Accept: application/json, text/event-stream. Omitting the second value is
the most common reason a client fails to parse a perfectly valid response.
Responses arrive as SSE. Even a single non-streaming call comes back as
a text/event-stream with the result in a data: event, not as a plain
JSON body.
No handshake is required. The server is stateless, so a tools/call
works without an initialize round trip first. Send one anyway if your
client renders interactive cards — that is where support for them is
declared.
2. Authenticate#
In Claude, Replit, and ChatGPT this is just the sign-in page that opened when
you clicked Connect. Sign in with your UAT test account and approve. If
sign-in fails, it is almost always one of three things: a production account
used by mistake, a VPN blocking the callback, or a test account not yet
linked to a UAT corporate — the last one shows up later as "no accessible
corporates".There is no refresh token yet, so a session lasts as long as the access
token and then you re-authenticate. That is a re-click of Connect, not a
re-setup.If you are building your own client#
The MCP server is itself the OAuth Authorization Server your client talks to.
It brokers to Auth0 underneath, and that indirection is the point: requesting
the Sokin B2B API audience needs a parameter an MCP client has no way to set,
so the server sets it for you.Discovery uses the standard well-known paths, served from whichever
environment's host you are using — the server advertises its own public base
URL, so this works identically in UAT and production with nothing hardcoded:| Endpoint | Purpose |
|---|
/.well-known/oauth-authorization-server | Advertises the issuer, plus the authorize and register endpoints |
/.well-known/oauth-protected-resource | Points back at that same server as the authorization server for this resource |
Dynamic Client Registration is enabled at /register, so clients
self-register instead of needing credentials issued by hand.
Scopes are openid, profile, email.
No offline_access, so there is no refresh token.
You cannot set the API audience yourself, and you do not need to.
Requests to /mcp are additionally gated by Host-header checks
(DNS-rebinding protection). A request addressed to a host other than the
advertised public one is rejected with 421, not 401 — if you see a
421, check the Host header before you start debugging your token.3. Make your first call#
The confirmation prompt is the same in every client:Show me the balances across all my Sokin accounts.
Behind the scenes the client runs two tools: list_corporates, which returns
the companies your login can act for, and then list_accounts, which returns
that company's currency accounts and their balances. You get the answer:| Currency | Balance | Available |
|---|
| GBP | 48,200.00 | 47,150.00 |
| EUR | 15,400.00 | 15,400.00 |
| USD | 12,000.00 | 11,750.00 |
The figures above are illustrative. What yours look like depends on the UAT
test account you were given — the point is that real account data comes back
at all, not the numbers themselves.And the same prompt answered by the Replit Agent:The same thing on the wire:If that returns corporates, you are connected. Take a corporateReference
from the result and pass it to list_accounts — nearly every other tool
needs one, and list_corporates is where one comes from.Disconnecting#
Worth knowing before you start, and worth doing when you are finished with a
test account.Claude: Settings → Connectors → Sokin (UAT) → disconnect or remove.
On Team or Enterprise, removing it for the whole organisation is an Owner
action; disconnecting your own access is not.
Replit: Settings → Integrations → Your integrations → remove the
Sokin (UAT) MCP server.
ChatGPT: the app's details page → delete it. It also stops being
available in a chat as soon as you deselect it.
Claude Code: claude mcp remove sokin.
Removing the connector stops that client calling Sokin. It does not undo
anything already submitted — a payment or conversion that has gone through has
gone through.If something goes wrong#
| Symptom | Fix |
|---|
| URL rejected when adding the connector | Include the full URL with the trailing /mcp, and choose OAuth where the client asks |
| Sign-in fails | Use your Sokin UAT test account. If you are on a VPN, turn it off for the sign-in step |
| No tools listed | Open the connector's details page, refresh the tool list, and make sure the tools are toggled on |
| "No accessible corporates", or an empty result | Your test account is not linked to a UAT corporate — ask QA or the AI pod |
| ChatGPT: no Developer mode toggle | You are on Free, or an admin has not enabled it for your workspace |
| ChatGPT: the app is missing in a chat | Re-select it via + → Developer mode; it is chosen per conversation |
421 instead of 401 | A Host-header mismatch, not a token problem. Check the Host header your client sends |
| A response your client cannot parse | Your Accept header is missing text/event-stream |
The last two only apply if you are writing your own client.Next: what you can ask for#
You are connected, and the balances prompt proved it. Tool Guide
is the companion page: all 19 tools, what each one is for, what it needs, and
an example of what comes back. It also lists a few starter project ideas
sized for an afternoon.If you are writing code against these tools and want the exact response
schemas field by field, every enumerated value, and the error and pagination
contracts, that is the third page — Sokin MCP — Technical Docs.Modified at 2026-09-16 11:05:17