Salta l'installazione. Attivo in meno di 2 minuti.
Avvia una prova gratuita su cloud.anythingmcp.com, aggiungi Oracle NetSuite con un clic, poi punta il tuo client AI (Claude, ChatGPT, Copilot o Cursor) all'endpoint MCP generato. Niente Docker, niente git clone, nessuna esperienza di sviluppo richiesta.
In breve
Fai lavorare la tua AI con Oracle NetSuite: esegui query SuiteQL in sola lettura su clienti, fornitori, articoli, transazioni e contabilità generale, leggi clienti, fornitori, dipendenti, articoli, ordini di vendita, fatture, ordini d'acquisto, fatture dei fornitori e registrazioni contabili con le relative righe, consulta tipi di record e campi, e crea clienti e ordini di vendita. Accesso con OAuth 2.0 di NetSuite, su un account di produzione o sandbox.
Prova a chiedere
Prompt di esempio per Oracle NetSuite
Clicca su un prompt per copiarlo. Incollalo in Claude, ChatGPT, Cursor, Gemini, Copilot o OpenClaw per eseguirlo contro questo connettore.
Claude è un'AI e può sbagliare. Verifica sempre le risposte.
💡 Niente installazione? Vai direttamente su cloud.anythingmcp.com. Accedi, clicca Connectors → Oracle NetSuite, inserisci le credenziali, genera una MCP API key e hai finito. Niente Docker, niente
git clone, niente server locale.
Oracle NetSuite + Cursor
Fai lavorare la tua AI con Oracle NetSuite: esegui query SuiteQL in sola lettura su clienti, fornitori, articoli, transazioni e contabilità generale, leggi clienti, fornitori, dipendenti, articoli, ordini di vendita, fatture, ordini d'acquisto, fatture dei fornitori e registrazioni contabili con le relative righe, consulta tipi di record e campi, e crea clienti e ordini di vendita. Accesso con OAuth 2.0 di NetSuite, su un account di produzione o sandbox.
Prerequisiti
Le istruzioni di setup complete sono incluse nel connettore stesso (visibili nello store quando lo selezioni). Le variabili d'ambiente richieste sono:
NETSUITE_ACCOUNT_ID, NETSUITE_CLIENT_ID, NETSUITE_CLIENT_SECRET
Step 1 — Ottieni le credenziali
Un amministratore lo configura una sola volta, in circa 20 minuti.
- Attiva le funzionalità: Setup → Company → Enable Features. Nella sottoscheda SuiteCloud spunta REST Web Services e, sotto Manage Authentication, OAuth 2.0. Nella sottoscheda Analytics spunta SuiteAnalytics Workbook, da cui legge SuiteQL. Salva.
- Crea un ruolo per l'AI: Setup → Users/Roles → Manage Roles → New. Aggiungi i permessi REST Web Services (Full) e Log in using OAuth 2.0 Access Tokens (Full), View sulle liste e sulle transazioni che l'AI può leggere (clienti, fornitori, articoli, dipendenti, conti, ordini di vendita, fatture, ordini d'acquisto, fatture dei fornitori, registrazioni contabili e Find Transaction) e Create dove può scrivere (clienti, ordini di vendita). Assegna il ruolo all'utente che effettuerà l'accesso. Un ruolo dedicato è più sicuro di Administrator: l'AI vede solo ciò che il ruolo consente.
- Crea il record di integrazione: Setup → Integration → Manage Integrations → New. Imposta lo stato su Enabled, togli la spunta da Token-Based Authentication e TBA: Authorization Flow, spunta Authorization Code Grant sotto OAuth 2.0, lascia Public Client senza spunta, inserisci il redirect URI
https://cloud.anythingmcp.com/api/mcp-oauth/callback(se ospiti AnythingMCP in proprio:<your AnythingMCP URL>/api/mcp-oauth/callback) e spunta lo scope REST Web Services. Al salvataggio NetSuite mostra Client ID e Client Secret una sola volta, in fondo alla pagina. Incollali inNETSUITE_CLIENT_IDeNETSUITE_CLIENT_SECRET. - Account ID: Setup → Company → Company Information.
NETSUITE_ACCOUNT_IDlo vuole così come appare nell'indirizzo web di NetSuite: in minuscolo e con un trattino al posto del trattino basso, quindi1234567_SB1diventa1234567-sb1. Per una sandbox, crea il record di integrazione direttamente nella sandbox. - Installa il connettore, clicca su Authorize with Provider, accedi a NetSuite e scegli il ruolo del passo 2.
- Esegui
netsuite_list_record_typesper verificare la connessione, poi una prima query comeSELECT id, companyname FROM customerconnetsuite_suiteql_query.
Autorizza di nuovo una volta a settimana: NetSuite mantiene valido per sette giorni il refresh token di questo tipo di integrazione e non lo rinnova, quindi clicca su Authorize with Provider almeno una volta a settimana. Nel frattempo gli access token vengono rinnovati automaticamente. Disattivando il record di integrazione, il ruolo o l'utente, l'accesso termina subito.
SuiteQL fa il grosso del lavoro: netsuite_suiteql_query esegue una query SQL in sola lettura sui dati analitici di NetSuite: clienti, fornitori, articoli, conti, consociate e transazioni con le relative righe e gli importi contabilizzati. È così che l'AI risponde a domande come le fatture aperte per cliente, le vendite per articolo o la spesa per fornitore. I risultati arrivano in pagine fino a 1.000 righe e una query restituisce al massimo 100.000 righe in totale, quindi alle domande ampie l'AI risponde con dei totali anziché con righe grezze. Le righe che il ruolo non può vedere vengono escluse senza errori, quindi una risposta vuota può indicare un permesso mancante.
Record: strumenti dedicati leggono clienti, fornitori, dipendenti, articoli, ordini di vendita, fatture, ordini d'acquisto, fatture dei fornitori e registrazioni contabili con le relative righe, e netsuite_get_record legge qualsiasi altro tipo di record. netsuite_describe_record_type elenca tutti i campi di un tipo di record, compresi quelli personalizzati.
Scritture solo dopo conferma: netsuite_create_customer crea un cliente dopo la tua conferma. netsuite_create_sales_order (che crea l'ordine come Pending Approval, così non si spedisce nulla prima che qualcuno lo approvi) e netsuite_update_record sono disattivati all'installazione; attivali singolarmente se ti servono. Le modifiche alle transazioni contabilizzate incidono sulla contabilità.
Errori comuni: INVALID_LOGIN significa che l'autorizzazione settimanale è scaduta oppure che l'integrazione, il ruolo o l'utente sono stati disattivati: autorizza di nuovo. 403 o INSUFFICIENT_PERMISSION: al ruolo manca un permesso. CONCURRENCY_LIMIT_EXCEEDED: troppe richieste parallele sull'account, attendi e riprova. Un host sconosciuto significa che NETSUITE_ACCOUNT_ID non è scritto nella forma dell'indirizzo web.
Il connettore accede solo con OAuth 2.0; Token-Based Authentication (TBA) non è supportata. Non elimina record, non esegue ricerche salvate né report, non chiama RESTlet e non usa il file cabinet.
Step 2 — Installa l'adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Aggiungi il connettore in Cursor
L'URL del tuo server: in AnythingMCP apri MCP Servers → il server su cui si trova questo connettore e copia il suo URL (
https://cloud.anythingmcp.com/mcp/…). Usalo ovunque questa guida mostraYOUR_SERVER_ID.
Cursor legge i server MCP da ~/.cursor/mcp.json. Aggiungi questa voce:
{
"mcpServers": {
"anythingmcp": {
"url": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Crea una chiave API MCP in AnythingMCP da MCP Servers → il tuo server → API keys e incollala al posto di
YOUR_MCP_API_KEY. - Salva il file e riavvia Cursor.
- Apri Cursor → Settings → MCP e verifica che
anythingmcpsia elencato e connesso. - Inizia a chattare: l'agente ora può usare i tool di
Oracle NetSuite.
Tool disponibili
| Tool | What it does |
|---|---|
netsuite_suiteql_query | Run one read-only SuiteQL query (NetSuite's SQL over the analytics schema), e.g. "SELECT id, companyname, email FROM customer WHERE… |
netsuite_list_record_types | List the record types the REST record API offers in this account (standard and custom, e.g. customer, salesOrder, inventoryItem… |
netsuite_describe_record_type | Describe one record type as JSON Schema: every field with its type, title and whether it is read-only, the sublists and their line fields… |
netsuite_list_records | List the internal ids of one record type, optionally filtered with the record API's q syntax (field, operator, value), e.g. q = email… |
netsuite_get_record | Read any record by type and internal id (or eid:<external id>), e.g. contact, account, subsidiary, location, estimate, creditMemo… |
netsuite_get_customer | Read one customer by internal id (or eid:<external id>): entityId, companyName or person name, email, phone, subsidiary, currency, terms… |
netsuite_get_vendor | Read one vendor by internal id (or eid:<external id>): entityId, companyName, email, phone, subsidiary, currency, terms, balance, category… |
netsuite_get_employee | Read one employee by internal id: entityId, name, email, title, department, location, subsidiary, supervisor, hireDate, isInactive and the… |
netsuite_get_item | Read one item by its record type and internal id: itemId, displayName, description, prices, cost, units, quantities on hand where tracked… |
netsuite_get_sales_order | Read one sales order by internal id: tranId, entity (customer), tranDate, status, orderStatus, currency, subtotal, total, shipping address… |
netsuite_get_invoice | Read one customer invoice by internal id: tranId, entity, tranDate, dueDate, status, currency, subtotal, taxTotal, total, amountRemaining… |
netsuite_get_purchase_order | Read one purchase order by internal id: tranId, entity (vendor), tranDate, status, currency, total, dueDate and, expanded by default… |
netsuite_get_vendor_bill | Read one vendor bill by internal id: tranId, entity (vendor), tranDate, dueDate, status, currency, total, approvalStatus and, expanded by… |
netsuite_get_journal_entry | Read one journal entry by internal id: tranId, tranDate, postingPeriod, subsidiary, currency, approved, memo and, expanded by default… |
netsuite_create_customer | Create a customer, a company (company_name) or a person (is_person true with first_name and last_name) |
netsuite_create_sales_order | Create a sales order for an existing customer, by default in status Pending Approval (A) so nothing is fulfilled before someone approves it |
netsuite_update_record | Change fields of an existing record of any type (PATCH): only the fields given are changed |
Esempi di prompt
- "Quali clienti hanno fatture aperte da più di 60 giorni, e quanto deve ciascuno?"
- "Mostrami le vendite dello scorso trimestre per articolo, i primi 20 per importo."
- "Quanto abbiamo speso con ciascun fornitore quest'anno, in base alle fatture dei fornitori?"
- "Crea un cliente per Harbor Supplies Ltd. nella consociata britannica e mostrami i dettagli prima di salvare."
FAQ
Cursor supporta server MCP personalizzati nel piano gratuito? Sì, MCP è disponibile nei piani Hobby, Pro e Business.
Prossimi passi
Questa guida ti è stata utile?