Servidor MCP de Salesforce
Una implementación de servidor MCP (Model Context Protocol) que integra Claude con Salesforce, permitiendo interacciones de lenguaje natural con sus datos y metadatos de Salesforce. Este servidor permite a Claude consultar, modificar y gestionar sus objetos y registros de Salesforce utilizando lenguaje cotidiano.
Funciones
- Gestión de objetos y campos: Cree y modifique objetos y campos personalizados utilizando lenguaje natural
- Búsqueda inteligente de objetos: Encuentre objetos de Salesforce utilizando coincidencias parciales de nombres
- Información detallada de esquemas: Obtenga detalles completos de campos y relaciones para cualquier objeto
- Consultas de datos flexibles: Consulte registros con soporte de relaciones y filtros complejos
- Manipulación de datos: Inserte, actualice, elimine y vuelva a insertar registros con facilidad
- Búsqueda entre objetos: Búsqueda en varios objetos mediante SOSL
- Gestión de código Apex: Leer, crear y actualizar clases Apex y disparadores
- Gestión intuitiva de errores: Información clara con detalles de errores específicos de Salesforce
Instalación
npm install -g @tsmztech/mcp-server-salesforce
Herramientas
salesforce_search_objects
Búsqueda de objetos estándar y personalizados:
- Búsqueda por coincidencias parciales de nombre
- Busca objetos estándar y personalizados
- Ejemplo: "Buscar objetos relacionados con Cuenta" encontrará Cuenta, HistorialDeCuenta, etc.
salesforce_describe_object
Obtiene información detallada del esquema del objeto:
- Definiciones de campos y propiedades
- Detalles de relación
- Valores de la lista de selección
- Ejemplo: "Mostrarme todos los campos del objeto Cuenta"
salesforce_query_records
Consulta de registros con soporte de relaciones:
- Relaciones de padre a hijo
- Relaciones de hijo a padre
- Condiciones WHERE complejas
- Ejemplo: "Obtener todas las cuentas con sus contactos relacionados"
- Nota: Para consultas con funciones GROUP BY o agregadas, utilice salesforce_aggregate_query
salesforce_aggregate_query
Ejecute consultas agregadas con GROUP BY:
- GROUP BY campos individuales o múltiples
- Funciones de agregación: COUNT, COUNT_DISTINCT, SUM, AVG, MIN, MAX
- Cláusulas HAVING para filtrar resultados agrupados
- Funciones de agrupación por fecha/hora
- Ejemplo: "Contar oportunidades por etapa" o "Buscar cuentas con más de 10 oportunidades"
salesforce_dml_records
Realice operaciones de datos:
- Insertar nuevos registros
- Actualizar registros existentes
- Eliminar registros
- Reinserción mediante ID externos
- Ejemplo: "Actualizar estado de varias cuentas"
salesforce_manage_object
Crear y modificar objetos personalizados:
- Crear nuevos objetos personalizados
- Actualizar propiedades de objetos
- Configurar opciones de uso compartido
- Ejemplo: "Crear un objeto Comentarios de clientes"
salesforce_manage_field
Gestionar campos de objeto:
- Añadir nuevos campos personalizados
- Modificar propiedades de campo
- Crear relaciones
- Concede automáticamente seguridad de nivel de campo al administrador del sistema de forma predeterminada
- Utilice el parámetro
grantAccessTo
para especificar diferentes perfiles - Ejemplo: "Añadir un campo de lista de selección Valoración a Cuenta"
salesforce_manage_field_permissions
Gestionar seguridad de nivel de campo (permisos de campo):
- Conceda o revoque el acceso de lectura/edición a campos para perfiles específicos
- Ver permisos de campo actuales
- Actualización masiva de permisos para varios perfiles
- Útil para gestionar permisos tras la creación de campos o para campos existentes
- Ejemplo: "Conceder acceso de administrador del sistema a Custom_Field__c en la cuenta"
salesforce_search_all
Búsqueda en varios objetos:
- Búsqueda basada en SOSL
- Compatibilidad con múltiples objetos
- Fragmentos de campo
- Ejemplo: "Buscar 'nube' en Cuentas y Oportunidades"
salesforce_read_apex
Leer clases Apex:
- Obtenga el código fuente completo de clases específicas
- Enumerar clases que coincidan con patrones de nombres
- Ver metadatos de clases (versión de API, estado, etc.)
- Compatibilidad con comodines (* y ?) en patrones de nombres
- Ejemplo: "Muéstreme la clase AccountController" o "Encuentre todas las clases que coincidan con AccountCont"
salesforce_write_apex
Cree y actualice clases Apex:
- Crear nuevas clases Apex
- Actualizar implementaciones de clases existentes
- Especificar versiones de API
- Ejemplo: "Crear una nueva clase Apex para gestionar operaciones de cuentas"
salesforce_read_apex_trigger
Leer activadores Apex:
- Obtener el código fuente completo de activadores específicos
- Listar disparadores que coincidan con patrones de nombres
- Ver metadatos de activadores (versión de API, objeto, estado, etc.)
- Compatibilidad con comodines (* y ?) en patrones de nombres
- Ejemplo: "Mostrar AccountTrigger" o "Buscar todos los activadores del objeto Contact"
salesforce_write_apex_trigger
Cree y actualice disparadores Apex:
- Crear nuevos activadores Apex para objetos específicos
- Actualizar implementaciones de activadores existentes
- Especificar versiones de API y operaciones de eventos
- Ejemplo: "Crear un nuevo activador para el objeto Cuenta" o "Actualizar el activador Cliente potencial"
salesforce_execute_anonymous
Ejecutar código Apex anónimo:
- Ejecutar código Apex sin crear una clase permanente
- Ver registros de depuración y resultados de ejecución
- Útil para operaciones de datos no soportadas directamente por otras herramientas
- Ejemplo: "Ejecutar código Apex para calcular métricas de cuentas" o "Ejecutar un script para actualizar registros relacionados"
salesforce_manage_debug_logs
Gestione registros de depuración para usuarios de Salesforce:
- Activar registros de depuración para usuarios específicos
- Desactivar configuraciones activas de registros de depuración
- Recuperar y ver registros de depuración
- Configurar niveles de registro (NONE, ERROR, WARN, INFO, DEBUG, FINE, FINER, FINEST)
- Ejemplo: "Activar registros de depuración para user@example.com" o "Recuperar registros recientes para un usuario administrador"
Configuración
Autenticación de Salesforce
Puede conectarse a Salesforce utilizando uno de los dos métodos de autenticación:
1. Autenticación de nombre de usuario/contraseña (predeterminado)
- Configure sus credenciales de Salesforce
- Obtenga su token de seguridad (Restablecer desde Configuración de Salesforce)
2. Flujo de credenciales de cliente OAuth 2.0
- Cree una aplicación conectada en Salesforce
- Active la configuración de OAuth y seleccione "Flujo de credenciales de cliente"
- Establezca los ámbitos adecuados (normalmente "api" es suficiente)
- Guarde el ID de cliente y el secreto de cliente
- Importante: Tenga en cuenta la URL de su instancia (por ejemplo,
https://your-domain.my.salesforce.com)
, ya que es necesaria para la autenticación
Uso con Claude Desktop
Añadir a su claude_desktop_config.json
:
Para la autenticación de nombre de usuario/contraseña:
{ "mcpServers": { "salesforce": { "command": "npx", "args": ["-y", "@tsmztech/mcp-server-salesforce"], "env": {"SALESFORCE_CONNECTION_TYPE": "User_Password", "SALESFORCE_USERNAME": "su_nombre_usuario", "SALESFORCE_PASSWORD": "tu_contraseña", "SALESFORCE_TOKEN": "your_security_token", "SALESFORCE_INSTANCE_URL": "org_url" // Opcional. Valor por defecto: https://login.salesforce.com } } } }
Para OAuth 2.0 Flujo de credenciales de cliente:
{ "mcpServers": { "salesforce": { "command": "npx", "args": ["-y", "@tsmztech/mcp-server-salesforce"], "env": {"SALESFORCE_CONNECTION_TYPE": "OAuth_2.0_Client_Credentials", "SALESFORCE_CLIENT_ID": "your_client_id", "SALESFORCE_CLIENT_SECRET": "your_client_secret", "SALESFORCE_INSTANCE_URL": "https://your-domain.my.salesforce.com" // REQUERIDO: Debe ser la URL exacta de su instancia de Salesforce } } } }
Nota: Para el flujo de credenciales de cliente OAuth 2.0,
SALESFORCE_INSTANCE_URL
debe ser la URL exacta de su instancia de Salesforce (por ejemplo,https://your-domain.my.salesforce.com)
. El punto final de token se construirá como<instance_url>/services/oauth2/token
.
Ejemplo de uso
Búsqueda de objetos
"Buscar todos los objetos relacionados con Cuentas" "Mostrarme los objetos que gestionan el servicio de atención al cliente" "¿Qué objetos están disponibles para la gestión de pedidos?"
Obtener información de esquema
"¿Qué campos están disponibles en el objeto Cuenta?" "Muéstrame los valores de la lista de selección para Estado del caso" "Describe los campos de relación en Oportunidad"
Consulta de registros
"Obtener todas las Cuentas creadas este mes" "Mostrarme los Casos de alta prioridad con sus Contactos relacionados" "Encontrar todas las Oportunidades de más de 100k$"
Consultas agregadas
"Contar las oportunidades por etapa" "Mostrarme los ingresos totales por cuenta" "Encontrar cuentas con más de 10 oportunidades" "Calcular el tamaño medio de los acuerdos por representante de ventas y trimestre" "Obtener el número de casos por prioridad y estado"
Gestión de objetos personalizados
"Crear un objeto Opinión del cliente" "Añadir un campo Calificación al objeto Opinión" "Actualizar la configuración de uso compartido del objeto Solicitud de servicio"
Ejemplos con seguridad a nivel de campo:
# Predeterminado: concede acceso al administrador del sistema automáticamente "Crear un campo de lista de selección de estado en Custom_Object__c" # Perfiles personalizados: concede acceso a perfiles específicos "Crear un campo de moneda de ingresos en Cuenta y conceder acceso a los perfiles Usuario de ventas y Usuario de marketing"
Gestión de permisos de campo
"Conceder acceso de Administrador del Sistema al campo Custom_Field__c en Cuenta" "Conceder acceso de sólo lectura al campo Rating__c para el perfil de Usuario de Ventas" "Ver qué perfiles tienen acceso al campo Custom_Field__c" "Revocar el acceso al campo para perfiles específicos"
Búsqueda entre objetos
"Buscar 'nube' en Cuentas y Oportunidades" "Buscar menciones de 'problema de red' en Casos y Artículos de Conocimiento" "Buscar nombre de cliente en todos los objetos relevantes"
Gestión del código Apex
"Mostrarme todas las clases Apex con 'Controller' en el nombre" "Obtener el código completo de la clase AccountService" "Crear una nueva clase de utilidad Apex para manejar operaciones de fecha" "Actualizar la clase LeadConverter para añadir un nuevo método"
Gestión de disparadores Apex
"Listar todos los disparadores para el objeto Account" "Mostrarme el código para el ContactTrigger" "Crear un nuevo disparador para el objeto Opportunity" "Actualizar el disparador Case para manejar eventos after delete"
Ejecutar código Apex anónimo
"Ejecutar código Apex para calcular métricas de cuenta" "Ejecutar un script para actualizar registros relacionados" "Ejecutar un trabajo por lotes para procesar grandes conjuntos de datos"
Gestión de registros de depuración
"Activar registros de depuración para user@example.com" "Recuperar registros recientes para un usuario administrador" "Desactivar registros de depuración para un usuario específico" "Configurar el nivel de registro a DEBUG para un usuario"
Desarrollo
Construir desde el código fuente
# Clonar el repositorio git clone https://github.com/tsmztech/mcp-server-salesforce.git # Navegar al directorio cd mcp-server-salesforce # Instalar dependencias npm install # Construir el proyecto npm run build
Contribución
¡Las contribuciones son bienvenidas! No dude en enviar una Pull Request.
Licencia
Este proyecto está licenciado bajo la licencia MIT - vea el archivo LICENSE para más detalles.
Problemas y soporte
Si encuentra algún problema o necesita soporte, por favor, envíe una incidencia al repositorio de GitHub.