espocrm-graphql-server
Version:
A modern GraphQL server for EspoCRM with TypeScript, MCP integration, and AI-optimized dynamic schema generation
167 lines • 4.4 kB
JSON
{
"name": "espocrm-graphql-mcp",
"version": "1.0.0",
"description": "MCP server for EspoCRM GraphQL API - provides CRM data access to AI assistants",
"transport": {
"type": "stdio"
},
"tools": [
{
"name": "query_contacts",
"description": "Search and retrieve contact information from EspoCRM",
"inputSchema": {
"type": "object",
"properties": {
"filter": {
"type": "object",
"properties": {
"firstName": { "type": "string" },
"lastName": { "type": "string" },
"email": { "type": "string" }
}
},
"limit": {
"type": "number",
"default": 10
}
}
}
},
{
"name": "query_accounts",
"description": "Search and retrieve account/company information",
"inputSchema": {
"type": "object",
"properties": {
"filter": {
"type": "object",
"properties": {
"name": { "type": "string" },
"type": { "type": "string" }
}
},
"limit": {
"type": "number",
"default": 10
}
}
}
},
{
"name": "query_leads",
"description": "Search and retrieve sales leads",
"inputSchema": {
"type": "object",
"properties": {
"filter": {
"type": "object",
"properties": {
"status": { "type": "string" },
"source": { "type": "string" }
}
},
"limit": {
"type": "number",
"default": 10
}
}
}
},
{
"name": "create_contact",
"description": "Create a new contact in the CRM",
"inputSchema": {
"type": "object",
"required": ["firstName", "lastName"],
"properties": {
"firstName": { "type": "string" },
"lastName": { "type": "string" },
"email": { "type": "string" },
"phone": { "type": "string" },
"accountId": { "type": "string" }
}
}
},
{
"name": "update_entity",
"description": "Update any entity in the CRM",
"inputSchema": {
"type": "object",
"required": ["entityType", "id", "data"],
"properties": {
"entityType": {
"type": "string",
"enum": ["Contact", "Account", "Lead", "Opportunity", "Case"]
},
"id": { "type": "string" },
"data": { "type": "object" }
}
}
},
{
"name": "execute_graphql",
"description": "Execute a custom GraphQL query against the EspoCRM data",
"inputSchema": {
"type": "object",
"required": ["query"],
"properties": {
"query": { "type": "string" },
"variables": { "type": "object" }
}
}
}
],
"resources": [
{
"uri": "espocrm://schema",
"name": "GraphQL Schema",
"description": "The current GraphQL schema with all available entities and fields",
"mimeType": "application/json"
},
{
"uri": "espocrm://entities",
"name": "Available Entities",
"description": "List of all discovered EspoCRM entities",
"mimeType": "application/json"
},
{
"uri": "espocrm://health",
"name": "System Health",
"description": "Current health status of the GraphQL server",
"mimeType": "application/json"
}
],
"prompts": [
{
"name": "crm_search",
"description": "Search across all CRM entities for relevant information",
"arguments": [
{
"name": "search_term",
"description": "What to search for",
"required": true
}
]
},
{
"name": "sales_pipeline",
"description": "Analyze the current sales pipeline and opportunities",
"arguments": [
{
"name": "stage",
"description": "Specific stage to analyze (optional)"
}
]
},
{
"name": "contact_insights",
"description": "Get insights about a specific contact or group of contacts",
"arguments": [
{
"name": "contact_filter",
"description": "Filter criteria for contacts"
}
]
}
]
}