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.

Option 1 per client →
MCP serverhttps://mcp.nextx.vn/mcpHosted · 62 toolsSandbox environment: https://mcp-dev.nextx.vn/mcp

Option 2 — API key: 3 steps

  1. 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. 2

    Paste the config for your client

    Pick the tab below for the AI app you use, replace YOUR_API_KEY with your key, and copy the whole block.

  3. 3

    Ask something

    For example: "List the 5 newest CRM contacts" — the agent calls the search_contacts tool. 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.

CRM (9) →
search_contactsget_contactcreate_contactget_deal_pipelineget_dealupdate_deal_stageget_sales_summaryget_recent_activitiescreate_task
Omnichannel chat (1) →
send_zalo_message
Sales (6) →
sales_list_orderssales_get_ordersales_list_productssales_get_productsales_get_product_stocksales_list_customers
Office (10) →
office_list_recordsoffice_get_recordoffice_create_recordoffice_update_recordoffice_delete_recordoffice_list_approval_instancesoffice_get_approval_instanceoffice_create_approval_instanceoffice_approve_taskoffice_reject_task
HR (5) →
hrm_list_attendance_deviceshrm_list_raw_puncheshrm_get_clock_history_dailyhrm_get_clock_timelinehrm_list_employee_credentials
DMS (7) →
dms_list_catalog_productsdms_list_checkinsdms_list_daily_plansdms_get_daily_plandms_list_outletsdms_list_ordersdms_list_routes
Call center (7) →
call_list_agentscall_list_campaignscall_list_call_flowscall_list_ivr_flowscall_list_phone_numberscall_list_callscall_list_queues
Marketing (6) →
marketing_list_email_campaignsmarketing_get_email_campaignmarketing_list_email_templatesmarketing_list_integrationsmarketing_get_report_overviewmarketing_list_sender_profiles
Payments (6) →
payment_get_intentpayment_list_refundspayment_list_transactionspayment_get_transactionpayment_list_subscriptionspayment_get_report_overview
E-invoice (5) →
einvoice_list_invoiceseinvoice_get_invoiceeinvoice_list_serieseinvoice_get_report_summaryeinvoice_get_settings

230 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 = *.view scopes; Read + write adds *.manage. A read-only key calling a write tool gets 403 scope_required.
  • Revoke any key at Settings › AI Agent & API — effective immediately.

Troubleshooting

SymptomCause → fix
401 on the very first callWrong header or revoked key — use exactly Authorization: Bearer <key>; create a new key if revoked.
403 scope_requiredA read-only key called a write tool (create contact, approve…) — create a Read + write key and swap it in.
HTML response instead of JSONWrong 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 answersA 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.js

Environment 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.js

STDIO 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.