by gunnit
A comprehensive Model Context Protocol (MCP) server for Bitrix24 CRM integration, enabling AI agents to seamlessly interact with your Bitrix24 instance through a powerful set of tools.
bitrix24_create_contact - Create new contactsbitrix24_get_contact - Retrieve contact by IDbitrix24_list_contacts - List contacts with filteringbitrix24_update_contact - Update existing contactsbitrix24_create_deal - Create new dealsbitrix24_get_deal - Retrieve deal by IDbitrix24_list_deals - List deals with filteringbitrix24_update_deal - Update existing dealsbitrix24_create_task - Create new tasksbitrix24_get_task - Retrieve task by IDbitrix24_list_tasks - List tasks with filteringbitrix24_update_task - Update existing tasksbitrix24_get_user - Get user information by IDbitrix24_get_all_users - Get all users in the system with names and detailsbitrix24_resolve_user_names - Resolve user IDs to user namesbitrix24_get_contacts_with_user_names - Get contacts with user names resolvedbitrix24_get_deals_with_user_names - Get deals with user names resolvedbitrix24_get_leads_with_user_names - Get leads with user names resolvedbitrix24_get_companies_with_user_names - Get companies with user names resolvedbitrix24_create_lead - Create new leadsbitrix24_get_lead - Retrieve lead by IDbitrix24_list_leads - List leads with filteringbitrix24_get_latest_leads - Get most recent leadsbitrix24_get_leads_from_date_range - Get leads from specific date rangebitrix24_update_lead - Update existing leadsbitrix24_create_company - Create new companiesbitrix24_get_company - Retrieve company by IDbitrix24_list_companies - List companies with filteringbitrix24_get_latest_companies - Get most recent companiesbitrix24_get_companies_from_date_range - Get companies from specific date rangebitrix24_update_company - Update existing companiesbitrix24_get_deal_pipelines - Get all deal pipelines/categoriesbitrix24_get_deal_stages - Get deal stages for pipelinesbitrix24_filter_deals_by_pipeline - Filter deals by pipelinebitrix24_filter_deals_by_budget - Filter deals by budget rangebitrix24_filter_deals_by_status - Filter deals by stage/statusbitrix24_search_crm - Search across CRM entitiesbitrix24_get_current_user - Get current user infobitrix24_validate_webhook - Validate webhook connectionbitrix24_diagnose_permissions - Diagnose webhook permissionsbitrix24_check_crm_settings - Check CRM settings and configurationbitrix24_test_leads_api - Test leads API endpointsbitrix24_monitor_user_activities - Monitor user activities (calls, emails, timeline interactions, response times)bitrix24_get_user_performance_summary - Get comprehensive performance summary with deal metrics and conversion ratesbitrix24_analyze_account_performance - Analyze performance for specific accounts (companies/contacts)bitrix24_compare_user_performance - Compare performance metrics between multiple usersbitrix24_track_deal_progression - Track deal progression through pipeline stages with timing analysisbitrix24_monitor_sales_activities - Monitor sales-related activities (tasks, follow-ups, meetings)bitrix24_generate_sales_report - Generate comprehensive sales reports with customizable metricsbitrix24_get_team_dashboard - Get real-time team performance dashboardbitrix24_analyze_customer_engagement - Analyze customer engagement patterns and relationship healthbitrix24_forecast_performance - Generate performance forecasts and predictive analyticsgit clone <repository-url> cd bitrix24-mcp-server npm install
cp .env.example .env # Edit .env with your Bitrix24 webhook URL
npm run build
npm test
Create a .env file with the following variables:
BITRIX24_WEBHOOK_URL=https://your-domain.bitrix24.com/rest/USER_ID/WEBHOOK_CODE/ NODE_ENV=development LOG_LEVEL=info
https://domain.bitrix24.com/rest/USER_ID/WEBHOOK_CODE/)Add the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
*Configuration content*
Create a new contact named John Smith with email john@example.com and phone +39 123 456 789
Create a new contact for Maria Rossi with email maria@company.com, then create a deal titled "Website Development Project" for ā¬5000 and link it to this contact
Create a task titled "Follow up with client" with high priority, deadline tomorrow, and link it to contact ID 123
Search for all contacts and deals related to "example.com"
bitrix24-mcp-server/
āāā src/
ā āāā bitrix24/
ā ā āāā client.ts # Bitrix24 API client
ā āāā tools/
ā ā āāā index.ts # MCP tools definitions
ā āāā utils/
ā ā āāā logger.ts # Logging utilities
ā āāā config/
ā ā āāā index.ts # Configuration management
ā āāā index.ts # Main MCP server
āāā test/
ā āāā integration.test.js # Integration tests
āāā build/ # Compiled JavaScript
āāā package.json
āāā tsconfig.json
āāā README.md
# Install dependencies npm install # Build the project npm run build # Watch mode for development npm run dev # Run tests npm test # Start the server npm start
src/tools/index.ts:export const newTool: Tool = { name: 'bitrix24_new_action', description: 'Description of the new action', inputSchema: { type: 'object', properties: { // Define parameters }, required: ['requiredParam'] } };
case 'bitrix24_new_action': // Implementation return { success: true, result: 'Action completed' };
allTools array and rebuild..env files to version control"Webhook validation failed"
"Cannot find module" errors
npm install to install dependenciesnpm run buildRate limiting errors
Set NODE_ENV=development and LOG_LEVEL=debug in your .env file for detailed logging.
createContact(contact: BitrixContact): Promise<string>getContact(id: string): Promise<BitrixContact>updateContact(id: string, contact: Partial<BitrixContact>): Promise<boolean>listContacts(params?: ListParams): Promise<BitrixContact[]>createDeal(deal: BitrixDeal): Promise<string>getDeal(id: string): Promise<BitrixDeal>updateDeal(id: string, deal: Partial<BitrixDeal>): Promise<boolean>listDeals(params?: ListParams): Promise<BitrixDeal[]>createTask(task: BitrixTask): Promise<string>getTask(id: string): Promise<BitrixTask>updateTask(id: string, task: Partial<BitrixTask>): Promise<boolean>listTasks(params?: TaskListParams): Promise<BitrixTask[]>getUser(userId: string): Promise<any>getAllUsers(): Promise<any[]>getUsersByIds(userIds: string[]): Promise<any[]>resolveUserNames(userIds: string[]): Promise<Record<string, string>>enhanceWithUserNames<T>(items: T[], userIdFields?: string[]): Promise<T[]>getCurrentUser(): Promise<any>searchCRM(query: string, entityTypes?: string[]): Promise<any>validateWebhook(): Promise<boolean>MIT License - see LICENSE file for details.
For issues and questions:
Built with ā¤ļø for the AI automation community
No version information available