Thai company intelligence, over the Model Context Protocol
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.
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.
Max Datahttps://mcp.maxdatathailand.com/mcpNo key to manage. Access tokens rotate every 30 minutes in the background. You can revoke access at any time from Settings → MCP.
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 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.
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.
"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.
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”.
Every tool call costs credits. Two things determine the price: which tool you called, and how much data came back.
| Tool | What it answers | Credits |
|---|---|---|
| Free — navigation, transparency, and team management are never charged | ||
| taxonomy | Which industry code covers X? | free |
| my_usage | Your balance, prices, recent calls | free |
| create_team | Create a team with a shared credit wallet | free |
| add_team_member | Invite a member to your team by email | free |
| list_teams | Your teams, roles, and wallet balances | free |
| Light | ||
| find_company | Fuzzy name or registration number → matches | 1 |
| company_profile | Full dossier: registry, board, financials, red flags | 2 |
| financial_history | Up to 26 years of statements and ratios | 2 |
| Standard | ||
| screen_companies | Filter 1.99M companies on any criteria | 3 |
| similar_companies | Neighbours by what a company actually does | 3 |
| discover_companies | One query across names, descriptions, industries | 3 |
| market_intel | Market size, concentration, trend, survival | 4 |
| market_ranking | Top-N league tables by any metric | 4 |
| Heavy | ||
| director_intel | A person’s board portfolio and co-directors | 5 |
| company_connections | Shared-director network, related-party paths | 5 |
| query_maxdata | Your own read-only SQL | 5 |
| bulk_profiles | Up to 50 dossiers in one call | 8 |
| lead_list | Screened, contact-enriched B2B leads | 25 |
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:
| Call | Response | Base | Volume | Total |
|---|---|---|---|---|
| company_profile | ~3 KB | 2 | 0 | 2 |
| screen_companies | 94 KB | 3 | +1 | 4 |
| bulk_profiles | 114 KB | 8 | +1 | 9 |
| lead_list | 253 KB | 25 | +3 | 28 |
| query_maxdata | 1.98 MB | 5 | +30 | 35 |
query_maxdata. A response over its limit is
refused, not trimmed — and you are not charged for it.bulk_profiles beats repeated company_profile calls:
9 credits for 50 companies against 100.| What you see | What it means |
|---|---|
| 404 | The URL is missing /mcp, or has a trailing slash. |
| 401 | API 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 credits | The balance is spent. Credits don’t refill — ask your administrator for a top-up. |
| Response too large | Narrow the request: fewer rows, fewer columns, or an aggregate. You weren’t charged. |
| Daily data limit reached | You’ve hit 100 MB for today. It resets tomorrow. |
| Rate limit | More than 60 calls in a minute. Wait and retry. |
| Couldn’t connect | Check 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.