Max Data

Thai company intelligence, over the Model Context Protocol

Server URL
https://mcp.maxdatathailand.com/mcp
Authentication
OAuth 2.0 (sign in with your Max Data account) — or an API key if you prefer

No trailing slash. Use /mcp, never /mcp/. The slash triggers a redirect that re-sends your request — and your key with it. The bare domain won’t work either; the endpoint lives at /mcp.

Connect

Two ways to authenticate. OAuth is the easiest — paste the URL and sign in. API key is for automation and clients that do not support OAuth.

Claude web or desktop app — OAuth

easiest, new
  1. Settings → Connectors → Add custom connector
  2. Name it Max Data
  3. URL: https://mcp.maxdatathailand.com/mcp
  4. Authentication: OAuth (the server advertises it automatically)
  5. Save → a sign-in window opens → approve access

No key to manage. Access tokens rotate every 30 minutes in the background. You can revoke access at any time from Settings → MCP.

ChatGPT, Gemini, Cursor, Windsurf — OAuth

oauth

Paste https://mcp.maxdatathailand.com/mcp as the MCP server URL. The client will discover the sign-in page automatically and prompt you to approve access — no key needed.

Supported clients: ChatGPT (connector settings), Gemini for Workspace, Cursor (MCP tab), Windsurf (MCP settings).

Claude Code — API key

fastest for devs
claude mcp add --transport http maxdata \
  https://mcp.maxdatathailand.com/mcp \
  --header "Authorization: Bearer mxd_YOURKEY"

Add --scope user to make it available in every project. Avoid --scope project: that writes the key into a file meant to be committed. Get a key at Settings → MCP.

Claude Desktop config file — API key

fallback

Use this if the connector dialog has no OAuth or header field. Settings → Developer → Edit Config, merged into your existing mcpServers, then quit Claude fully and reopen.

"maxdata": {
  "command": "npx",
  "args": ["-y", "mcp-remote",
           "https://mcp.maxdatathailand.com/mcp",
           "--header", "Authorization:${AUTH_HEADER}"],
  "env": { "AUTH_HEADER": "Bearer mxd_YOURKEY" }
}

The key goes in env, not inline in args — Desktop mangles arguments containing spaces. Note there is no space after Authorization: in the argument; the space lives in the env value.

Claude API — API key

messages api
"mcp_servers": [{
  "type": "url",
  "url": "https://mcp.maxdatathailand.com/mcp",
  "name": "maxdata",
  "authorization_token": "mxd_YOURKEY"
}]

Here you pass the bare key — the SDK adds Bearer itself.

Check it worked

Ask Claude to call my_usage. It costs nothing and returns your account name, balance and the current price list — which proves the key resolved to the right account, not merely that something connected.

Then try it for real: “Run a due diligence on CP ALL”, “Top rice exporters in Isan by revenue”, or “Profitable Bangkok logistics SMEs with websites”.

What it costs

Every tool call costs credits. Two things determine the price: which tool you called, and how much data came back.

Price per call

ToolWhat it answersCredits
Free — navigation, transparency, and team management are never charged
taxonomyWhich industry code covers X?free
my_usageYour balance, prices, recent callsfree
create_teamCreate a team with a shared credit walletfree
add_team_memberInvite a member to your team by emailfree
list_teamsYour teams, roles, and wallet balancesfree
Light
find_companyFuzzy name or registration number → matches1
company_profileFull dossier: registry, board, financials, red flags2
financial_historyUp to 26 years of statements and ratios2
Standard
screen_companiesFilter 1.99M companies on any criteria3
similar_companiesNeighbours by what a company actually does3
discover_companiesOne query across names, descriptions, industries3
market_intelMarket size, concentration, trend, survival4
market_rankingTop-N league tables by any metric4
Heavy
director_intelA person’s board portfolio and co-directors5
company_connectionsShared-director network, related-party paths5
query_maxdataYour own read-only SQL5
bulk_profilesUp to 50 dossiers in one call8
lead_listScreened, contact-enriched B2B leads25
Live prices. my_usage always reports the current list.

Plus a charge for volume

The first 64 KiB of any response is free. Above that, it’s 1 credit per further 64 KiB, rounded up.

In practice most calls never reach the allowance and cost exactly the price above. Only genuinely large pulls are affected:

CallResponseBaseVolumeTotal
company_profile~3 KB202
screen_companies94 KB3+14
bulk_profiles114 KB8+19
lead_list253 KB25+328
query_maxdata1.98 MB5+3035
Measured at each tool’s maximum arguments.

Hard limits

Keeping calls cheap

If something goes wrong

What you seeWhat it means
404The URL is missing /mcp, or has a trailing slash.
401API key: the header isn’t arriving, or the key is wrong or revoked — check for the literal word Bearer and one space. OAuth: re-connect from the client — refresh tokens expire after 90 days.
Insufficient creditsThe balance is spent. Credits don’t refill — ask your administrator for a top-up.
Response too largeNarrow the request: fewer rows, fewer columns, or an aggregate. You weren’t charged.
Daily data limit reachedYou’ve hit 100 MB for today. It resets tomorrow.
Rate limitMore than 60 calls in a minute. Wait and retry.
Couldn’t connectCheck the URL and header first. If both are right, use the Desktop config-file method above.

Amounts are in Thai baht. Fiscal years are Buddhist Era, and every response includes the Gregorian year alongside — so ask for whichever you prefer.