Labsco
gunnit logo

Bitrix24

from gunnit

The Bitrix24 MCP Server is designed to connect external systems to Bitrix24. It provides AI agents with standardized access to Bitrix24 features and data via the Model Context Protocol (MCP). The MCP server enables external AI systems to interact with Bitrix24 modules through a single standardized interface. You can connect the Bitrix24 MCP Server to the AI model you already use and manage Bitrix24 directly from it. The MCP server allows actions to be performed and data to be retrieved strictly within the access rights configured in your Bitrix24: the AI agent receives only the information and capabilities that are explicitly requested and authorized. Interaction with the Tasks module is supported (the list of supported modules and available actions is gradually expanding).

๐Ÿ”ฅ๐Ÿ”ฅFreeQuick setup

Bitrix24 MCP Server

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.

๐Ÿš€ Features

  • Complete CRM Management: Create, read, update, and list contacts, deals, and tasks
  • Advanced Search: Search across all CRM entities with flexible filtering
  • Rate Limiting: Built-in rate limiting to respect Bitrix24 API limits
  • Type Safety: Full TypeScript implementation with comprehensive type definitions
  • Error Handling: Robust error handling and validation
  • Easy Integration: Simple setup with Claude Desktop and other MCP-compatible clients

๐Ÿ“‹ Available Tools

Contact Management

  • bitrix24_create_contact - Create new contacts
  • bitrix24_get_contact - Retrieve contact by ID
  • bitrix24_list_contacts - List contacts with filtering
  • bitrix24_update_contact - Update existing contacts

Deal Management

  • bitrix24_create_deal - Create new deals
  • bitrix24_get_deal - Retrieve deal by ID
  • bitrix24_list_deals - List deals with filtering
  • bitrix24_update_deal - Update existing deals

Task Management

  • bitrix24_create_task - Create new tasks
  • bitrix24_get_task - Retrieve task by ID
  • bitrix24_list_tasks - List tasks with filtering
  • bitrix24_update_task - Update existing tasks

User Management

  • bitrix24_get_user - Get user information by ID
  • bitrix24_get_all_users - Get all users in the system with names and details
  • bitrix24_resolve_user_names - Resolve user IDs to user names
  • bitrix24_get_contacts_with_user_names - Get contacts with user names resolved
  • bitrix24_get_deals_with_user_names - Get deals with user names resolved
  • bitrix24_get_leads_with_user_names - Get leads with user names resolved
  • bitrix24_get_companies_with_user_names - Get companies with user names resolved

Lead Management

  • bitrix24_create_lead - Create new leads
  • bitrix24_get_lead - Retrieve lead by ID
  • bitrix24_list_leads - List leads with filtering
  • bitrix24_get_latest_leads - Get most recent leads
  • bitrix24_get_leads_from_date_range - Get leads from specific date range
  • bitrix24_update_lead - Update existing leads

Company Management

  • bitrix24_create_company - Create new companies
  • bitrix24_get_company - Retrieve company by ID
  • bitrix24_list_companies - List companies with filtering
  • bitrix24_get_latest_companies - Get most recent companies
  • bitrix24_get_companies_from_date_range - Get companies from specific date range
  • bitrix24_update_company - Update existing companies

Enhanced Deal Filtering

  • bitrix24_get_deal_pipelines - Get all deal pipelines/categories
  • bitrix24_get_deal_stages - Get deal stages for pipelines
  • bitrix24_filter_deals_by_pipeline - Filter deals by pipeline
  • bitrix24_filter_deals_by_budget - Filter deals by budget range
  • bitrix24_filter_deals_by_status - Filter deals by stage/status

Utilities

  • bitrix24_search_crm - Search across CRM entities
  • bitrix24_get_current_user - Get current user info
  • bitrix24_validate_webhook - Validate webhook connection
  • bitrix24_diagnose_permissions - Diagnose webhook permissions
  • bitrix24_check_crm_settings - Check CRM settings and configuration
  • bitrix24_test_leads_api - Test leads API endpoints

Sales Team Monitoring

  • bitrix24_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 rates
  • bitrix24_analyze_account_performance - Analyze performance for specific accounts (companies/contacts)
  • bitrix24_compare_user_performance - Compare performance metrics between multiple users
  • bitrix24_track_deal_progression - Track deal progression through pipeline stages with timing analysis
  • bitrix24_monitor_sales_activities - Monitor sales-related activities (tasks, follow-ups, meetings)
  • bitrix24_generate_sales_report - Generate comprehensive sales reports with customizable metrics
  • bitrix24_get_team_dashboard - Get real-time team performance dashboard
  • bitrix24_analyze_customer_engagement - Analyze customer engagement patterns and relationship health
  • bitrix24_forecast_performance - Generate performance forecasts and predictive analytics

๐Ÿ”ง Claude Desktop Integration

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

{
  "mcpServers": {
    "bitrix24": {
      "command": "node",
      "args": ["/path/to/your/bitrix24-mcp-server/build/index.js"],
      "env": {
        "BITRIX24_WEBHOOK_URL": "https://your-domain.bitrix24.com/rest/USER_ID/WEBHOOK_CODE/"
      }
    }
  }
}

๐Ÿ—๏ธ Development

Project Structure

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

Development Commands

# 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

Adding New Tools

  1. Define the tool in 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']
  }
};
  1. Add the execution handler:
case 'bitrix24_new_action':
  // Implementation
  return { success: true, result: 'Action completed' };
  1. Add to allTools array and rebuild.

๐Ÿ”’ Security Considerations

  • Webhook Security: Keep your webhook URL secret and rotate it regularly
  • Environment Variables: Never commit .env files to version control
  • Rate Limiting: The client includes built-in rate limiting (2 requests/second)
  • Error Handling: Sensitive information is not exposed in error messages

๐Ÿ“ API Reference

Bitrix24Client Methods

Contacts

  • createContact(contact: BitrixContact): Promise<string>
  • getContact(id: string): Promise<BitrixContact>
  • updateContact(id: string, contact: Partial<BitrixContact>): Promise<boolean>
  • listContacts(params?: ListParams): Promise<BitrixContact[]>

Deals

  • createDeal(deal: BitrixDeal): Promise<string>
  • getDeal(id: string): Promise<BitrixDeal>
  • updateDeal(id: string, deal: Partial<BitrixDeal>): Promise<boolean>
  • listDeals(params?: ListParams): Promise<BitrixDeal[]>

Tasks

  • createTask(task: BitrixTask): Promise<string>
  • getTask(id: string): Promise<BitrixTask>
  • updateTask(id: string, task: Partial<BitrixTask>): Promise<boolean>
  • listTasks(params?: TaskListParams): Promise<BitrixTask[]>

Users

  • 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[]>

Utilities

  • getCurrentUser(): Promise<any>
  • searchCRM(query: string, entityTypes?: string[]): Promise<any>
  • validateWebhook(): Promise<boolean>

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ†˜ Support

For issues and questions:

  1. Check the troubleshooting section
  2. Review Bitrix24 API documentation
  3. Open an issue on GitHub

Built with โค๏ธ for the AI automation community