suitecrm-mcp-server
v1.0.0
Published
Model Context Protocol server for SuiteCRM integration with natural language SQL reporting
Maintainers
Readme
SuiteCRM MCP Server
A Model Context Protocol (MCP) server for SuiteCRM integration using TypeScript and the official MCP SDK.
Features
- ✅ Full MCP Protocol Implementation using @modelcontextprotocol/sdk
- ✅ TypeScript with strict type checking
- ✅ OAuth 2.0 Authentication with client credentials flow
- ✅ Four Core Tools:
authenticate_crm- Authenticate with SuiteCRMget_modules- Fetch available CRM modulesget_module_schema- Get detailed module schemasexecute_query- Execute SQL queries with security validation
- ✅ Security Features: SQL injection prevention, query validation
- ✅ Performance: Token caching, schema caching, connection pooling
- ✅ Production-ready logging with Winston
Quick Start
Prerequisites
- Node.js 18.0.0 or higher
- SuiteCRM instance with REST API enabled
- OAuth 2.0 client credentials
Installation
Install dependencies
npm installConfigure environment
cp .env.example .env # Edit .env with your SuiteCRM credentialsBuild and start
npm run build npm start
Configuration
Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| SUITECRM_URL | SuiteCRM instance URL | http://localhost/suitecrm |
| SUITECRM_CLIENT_ID | OAuth client ID | - |
| SUITECRM_CLIENT_SECRET | OAuth client secret | - |
| LOG_LEVEL | Logging level | info |
| MAX_QUERY_ROWS | Maximum rows per query | 100 |
API Tools
1. authenticate_crm
Authenticate with SuiteCRM using client credentials.
Parameters: crm_url, client_id, client_secret
2. get_modules
Fetch available CRM modules.
Parameters: crm_url, access_token
3. get_module_schema
Get detailed schema for a specific module.
Parameters: crm_url, access_token, module_name
4. execute_query
Execute SQL query against CRM database.
Parameters: crm_url, access_token, sql_query
Security
- SQL injection prevention
- Query complexity analysis
- Input sanitization
- Audit logging
- Query limits and timeouts
Development
npm run dev # Development mode
npm run build # Build TypeScript
npm test # Run tests
npm run lint # Run ESLintLicense
MIT License
