AI Agent & MCP — connect any AI assistant to NextX
NextX's hosted MCP server lets AI agents read and act on your workspace data through 62 tools — nothing to install or run, just one API key and ~2 minutes.
Fastest way: just the URL
ChatGPT, Claude, Claude Code, Copilot, Cursor, Gemini CLI, Grok, VS Code… — any MCP-capable assistant: add the server https://mcp.nextx.vn/mcp — the client opens the NextX sign-in, you pick a workspace and permissions. No key needed. The steps below are Option 2 — API key for servers, n8n and self-hosting.
https://mcp.nextx.vn/mcpHosted · 62 toolsSandbox environment: https://mcp-dev.nextx.vn/mcpOption 2 — API key: 3 steps
- 1
Create an API key in NextX
Open Settings › AI Agent & API (or the AI Integration wizard), pick Read-only or Read + write, then create the key. It is shown once — copy it right away.
Open the key screen in NextX → - 2
Paste the config for your client
Pick the tab below for the AI app you use, replace
YOUR_API_KEYwith your key, and copy the whole block. - 3
Ask something
For example: "List the 5 newest CRM contacts" — the agent calls the
search_contactstool. Done.
Per-client setup
Any MCP-standard client (Streamable HTTP) can connect. The key goes in the Authorization: Bearer header.
Cline, Windsurf, Zed, LibreChat… and any MCP-standard (Streamable HTTP) client:
{
"url": "https://mcp.nextx.vn/mcp",
"transport": "streamable-http",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}To try on sandbox first: swap the URL for the sandbox server at the top of this page and use a key created on app-dev.nextx.vn.
62 tools — what can the agent do?
Grouped by module; open a group for full parameters. Write tools (create/update) require a Read + write key.
search_contactsget_contactcreate_contactget_deal_pipelineget_dealupdate_deal_stageget_sales_summaryget_recent_activitiescreate_tasksend_zalo_messagesales_list_orderssales_get_ordersales_list_productssales_get_productsales_get_product_stocksales_list_customersoffice_list_recordsoffice_get_recordoffice_create_recordoffice_update_recordoffice_delete_recordoffice_list_approval_instancesoffice_get_approval_instanceoffice_create_approval_instanceoffice_approve_taskoffice_reject_taskhrm_list_attendance_deviceshrm_list_raw_puncheshrm_get_clock_history_dailyhrm_get_clock_timelinehrm_list_employee_credentialsdms_list_catalog_productsdms_list_checkinsdms_list_daily_plansdms_get_daily_plandms_list_outletsdms_list_ordersdms_list_routescall_list_agentscall_list_campaignscall_list_call_flowscall_list_ivr_flowscall_list_phone_numberscall_list_callscall_list_queuesmarketing_list_email_campaignsmarketing_get_email_campaignmarketing_list_email_templatesmarketing_list_integrationsmarketing_get_report_overviewmarketing_list_sender_profilespayment_get_intentpayment_list_refundspayment_list_transactionspayment_get_transactionpayment_list_subscriptionspayment_get_report_overvieweinvoice_list_invoiceseinvoice_get_invoiceeinvoice_list_serieseinvoice_get_report_summaryeinvoice_get_settings230 AI tools via OAuth sign-in
When a user connects an AI assistant with their own account (OAuth), the assistant gets read, export and write-proposal tools per module — each with parameters and a call example.
See 230 AI tools →Security model
- A key belongs to one workspace — the agent only ever sees that workspace's data.
- Access follows the scopes chosen at creation: Read-only =
*.viewscopes; Read + write adds*.manage. A read-only key calling a write tool gets403 scope_required. - Revoke any key at Settings › AI Agent & API — effective immediately.
Troubleshooting
| Symptom | Cause → fix |
|---|---|
| 401 on the very first call | Wrong header or revoked key — use exactly Authorization: Bearer <key>; create a new key if revoked. |
403 scope_required | A read-only key called a write tool (create contact, approve…) — create a Read + write key and swap it in. |
| HTML response instead of JSON | Wrong URL or DNS cache — the endpoint is https://mcp.nextx.vn/mcp; curl https://mcp.nextx.vn/health must return JSON. |
| Client hangs on long answers | A buffering proxy is choking the stream — connect directly to the MCP server, not through a self-made proxy. |
Advanced: self-host
Run nextx-mcp inside your own infra (STDIO + OAuth2) — for deeply-embedded partners
Most integrations do NOT need this — the hosted server above is the recommended path. Self-host when you embed MCP into your own system using a partner app's OAuth2 client_credentials identity instead of a workspace key.
git clone https://github.com/nextx-organization/nextx-mcp
cd nextx-mcp
npm install && npm run build # build ra dist/index.jsEnvironment variables (get client_id/secret when registering a partner app):
NEXTX_CLIENT_ID=... # OAuth2 client (đăng ký app đối tác)
NEXTX_CLIENT_SECRET=...
NEXTX_WORKSPACE_ID=... # workspace khách đã cài app
NEXTX_API_URL=https://api.nextx.vn
node dist/index.jsSTDIO client config (Claude Desktop, Cursor, VS Code…):
{
"mcpServers": {
"nextx": {
"command": "node",
"args": ["/duong-dan/nextx-mcp/dist/index.js"],
"env": {
"NEXTX_API_URL": "https://api.nextx.vn",
"NEXTX_CLIENT_ID": "YOUR_CLIENT_ID",
"NEXTX_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"NEXTX_WORKSPACE_ID": "WORKSPACE_GUID"
}
}
}
}No OAuth2 client yet? See Create an app in the console.