UNPKG

@iriseller/mcp-server

Version:

Model Context Protocol (MCP) server providing access to IRISeller's AI sales intelligence platform with 7 AI agents, multi-CRM integration, advanced sales workflows, email automation (detection/sending/campaigns), and robust asynchronous agent execution h

516 lines (417 loc) • 11.9 kB
# IRISeller MCP Server A Model Context Protocol (MCP) server that provides access to the IRISeller AI Agent Ecosystem, enabling external systems to leverage advanced sales AI capabilities. ## Overview The IRISeller MCP Server exposes 26 powerful tools that give external systems access to: - **7 AI Agents**: Lead qualification, prospecting, personalization, sequencing, social selling, nurturing, and objection handling - **Multi-CRM Data**: Real-time access to Salesforce, Dynamics, and Oracle CRM data - **6 Workflows**: Complete multi-agent sales processes - **Sales Intelligence**: Company research, forecasting, and analytics - **Email Automation**: Email detection, sending, campaigns, templates, and status monitoring - **Web Search**: Real-time web search capabilities using Claude's native web search tool ## Features ### šŸ¤– **AI Agent Tools** - **Lead Qualification**: BANT analysis with AI-powered insights - **Company Research**: Multi-source intelligence gathering - **Personalization**: AI-generated personalized outreach - **Workflow Execution**: Complete multi-agent sales processes - **Asynchronous Execution**: Robust handling of long-running agent tasks with completion polling and result retrieval ### šŸ“Š **CRM Integration** - **Multi-CRM Support**: Salesforce, Microsoft Dynamics, Oracle CX - **Real-time Data**: Live lead, opportunity, contact, and account data - **Advanced Querying**: Filtering, sorting, and pagination ### šŸ“ˆ **Sales Intelligence** - **Forecasting**: AI-powered sales predictions - **Analytics**: Performance metrics and insights - **Health Monitoring**: Service status and agent availability ### šŸ“§ **Email Automation** - **Email Detection**: Monitor incoming emails with advanced filtering - **Email Sending**: Send personalized emails with template support - **Campaign Management**: Automated email sequences and tracking - **Template Management**: Create and manage email templates - **Status Monitoring**: Real-time email system health and statistics ## Quick Start ### Option 1: NPX (Recommended) Run directly with npx - no installation required: ```bash npx @iriseller/mcp-server@latest --email your-email@example.com --password your-password --api-url https://beta.iriseller.com ``` ### Option 2: Global Installation ```bash # Install globally npm install -g @iriseller/mcp-server # Run with credentials iriseller-mcp-server --email your-email@example.com --password your-password ``` ### Option 3: Local Development ```bash cd packages/mcp-server npm install npm run build npm start ``` ### CLI Options ```bash iriseller-mcp-server --help Options: --email <email> IRISeller account email --password <password> IRISeller account password --api-url <url> IRISeller API URL (default: "https://beta.iriseller.com") --crewai-url <url> CrewAI API URL --debug Enable debug mode --jwt-secret <secret> JWT secret for token generation -h, --help display help for command ``` ### Environment Variables You can also use environment variables instead of CLI options: ```env # IRISeller Backend API Configuration IRISELLER_API_URL=https://beta.iriseller.com CREWAI_API_URL=http://localhost:8001 CRM_CONNECT_API_URL=https://beta.iriseller.com/api/crm-connect # Authentication IRISELLER_EMAIL=your-email@example.com IRISELLER_PASSWORD=your-password JWT_SECRET=your_jwt_secret_here # Optional: Debug mode DEBUG=true ``` ## Available Tools ### Core CRM Tools #### `qualify_lead` Analyze and qualify leads using IRISeller's BANT framework with AI-powered insights. ```json { "name": "qualify_lead", "arguments": { "contact_name": "John Smith", "company_name": "TechCorp Inc", "title": "VP of Sales", "industry": "Technology", "email": "john@techcorp.com" } } ``` #### `query_crm` Search and retrieve data from multiple CRM systems. ```json { "name": "query_crm", "arguments": { "entity_type": "leads", "filters": { "status": "Open", "industry": "Technology" }, "limit": 10 } } ``` #### `research_company` Perform comprehensive company research using AI agents. ```json { "name": "research_company", "arguments": { "company_name": "TechCorp Inc", "research_depth": "comprehensive", "include_competitors": true } } ``` ### AI Agent Tools #### `execute_agent` Execute individual AI agents for specific sales tasks. ```json { "name": "execute_agent", "arguments": { "agent_name": "personalization", "input_data": { "prospect_data": { "name": "John Smith", "company": "TechCorp Inc" }, "message_type": "email" } } } ``` #### `get_agent_results` Retrieve results from a completed or running agent execution. ```json { "name": "get_agent_results", "arguments": { "execution_id": "abc123-def456-ghi789", "wait_for_completion": true, "timeout_seconds": 30 } } ``` #### `wait_for_agent_completion` Wait for an agent execution to complete and return final results. ```json { "name": "wait_for_agent_completion", "arguments": { "execution_id": "abc123-def456-ghi789", "timeout_seconds": 120, "check_interval_seconds": 5 } } ``` #### `execute_workflow` Execute multi-agent workflows for complete sales processes. ```json { "name": "execute_workflow", "arguments": { "workflow_type": "full_sdr_workflow", "input_data": { "company_name": "TechCorp Inc", "contact_name": "John Smith" } } } ``` #### `personalize_outreach` Generate personalized outreach messages using AI. ```json { "name": "personalize_outreach", "arguments": { "prospect_data": { "name": "John Smith", "company": "TechCorp Inc", "title": "VP of Sales" }, "message_type": "email", "tone": "professional" } } ``` ### Analytics Tools #### `forecast_sales` Generate sales forecasts and pipeline analysis. ```json { "name": "forecast_sales", "arguments": { "time_period": "90d", "include_scenarios": true } } ``` ### Web Search Tools #### `web_search` Search the web for real-time information using Claude's native web search capability. ```json { "name": "web_search", "arguments": { "query": "latest AI trends 2024", "max_uses": 3, "allowed_domains": ["nature.com", "arxiv.org", "techcrunch.com"], "user_location": { "type": "approximate", "city": "San Francisco", "region": "California", "country": "US", "timezone": "America/Los_Angeles" } } } ``` **Parameters:** - `query` (required): The search query to execute - `max_uses` (optional): Maximum number of search operations (1-5, default: 3) - `allowed_domains` (optional): Array of domains to restrict search to - `blocked_domains` (optional): Array of domains to exclude from search - `user_location` (optional): Location context for localized results - `type`: Must be "approximate" - `city`: City name - `region`: State or region name - `country`: Country code (e.g., "US", "CA") - `timezone`: IANA timezone (e.g., "America/New_York") **Features:** - **Native Integration**: Uses Claude's built-in web search capability - **AI Summaries**: Provides comprehensive summaries with citations - **Domain Filtering**: Control which sites to include or exclude - **Localization**: Get location-specific search results - **No External APIs**: Requires only your Anthropic API key ### Utility Tools #### `list_agents` Get list of available AI agents and their capabilities. ```json { "name": "list_agents", "arguments": { "include_status": true } } ``` #### `list_workflows` Get list of available workflows and their descriptions. ```json { "name": "list_workflows", "arguments": { "include_details": true } } ``` #### `health_check` Check the health status of IRISeller services and agents. ```json { "name": "health_check", "arguments": { "detailed": true } } ``` ## Integration Examples ### Claude Desktop Integration #### Option 1: NPX (Recommended) Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS): ```json { "mcpServers": { "iriseller": { "command": "npx", "args": ["@iriseller/mcp-server@latest", "--email", "your-email@company.com", "--password", "your-password", "--api-url", "https://beta.iriseller.com"], "env": { "JWT_SECRET": "your-jwt-secret-here" }, "disabled": false, "autoApprove": ["qualify_lead", "query_crm", "research_company"] } } } ``` #### Option 2: Global Installation ```json { "mcpServers": { "iriseller": { "command": "iriseller-mcp-server", "args": ["--email", "your-email@company.com", "--password", "your-password"], "env": { "IRISELLER_API_URL": "https://beta.iriseller.com", "JWT_SECRET": "your-jwt-secret-here" } } } } ``` #### Option 3: Local Development ```json { "mcpServers": { "iriseller": { "command": "node", "args": ["/path/to/IRISeller/packages/mcp-server/dist/index.js"], "env": { "IRISELLER_API_URL": "http://localhost:3001", "CREWAI_API_URL": "http://localhost:8001", "DEBUG": "false" } } } } ``` ### Custom Application Integration ```typescript import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js'; const transport = new StdioClientTransport({ command: 'node', args: ['path/to/mcp-server/dist/index.js'] }); const client = new Client({ name: 'my-app', version: '1.0.0' }, { capabilities: {} }); await client.connect(transport); // Qualify a lead const result = await client.request({ method: 'tools/call', params: { name: 'qualify_lead', arguments: { contact_name: 'John Smith', company_name: 'TechCorp Inc' } } }); ``` ## Error Handling The MCP server provides detailed error information: ```json { "error": { "code": -32602, "message": "Invalid params: contact_name and company_name are required" } } ``` Common error codes: - `-32601`: Method not found (unknown tool) - `-32602`: Invalid params (validation failed) - `-32603`: Internal error (service unavailable) ## Development ### Project Structure ``` src/ ā”œā”€ā”€ types/ # TypeScript type definitions ā”œā”€ā”€ services/ # API service integrations ā”œā”€ā”€ handlers/ # Tool request handlers ā”œā”€ā”€ tools/ # MCP tool definitions └── index.ts # Main server implementation ``` ### Building ```bash npm run build ``` ### Testing ```bash # Run the server in debug mode DEBUG=true npm run dev # Test with a simple tool call echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' | npm run dev ``` ### Adding New Tools 1. Define the tool in `src/tools/index.ts` 2. Add the handler in `src/handlers/tool-handlers.ts` 3. Update types if needed in `src/types/index.ts` 4. Test the new tool ## Troubleshooting ### Common Issues 1. **Service Connection Errors** - Ensure IRISeller backend is running on port 3001 - Ensure CrewAI service is running on port 8001 - Check network connectivity 2. **Authentication Errors** - Verify API keys in environment variables - Check JWT token configuration 3. **Tool Execution Timeouts** - AI agents may take 30-60 seconds for complex operations - Increase timeout settings if needed ### Debug Mode Enable debug logging: ```bash DEBUG=true npm run dev ``` This will show: - API requests and responses - Tool execution details - Service health checks ## License MIT License - see LICENSE file for details. ## Support For support and questions: - Check the IRISeller documentation - Review the MCP protocol specification - Open an issue in the repository