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 build
Rate 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