Sáltate la instalación. Funcionando en menos de 2 minutos.
Inicia una prueba gratuita en cloud.anythingmcp.com, añade Oracle NetSuite con un clic y apunta tu cliente de IA (Claude, ChatGPT, Copilot o Cursor) al endpoint MCP generado. Sin Docker, sin git clone, sin experiencia de desarrollo.
Resumen
Deja que tu IA trabaje con Oracle NetSuite: ejecuta consultas SuiteQL de solo lectura sobre clientes, proveedores, artículos, transacciones y el libro mayor, lee clientes, proveedores, empleados, artículos, pedidos de venta, facturas, órdenes de compra, facturas de proveedores y asientos contables con sus líneas, consulta tipos de registro y campos, y crea clientes y pedidos de venta. Inicio de sesión con OAuth 2.0 de NetSuite, en una cuenta de producción o de sandbox.
Prueba a pedir
Prompts de ejemplo para Oracle NetSuite
Haz clic en un prompt para copiarlo. Pégalo en Claude, ChatGPT, Cursor, Gemini, Copilot u OpenClaw para ejecutarlo contra este conector.
Claude es IA y puede equivocarse. Verifica siempre las respuestas.
💡 ¿Sin instalación? Usa cloud.anythingmcp.com directamente. Inicia sesión, pulsa Connectors → Oracle NetSuite, pega tus credenciales, genera una MCP API key y listo. Sin Docker, sin
git clone, sin servidor local.
Oracle NetSuite + ChatGPT
Deja que tu IA trabaje con Oracle NetSuite: ejecuta consultas SuiteQL de solo lectura sobre clientes, proveedores, artículos, transacciones y el libro mayor, lee clientes, proveedores, empleados, artículos, pedidos de venta, facturas, órdenes de compra, facturas de proveedores y asientos contables con sus líneas, consulta tipos de registro y campos, y crea clientes y pedidos de venta. Inicio de sesión con OAuth 2.0 de NetSuite, en una cuenta de producción o de sandbox.
Requisitos previos
Las instrucciones de configuración completas están incluidas en el conector (visibles en el store al seleccionarlo). Las variables de entorno requeridas:
NETSUITE_ACCOUNT_ID, NETSUITE_CLIENT_ID, NETSUITE_CLIENT_SECRET
Paso 1 — Obtener credenciales
Un administrador lo configura una sola vez, en unos 20 minutos.
- Activa las funciones: Setup → Company → Enable Features. En la subpestaña SuiteCloud, marca REST Web Services y, en Manage Authentication, OAuth 2.0. En la subpestaña Analytics, marca SuiteAnalytics Workbook, de donde lee SuiteQL. Guarda.
- Crea un rol para la IA: Setup → Users/Roles → Manage Roles → New. Añade los permisos REST Web Services (Full) y Log in using OAuth 2.0 Access Tokens (Full), View en las listas y transacciones que la IA puede leer (clientes, proveedores, artículos, empleados, cuentas, pedidos de venta, facturas, órdenes de compra, facturas de proveedores, asientos contables y Find Transaction) y Create donde puede escribir (clientes, pedidos de venta). Asigna el rol al usuario que va a iniciar sesión. Un rol dedicado es más seguro que Administrator: la IA solo ve lo que el rol permite.
- Crea el registro de integración: Setup → Integration → Manage Integrations → New. Pon el estado en Enabled, desmarca Token-Based Authentication y TBA: Authorization Flow, marca Authorization Code Grant en OAuth 2.0, deja Public Client sin marcar, introduce el URI de redirección
https://cloud.anythingmcp.com/api/mcp-oauth/callback(si alojas AnythingMCP tú mismo:<your AnythingMCP URL>/api/mcp-oauth/callback) y marca el scope REST Web Services. Al guardar, NetSuite muestra el Client ID y el Client Secret una sola vez, al final de la página. Pégalos enNETSUITE_CLIENT_IDyNETSUITE_CLIENT_SECRET. - Account ID: Setup → Company → Company Information.
NETSUITE_ACCOUNT_IDlo espera tal como aparece en la dirección web de NetSuite: en minúsculas y con un guion en lugar del guion bajo, así que1234567_SB1pasa a ser1234567-sb1. Para un sandbox, crea el registro de integración en el propio sandbox. - Instala el conector, haz clic en Authorize with Provider, inicia sesión en NetSuite y elige el rol del paso 2.
- Ejecuta
netsuite_list_record_typespara comprobar la conexión y después una primera consulta comoSELECT id, companyname FROM customerconnetsuite_suiteql_query.
Vuelve a autorizar una vez por semana: NetSuite mantiene válido durante siete días el refresh token de este tipo de integración y no lo renueva, así que haz clic en Authorize with Provider al menos una vez por semana. Mientras tanto, los access tokens se renuevan automáticamente. Desactivar el registro de integración, el rol o el usuario corta el acceso al instante.
SuiteQL hace el trabajo pesado: netsuite_suiteql_query ejecuta una consulta SQL de solo lectura sobre los datos analíticos de NetSuite: clientes, proveedores, artículos, cuentas, subsidiarias y transacciones con sus líneas e importes contabilizados. Así responde la IA a preguntas como las facturas pendientes por cliente, las ventas por artículo o el gasto por proveedor. Los resultados llegan en páginas de hasta 1.000 filas y una consulta devuelve como máximo 100.000 filas en total, por lo que las preguntas amplias se responden con totales en lugar de filas sueltas. Las filas que el rol no puede ver se omiten sin error, así que una respuesta vacía puede deberse a un permiso que falta.
Registros: herramientas dedicadas leen clientes, proveedores, empleados, artículos, pedidos de venta, facturas, órdenes de compra, facturas de proveedores y asientos contables con sus líneas, y netsuite_get_record lee cualquier otro tipo de registro. netsuite_describe_record_type enumera todos los campos de un tipo de registro, incluidos los personalizados.
Escrituras solo tras confirmar: netsuite_create_customer crea un cliente cuando lo confirmas. netsuite_create_sales_order (que crea el pedido como Pending Approval, para que no se envíe nada antes de que alguien lo apruebe) y netsuite_update_record están desactivadas al instalar; actívalas una por una si las necesitas. Los cambios en transacciones contabilizadas afectan a la contabilidad.
Errores frecuentes: INVALID_LOGIN significa que la autorización semanal caducó o que se desactivó la integración, el rol o el usuario: vuelve a autorizar. 403 o INSUFFICIENT_PERMISSION: al rol le falta un permiso. CONCURRENCY_LIMIT_EXCEEDED: demasiadas solicitudes en paralelo en la cuenta, espera y vuelve a intentarlo. Un host desconocido significa que NETSUITE_ACCOUNT_ID no está escrito con el formato de la dirección web.
El conector inicia sesión solo con OAuth 2.0; Token-Based Authentication (TBA) no es compatible. No elimina registros, no ejecuta búsquedas guardadas ni informes, no llama a RESTlets y no usa el file cabinet.
Paso 2 — Instalar el 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
Paso 3 — Añadir el conector en ChatGPT
La URL de tu servidor: en AnythingMCP abre MCP Servers → el servidor donde está este conector y copia su URL (
https://cloud.anythingmcp.com/mcp/…). Úsala donde esta guía muestraYOUR_SERVER_ID.
ChatGPT se conecta a servidores MCP como apps personalizadas en modo desarrollador (Developer mode), disponible en los planes de pago, no en el gratuito. En los espacios Business y Enterprise puede que un administrador tenga que habilitarlo antes.
- En ChatGPT, abre Settings → Security and login y activa Developer mode.
- Ve a chatgpt.com/plugins y pulsa +.
- Escribe un nombre y una descripción breve, por ejemplo Name:
Oracle NetSuite. - En Connection, introduce la URL del servidor MCP
https://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDy crea la conexión. - Cuando ChatGPT lo pida, inicia sesión en AnythingMCP (OAuth) y permite el acceso.
Herramientas disponibles
| 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 |
Ejemplos de prompts
- "¿Qué clientes tienen facturas pendientes de más de 60 días y cuánto debe cada uno?"
- "Muéstrame las ventas del último trimestre por artículo, los 20 primeros por importe."
- "¿Cuánto hemos gastado con cada proveedor este año, según las facturas de proveedores?"
- "Crea un cliente para Harbor Supplies Ltd. en la subsidiaria del Reino Unido y muéstrame los datos antes de guardar."
FAQ
¿Funciona el plan gratuito de ChatGPT con conectores MCP personalizados? No. Las conexiones MCP personalizadas necesitan el modo desarrollador, que solo está en los planes de pago.
Siguientes pasos
¿Te ha sido útil esta guía?