smartlead-mcp-by-leadmagic
Version:
💜 The Premier Model Context Protocol Server for SmartLead's Cold Email Automation Platform - Complete API coverage with 116+ tools for campaign management, lead tracking, smart delivery, and analytics. Beautiful purple-gradient installer, zero-config set
130 lines • 4.1 kB
TypeScript
/**
* SmartLead MCP Server - Client Management Client
*
* Client module for client management API endpoints.
* Handles all client-related operations including creation, updates, and management.
*
* @author LeadMagic Team
* @version 1.5.0
*/
import { BaseSmartLeadClient } from '../../client/base.js';
import type { SuccessResponse } from '../../types.js';
interface CreateClientRequest {
name: string;
email: string;
organization?: string;
permissions?: string[];
settings?: Record<string, unknown>;
}
interface ClientApiKeyRequest {
client_id?: number;
name?: string;
permissions?: string[];
}
interface Client {
id: number;
name: string;
email: string;
organization?: string;
created_at: string;
updated_at: string;
status: string;
}
interface TeamDetails {
team_id: string;
team_name: string;
organization: string | null;
members_count: number;
clients: Client[];
active_campaigns: number;
recent_performance: {
period: string;
stats: {
sent: number;
opened: number;
replied: number;
bounced: number;
};
};
created_at: string | null;
last_updated: string;
}
interface TeamDetailsResponse extends SuccessResponse {
data: TeamDetails;
}
/**
* Client Management Client
*
* Provides methods for managing SmartLead clients including:
* - Creating and updating clients
* - Managing client settings and permissions
* - Client analytics and reporting
* - Client team management
*/
export declare class ClientManagementClient extends BaseSmartLeadClient {
/**
* Add Client To System (Whitelabel or not)
* POST /client
*/
addClientToSystem(params: CreateClientRequest): Promise<SuccessResponse>;
/**
* Create a new client (alias for addClientToSystem)
*/
createClient(params: CreateClientRequest): Promise<SuccessResponse>;
/**
* Fetch all clients
* GET /client
*/
getAllClients(): Promise<Client[]>;
/**
* Create New Client API Key
* POST /client/api-key
*/
createClientApiKey(params: ClientApiKeyRequest): Promise<SuccessResponse>;
/**
* Get Clients API Keys
* GET /client/api-key
*/
getClientApiKeys(): Promise<SuccessResponse>;
/**
* Delete Client API Key
* DELETE /client/api-key/{api_key_id}
*/
deleteClientApiKey(apiKeyId: number): Promise<SuccessResponse>;
/**
* Reset Client API Key
* PUT /client/api-key/{api_key_id}/reset
*/
resetClientApiKey(apiKeyId: number): Promise<SuccessResponse>;
/**
* Get team details - Aggregates team information from various sources
* This is a wrapper method that provides simplified team information
* without requiring date ranges like the analytics endpoints
*
* @param {string} [teamId] - Optional team ID to filter results (defaults to 'default')
* @returns {Promise<TeamDetailsResponse>} Team details including members, campaigns, and performance metrics
* @throws {Error} If team details cannot be retrieved or if provided teamId is invalid
*
* @example
* // Get default team details
* const teamDetails = await client.getTeamDetails();
* console.log(`Team: ${teamDetails.data.team_name} with ${teamDetails.data.members_count} members`);
*
* @example
* // Get specific team details
* const teamDetails = await client.getTeamDetails('team_123');
* console.log(`Active campaigns: ${teamDetails.data.active_campaigns}`);
*
* @description
* This method aggregates data from multiple endpoints:
* - Client list for team member information
* - Team board analytics for performance metrics
* - Campaign list for active campaign count
*
* Returns a unified response with fallback values if any endpoint fails,
* ensuring the method remains robust and reliable.
*/
getTeamDetails(teamId?: string): Promise<TeamDetailsResponse>;
}
export {};
//# sourceMappingURL=client.d.ts.map