Multilead Open API MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for HTTP server | 8000 |
| LOG_LEVEL | No | Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL | INFO |
| TRANSPORT | No | Transport mode: stdio or http | |
| LOG_FORMAT | No | Log format: json (production) or text (development) | json |
| MULTILEAD_DEBUG | No | Enable debug mode | false |
| MULTILEAD_API_KEY | Yes | Your Multilead API key (get yours at https://app.multilead.co/settings/api) | |
| MULTILEAD_TIMEOUT | No | Request timeout in seconds | 30 |
| MULTILEAD_BASE_URL | No | The base URL for the Multilead API | https://api.multilead.co |
| RATE_LIMIT_PER_HOUR | No | Requests per hour limit | 1000 |
| RATE_LIMIT_PER_MINUTE | No | Requests per minute limit | 100 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_leadB | Create a new lead in Multilead Args: email: Lead email address (required) first_name: Lead first name last_name: Lead last name company: Company name title: Job title phone: Phone number tags: List of tags to assign custom_fields: Custom field key-value pairs Returns: Created lead object with ID and metadata |
| get_leadB | Retrieve a lead by ID Args: lead_id: The unique identifier of the lead Returns: Lead object with all properties, tags, and custom fields |
| list_leadsA | List and filter leads with pagination Args: tags: Filter by tags (optional) company: Filter by company name (optional) created_after: Filter leads created after this ISO 8601 datetime created_before: Filter leads created before this ISO 8601 datetime limit: Number of results to return (1-1000, default: 100) offset: Pagination offset (default: 0) Returns: List of leads matching the filter criteria with pagination metadata |
| update_leadA | Update an existing lead's properties Args: lead_id: The unique identifier of the lead email: New email address first_name: New first name last_name: New last name company: New company name title: New job title phone: New phone number tags: New list of tags (replaces existing tags) custom_fields: New custom fields (merges with existing) Returns: Updated lead object |
| delete_leadA | Delete a lead by ID Args: lead_id: The unique identifier of the lead to delete Returns: Success confirmation message |
| add_leads_to_campaignA | Add a new lead to a selected campaign Either profileUrl or email is required. All other fields can be provided in custom_fields. Args: campaign_id: The ID of the campaign to add the lead to profile_url: LinkedIn profile URL of the lead (required if email not provided) email: Email address of the lead (required if profile_url not provided) custom_fields: Additional custom fields for the lead (e.g., {"first_name": "John", "company": "Acme"}) Returns: Created lead information Example: add_leads_to_campaign( campaign_id="12345", email="lead@example.com", custom_fields={"first_name": "John", "company": "Acme Corp"} ) |
| update_lead_in_campaignA | Update one or more variables for a lead in a specified campaign and LinkedIn account This updates lead fields including built-in fields (businessEmail, etc.) and custom variables. Args: campaign_id: The ID of the campaign lead_id: The ID of the lead to update linkedin_account_id: The LinkedIn account ID changed_values: Dictionary of field names and new values to update Can include built-in fields like "businessEmail" or custom fields Returns: Updated lead information Example: update_lead_in_campaign( campaign_id="12345", lead_id="67890", linkedin_account_id="2", changed_values={ "businessEmail": "john.smith@company.com", "custom-variable": "custom value" } ) |
| get_leads_from_threadC | Retrieve leads who are part of a specific conversation thread Args: user_id: The ID of the user account_id: The ID of the account (seat) thread_id: The ID of the conversation thread Returns: List of leads belonging to the thread |
| get_tags_for_leadsC | Retrieve tags for specific leads Args: user_id: The ID of the user account_id: The ID of the account (seat) lead_ids: List of lead IDs whose tags you want to retrieve Returns: Tags associated with the specified leads |
| assign_tag_to_leadC | Add a new tag to a specific lead Args: user_id: The ID of the user account_id: The ID of the account (seat) lead_id: The ID of the lead tag_id: The ID of the tag to assign Returns: Confirmation of tag assignment |
| remove_tag_from_leadC | Remove a specific tag from a specific lead Args: user_id: The ID of the user account_id: The ID of the account (seat) lead_id: The ID of the lead tag_id: The ID of the tag to remove Returns: Confirmation of tag removal |
| get_linkedin_user_infoB | Retrieve LinkedIn profile information for a specific user This returns profile information if you previously started a conversation with them. Args: user_id: The ID of the user account_id: The ID of the account (seat) linkedin_user_id: The LinkedIn user ID Returns: LinkedIn profile information including name, headline, company, etc. |
| pause_lead_executionB | Pause the execution of campaign steps for a specific lead This pauses all upcoming steps in the campaign workflow for this lead. Args: lead_id: The ID of the lead to pause Returns: Confirmation of lead pause |
| resume_lead_executionA | Resume the execution of campaign steps for a specific lead This resumes the campaign workflow for a previously paused lead. Args: lead_id: The ID of the lead to resume Returns: Confirmation of lead resumption |
| get_leads_from_campaignA | Retrieve leads from a specific campaign with advanced filtering Supports 7 groups of filters with OR logic within groups and AND logic between groups:
Args: user_id: The ID of the user account_id: The ID of the account (seat) campaign_id: The ID of the campaign search: Search leads by fullName, email, company, headline, etc. filter_by_verified_emails: Filter leads with verified emails filter_by_not_verified_emails: Filter leads without verified emails filter_by_status: Filter by status ([1]=Discovered, [2]=Connection pending, [3]=Connected not replied, [4]=Replied) filter_by_connection_degree: Used with filter_by_status=[4] for additional status filtering ([1]=replied connected, [2,3]=replied not connected) filter_by_current_step: Filter leads on specific campaign steps filter_by_name: Filter leads whose names contain this value filter_by_company: Filter leads whose company contains this value filter_by_occupation: Filter leads whose occupation contains this value filter_by_headline: Filter leads whose headline contains this value filter_by_out_of_office: Filter leads with "Out of office" status filter_by_step_change_timestamp: Filter leads with stepChangeTimestamp greater than this filter_by_selected_leads: Retrieve specific leads by their IDs limit: Number of results to return (default: 30) offset: Pagination offset (default: 0) Returns: List of leads matching the filter criteria with pagination metadata Example: get_leads_from_campaign( user_id="123", account_id="456", campaign_id="789", filter_by_status=[4], filter_by_connection_degree=[1], filter_by_verified_emails=True, limit=50 ) |
| get_tags_for_seatB | Retrieve all tags from a specific seat (account) Args: user_id: The ID of the user account_id: The ID of the account (seat) Returns: List of all tags for the seat |
| create_tagB | Create a new tag for a specific seat (account) Args: user_id: The ID of the user account_id: The ID of the account (seat) tag_name: Name of the tag to create Returns: Created tag information including tag ID |
| return_lead_to_campaignA | Return a specific lead to a specific campaign This action happens immediately unless a scheduled time is provided. Args: user_id: The ID of the user account_id: The ID of the account (seat) lead_id: The ID of the lead to move target_campaign_id: The ID of the campaign to return the lead to scheduled_time: Optional ISO 8601 datetime to schedule the action Returns: Confirmation of lead transfer |
| get_leads_from_seatA | Retrieve leads from a specific seat (account) with advanced filtering Supports 6 groups of filters with OR logic within groups and AND logic between groups:
Args: user_id: The ID of the user account_id: The ID of the account (seat) search: Search leads by fullName, email, company, headline, etc. filter_by_verified_emails: Filter leads with verified emails filter_by_not_verified_emails: Filter leads without verified emails filter_by_status: Filter by status ([1]=Discovered, [2]=Connection pending, [3]=Connected not replied, [4]=Replied) filter_by_connection_degree: Used with filter_by_status=[4] for additional status filtering ([1]=replied connected, [2,3]=replied not connected) filter_by_name: Filter leads whose names contain this value filter_by_company: Filter leads whose company contains this value filter_by_occupation: Filter leads whose occupation contains this value filter_by_headline: Filter leads whose headline contains this value filter_by_out_of_office: Filter leads with "Out of office" status filter_by_step_change_timestamp: Filter leads with stepChangeTimestamp greater than this filter_by_selected_leads: Retrieve specific leads by their IDs limit: Number of results to return (default: 30) offset: Pagination offset (default: 0) Returns: List of leads from the seat matching the filter criteria Example: get_leads_from_seat( user_id="123", account_id="456", filter_by_company="Acme Corp", filter_by_verified_emails=True, limit=100 ) |
| export_all_campaignsC | Export all campaigns in CSV format Args: user_id: The ID of the user account_id: The ID of the account (seat) Returns: CSV export of all campaigns or download URL |
| export_leads_from_campaignA | Export leads from a specific campaign in CSV format with advanced filtering Supports 7 groups of filters with OR logic within groups and AND logic between groups. Args: user_id: The ID of the user account_id: The ID of the account (seat) campaign_id: The ID of the campaign to export leads from search: Search leads by fullName, email, company, headline, etc. filter_by_verified_emails: Export leads with verified emails filter_by_not_verified_emails: Export leads without verified emails filter_by_status: Filter by status ([1]=Discovered, [2]=Connection pending, [3]=Connected not replied, [4]=Replied) filter_by_connection_degree: Used with filter_by_status=[4] for additional status filtering filter_by_current_step: Export leads on specific campaign steps filter_by_selected_leads: Export specific leads by their IDs filter_by_name: Export leads whose names contain this value filter_by_company: Export leads whose company contains this value filter_by_occupation: Export leads whose occupation contains this value filter_by_headline: Export leads whose headline contains this value filter_by_out_of_office: Export leads with "Out of office" status filter_by_step_change_timestamp: Export leads with stepChangeTimestamp greater than this Returns: CSV export data or download URL Example: export_leads_from_campaign( user_id="123", account_id="456", campaign_id="789", filter_by_status=[4], filter_by_verified_emails=True ) |
| get_campaign_infoC | Retrieve detailed information about a specific campaign Args: user_id: The ID of the user account_id: The ID of the account (seat) campaign_id: The ID of the campaign Returns: Campaign details including name, status, steps, statistics, etc. |
| get_campaign_listA | Retrieve list of all campaigns with filtering and sorting Args: user_id: The ID of the user account_id: The ID of the account (seat) campaign_state: Campaign status filter (1=ACTIVE, 2=DRAFT, 3=ARCHIVED, default: 1) sort_order: Sort direction ("ASC" or "DESC") sort_column: Column to sort by ("isActive", "name", or "createdAt") limit: Number of results to return (default: 30) offset: Pagination offset (default: 0) Returns: List of campaigns with pagination metadata Example: get_campaign_list( user_id="123", account_id="456", campaign_state=1, sort_order="DESC", sort_column="createdAt", limit=50 ) |
| create_lead_sourceA | Create a lead source and link it to a campaign This creates a lead source (e.g., Sales Navigator search URL) and connects it to a campaign for automatic lead import. Args: user_id: The ID of the user who owns the seat account_id: The ID of the seat where the campaign is located campaign_id: The ID of the campaign to link the lead source to lead_source_url: URL of the lead source (e.g., LinkedIn Sales Navigator search) lead_source_type: Type of lead source (e.g., "SALES_NAVIGATOR") dashboard: Dashboard ID (optional) auto_reuse: Auto-reuse setting (optional, 1 to enable) auto_reuse_interval: Auto-reuse interval in days (optional) Returns: Created lead source information Example: create_lead_source( user_id="123", account_id="456", campaign_id=789, lead_source_url="https://www.linkedin.com/sales/search/people?...", lead_source_type="SALES_NAVIGATOR", dashboard=2, auto_reuse=1, auto_reuse_interval=100 ) |
| create_campaign_from_templateA | Create a new campaign from a saved sequence template This creates a URL-based campaign from the user's saved sequences. The campaign goes live immediately after creation. Args: user_id: The ID of the user account_id: The ID of the account (seat) sequence_template_id: The ID of the sequence template to use campaign_name: Name for the new campaign lead_source_url: Optional lead source URL to attach to the campaign Returns: Created campaign information Example: create_campaign_from_template( user_id="123", account_id="456", sequence_template_id="789", campaign_name="Q1 Outreach Campaign", lead_source_url="https://linkedin.com/sales/search/..." ) |
| get_statisticsA | Get statistics for campaigns within a time range This retrieves statistics for all campaigns or a specific campaign if campaign_id is provided. Args: user_id: User ID account_id: Account ID from_timestamp: Statistics start timestamp (Unix timestamp) to_timestamp: Statistics end timestamp (Unix timestamp) curves: List of statistic types to retrieve. Values: 1=PROFILE_VIEW, 2=PROFILE_FOLLOW, 3=INVITATION_SENT, 4=MESSAGE_SENT, 5=INMAIL_SENT, 10=EMAIL_SENT, 11=EMAIL_OPENED, 12=EMAIL_CLICKED, 16=EMAIL_VERIFIED, 6=INVITATION_ACCEPTED, 7=MESSAGE_REPLY, 8=INVITATION_ACCEPTED_RATE, 9=MESSAGE_REPLY_RATE, 14=EMAIL_OPEN_RATE, 15=EMAIL_CLICK_RATE, 17=EMAIL_BOUNCE_RATE time_zone: Timezone for statistics (e.g., "America/New_York", "Europe/Belgrade") campaign_id: Optional campaign ID to get statistics for a specific campaign Returns: Campaign statistics data |
| export_statistics_csvB | Export campaign statistics as a CSV file This retrieves statistics for all campaigns in CSV format. Args: user_id: User ID account_id: Account ID from_timestamp: Statistics start timestamp (Unix timestamp) to_timestamp: Statistics end timestamp (Unix timestamp) curves: List of statistic types to retrieve (same values as get_statistics) time_zone: Timezone for statistics (e.g., "America/New_York", "Europe/Belgrade") Returns: CSV file data with campaign statistics |
| get_step_statisticsC | Get step statistics for a specific campaign This retrieves statistics for individual campaign steps within a specific campaign. Args: user_id: User ID account_id: Account ID campaign_id: Campaign ID to get step statistics for Returns: Step-by-step statistics for the campaign |
| get_all_campaigns_statisticsC | Get summary statistics for all campaigns This retrieves platform-wide summary statistics (totals) for all campaigns. Args: user_id: User ID account_id: Account ID campaign_state: Optional campaign state filter (default: 1) Returns: Summary statistics for all campaigns |
| add_keywords_to_global_blacklistA | Add keywords to the global blacklist via JSON Args: team_id: Team ID user_id: User ID keywords: List of keywords to blacklist (e.g., ["test", "test123"]) keyword_type: Type of keyword. Options: "company_name", "email", "domain", "full_name", "profile_url", "job_title" comparison_type: How to match keywords. Options: "exact", "contains", "starts_with", "ends_with" Returns: Success confirmation |
| import_keywords_to_global_blacklist_csvB | Import keywords to global blacklist from a CSV file Args: team_id: Team ID user_id: User ID csv_file_path: Path to CSV file containing keywords keyword_type: Type of keyword. Options: "company_name", "email", "domain", "full_name", "profile_url", "job_title" comparison_type: How to match keywords. Options: "exact", "contains", "starts_with", "ends_with" Returns: Success confirmation with import results |
| add_keywords_to_blacklistB | Add keywords to your seat's blacklist via JSON Args: user_id: User ID account_id: Account ID (seat ID) keywords: List of keywords to blacklist (e.g., ["John Smith"]) keyword_type: Type of keyword. Options: "company_name", "email", "domain", "full_name", "profile_url", "job_title" comparison_type: How to match keywords. Options: "exact", "contains", "starts_with", "ends_with" Returns: Success confirmation |
| import_keywords_to_blacklist_csvB | Import keywords to your seat's blacklist from a CSV file Args: user_id: User ID account_id: Account ID (seat ID) csv_file_path: Path to CSV file containing keywords keyword_type: Type of keyword. Options: "company_name", "email", "domain", "full_name", "profile_url", "job_title" comparison_type: How to match keywords. Options: "exact", "contains", "starts_with", "ends_with" Returns: Success confirmation with import results |
| activate_inboxflare_warmupB | Activate InboxFlare warm-up for a user This endpoint creates an account for the user on the InboxFlare warm-up tool and sends credentials via email. Args: user_id: User ID to activate warm-up for Returns: Success confirmation with account creation details |
| list_all_seats_of_a_specific_userB | List All Seats of a Specific User This action provides information based on your Team Management role:
Args: search: Optional search query to filter seats (e.g., "John Smith") Returns: List of seats with detailed information |
| register_new_userB | Register New User This action registers a new user on the platform. Args: email: User's email address (required) password: User's password (required) full_name: User's full display name (required) whitelabel_id: Whitelabel ID (required) phone: Optional phone number (e.g., "+3816423416") invitation_id: Optional invitation ID for secure registration skip_confirmation_email: Set to True to skip confirmation email (default: False) Returns: Created user object with registration details |
| get_user_informationB | Get User Information This action retrieves all information on the authorized user (the user whose API key is being used). Returns: Complete user information including profile, settings, and permissions |
| list_all_users_as_a_whitelabelB | List All Users as a Whitelabel As a whitelabel, this action retrieves the list of all your users. Args: limit: Maximum number of results to retrieve (default: 30) offset: Position in the dataset to start from (default: 0) Returns: Paginated list of users with metadata |
| create_seatB | Create Seat This action creates a new seat within a specific team. Args: user_id: User ID who owns the seat plan_id: Plan ID for the seat subscription full_name: Full name for the seat start_utc_time: Start time in UTC (e.g., "08:00") end_utc_time: End time in UTC (e.g., "16:00") time_zone: Timezone (e.g., "Europe/Belgrade", "America/New_York") team_id: Team ID to create the seat in whitelabel_id: Whitelabel ID Returns: Created seat object with subscription details |
| cancel_seatC | Cancel Seat This action cancels a specific seat within a specific team. Args: user_id: User ID who owns the seat account_id: Account/Seat ID to cancel reason: Reason for cancellation Returns: Cancellation confirmation with details |
| reactivate_seatB | Reactivate Seat This action reactivates a specific inactive seat within a specific team. Args: user_id: User ID who owns the seat account_id: Account/Seat ID to reactivate proxy_country: Optional proxy country code (e.g., "us", "gb") Returns: Reactivation confirmation with updated seat status |
| suspend_or_unsuspend_seatB | Suspend or Unsuspend Seat This action suspends or unsuspends a specific seat within a specific team. Args: user_id: User ID who owns the seat account_id: Account/Seat ID to suspend/unsuspend suspended: True to suspend, False to unsuspend Returns: Updated seat status |
| resend_email_confirmation_messageA | Resend Email Confirmation Message This action resends an email confirmation message to the user's email and allows them to confirm their email address. Args: user_id: User ID to resend confirmation for email: Email address that should receive the confirmation email Returns: Confirmation that the email was sent |
| send_password_reset_emailC | Send Password Reset Email This action initializes the user's password reset and sends a password reset email. Args: email: Email address to receive the password reset link Returns: Confirmation that the reset email was sent |
| list_users_associated_with_a_specific_seatA | List Users Associated With a Specific Seat This action retrieves all users associated with the chosen seat in any way. The way they are related to a seat determines their user types:
Args: user_id: User ID account_id: Account/Seat ID limit: Maximum number of results (default: 30) offset: Starting position in dataset (default: 0) search: Search query for email or fullName Returns: Paginated list of associated users with their roles |
| list_teams_under_the_users_white_labelA | List Teams Under the User's White Label This action retrieves all teams under one platform (White label). The user who runs this endpoint must be the platform admin. Args: user_id: User ID (must be platform admin) Returns: List of all teams under the whitelabel |
| change_a_passwordA | Change A Password This action changes the password for a specific user. Regular users can only change their own password and platform co-owners can change the password for all users within their platform. Args: user_id: User ID whose password to change new_password: New password to set Returns: Confirmation of password change |
| get_users_sequence_templatesA | Get User's Sequence Templates This action retrieves all sequence templates (saved sequences) from a user who is a part of certain team. You can use the returned sequence template IDs in the "Create Campaign From A Sequence Template" endpoint. Args: user_id: ID of the user whose saved sequences to retrieve team_id: ID of the team that the user is part of Returns: List of saved sequence templates with IDs |
| transfer_creditsB | Transfer Credits This action transfers credits from the authenticated user to a specified destination user. Args: user_id: Source user ID (authenticated user) destination_user_id: Destination user ID to receive credits quantity: Number of credits to transfer Returns: Transfer confirmation with updated credit balances |
| get_tags_of_a_specific_seatB | Get Tags of a Specific Seat This action retrieves all tags related to a specific seat. Args: user_id: User ID account_id: Account/Seat ID Returns: List of tags associated with the seat |
| connect_linkedin_accountB | Connect LinkedIn Account This actions connects a specific LinkedIn account to a specific seat. Args: user_id: User ID account_id: Account/Seat ID linkedin_email: LinkedIn account email linkedin_password: LinkedIn account password linkedin_subscription_id: LinkedIn subscription type ID country_code: Country code for proxy (e.g., "us", "gb") setup_proxy_type: Proxy setup type (e.g., "BUY") note: Optional note about the connection Returns: LinkedIn connection status and details |
| disconnect_linkedin_accountC | Disconnect LinkedIn Account This action disconnects a specific LinkedIn account from the seat on the platform. Args: user_id: User ID account_id: Account/Seat ID with LinkedIn connection Returns: Disconnection confirmation |
| create_teamB | Create a new team for a specific user Args: user_id: The user ID who will own the team (required) name: The name of the team to create (required) Returns: Created team object with ID and metadata Example: create_team(user_id="1451", name="Sales Team") |
| create_team_roleB | Create a role for a specific team with custom permissions Args: team_id: The ID of the team for which to create this role (required) user_id: Your user ID (required) name: The name of the role (required) permissions: List of permission objects with 'id' and 'isViewOnly' fields (required) Returns: Created role object with ID and permissions Example: create_team_role( team_id="1570", user_id="1451", name="Manager", permissions=[ {"id": 1, "isViewOnly": False}, {"id": 2, "isViewOnly": False} ] ) |
| get_team_rolesB | Retrieve all roles for a specific team Args: team_id: The ID of the team for which to retrieve roles (required) user_id: Your user ID (required) Returns: List of all roles configured for the team with their permissions Example: get_team_roles(team_id="1", user_id="1451") |
| get_team_membersC | Retrieve all members from a specific team Args: user_id: Your user ID (required) team_id: The ID of the team for which to retrieve members (required) Returns: List of all team members with their roles and permissions Example: get_team_members(user_id="1451", team_id="1443") |
| invite_team_memberA | Invite a user to become a member of a specific team The sendAnInvitationEmail flag controls how the invitation works:
Args: team_id: The ID of the team to invite the member to (required) user_id: Your user ID (required) name: The name of the user to invite (required) email: The email address of the user to invite (required) account_roles: List of role assignments with 'roleId' and 'accounts' array (required) can_manage_payment: Whether the user can manage payment settings (default: False) send_invitation_email: Whether to send an email invitation (default: False) Returns: Invitation object with member details and status Example: invite_team_member( team_id="1443", user_id="1451", name="John Doe", email="john@company.com", account_roles=[ { "roleId": "6eb0c288-0a17-4f6c-88a3-bb750b34d7ca", "accounts": [1028] } ], can_manage_payment=False, send_invitation_email=True ) |
| update_team_memberB | Edit and update a team member from a specific team Args: team_id: The ID of the team this member is part of (required) user_id: Your user ID (required) email: The email address of the member to update (required) account_roles: Updated list of role assignments with 'roleId' and 'accounts' array can_manage_team_global_webhooks: Whether the user can manage team global webhooks Returns: Updated team member object with new settings Example: update_team_member( team_id="1443", user_id="1451", email="borisa@company.io", account_roles=[ { "roleId": "d144079f-2a22-4f86-b2a9-45b3289b4bf4", "accounts": [158] } ], can_manage_team_global_webhooks=True ) |
| sync_linkedin_messagesA | Sync all LinkedIn messages for a specific seat to the platform inbox This action retrieves all LinkedIn messages for a specific seat and displays them inside the platform's inbox for centralized message management. Args: user_id: Your user ID (required) account_id: The ID of the seat for which to sync LinkedIn messages (required) Returns: Sync status and count of messages retrieved Example: sync_linkedin_messages(user_id="16911", account_id="9852") |
| get_messages_from_a_specific_threadB | Retrieve messages from specific conversation threads This retrieves messages from one or more specific threads, with optional filtering by step change timestamp to get only recent updates. Args: user_id: User ID account_id: Account ID threads: List of thread IDs to retrieve messages from filter_by_step_change_timestamp: Optional ISO timestamp to filter messages that were updated after this time Returns: Messages from the specified threads |
| get_conversations_by_identifiersC | Retrieve conversations using specific identifiers This finds all conversations associated with the provided identifiers (e.g., LinkedIn profile IDs, email addresses). Args: user_id: User ID account_id: Account ID identifiers: List of identifiers to search for (e.g., LinkedIn IDs) Returns: Conversations matching the provided identifiers |
| get_unread_conversationsB | Retrieve unread conversations This gets all conversations that have not been marked as read, with optional filtering by contact name. Args: user_id: User ID account_id: Account ID limit: Maximum number of results to return (default: 100) offset: Pagination offset (default: 0) name: Optional search filter for contact name Returns: List of unread conversations |
| get_other_conversationsB | Retrieve other conversations (not categorized as unread) This gets conversations from the "All other messages" section. Args: user_id: User ID account_id: Account ID limit: Maximum number of results to return (default: 100) offset: Pagination offset (default: 0) name: Optional search filter for contact name Returns: List of other conversations |
| get_all_conversationsB | Retrieve all conversations from all channels This gets conversations from the "All channels" endpoint, with optional filtering by name and tags. Args: user_id: User ID account_id: Account ID limit: Maximum number of results to return (default: 100) offset: Pagination offset (default: 0) name: Optional search filter for contact name tag_ids: Optional comma-separated list of tag IDs to filter by Returns: List of all conversations |
| get_campaign_conversationsB | Retrieve conversations from a specific campaign This gets all conversations associated with a particular campaign. Args: user_id: User ID account_id: Account ID campaign_id: Campaign ID to get conversations from limit: Maximum number of results to return (default: 100) offset: Pagination offset (default: 0) name: Optional search filter for contact name Returns: Conversations from the specified campaign |
| get_messages_for_leadsC | Retrieve messages for specific leads This gets conversation messages associated with specific lead IDs. Args: user_id: User ID account_id: Account ID lead_ids: Optional list of lead IDs to get messages for limit: Maximum number of results to return (default: 100) Returns: Messages for the specified leads |
| mark_messages_as_seenC | Mark messages in a thread as seen This marks all messages in a specific conversation thread as read/seen. Args: user_id: User ID account_id: Account ID thread: Thread ID to mark as seen Returns: Success confirmation |
| send_new_emailB | Send a new email to a recipient This sends a new email through the platform to a recipient who may not have an existing thread. Args: user_id: User ID account_id: Account ID recipient: Email address of the recipient subject: Email subject line content: Email body content (can include HTML) signature_id: ID of the signature to use Returns: Sent email details |
| send_email_replyC | Send an email reply to an existing thread This sends a reply to an existing email conversation thread. Args: user_id: User ID account_id: Account ID thread: Thread ID to reply to message: Email message content lead_id: Lead ID associated with this conversation campaign_id: Campaign ID associated with this conversation recipient: Email address of the recipient Returns: Sent email reply details |
| send_linkedin_messageB | Send a LinkedIn message to an existing thread This sends a LinkedIn message to an existing conversation in the platform's inbox. Args: user_id: User ID account_id: Account ID message: Message content to send linkedin_user_id: LinkedIn user ID of the recipient public_identifier: LinkedIn public identifier of the recipient campaign_id: Campaign ID associated with this conversation lead_id: Lead ID associated with this conversation Returns: Sent LinkedIn message details |
| get_lead_messagesC | Retrieve all messages for a specific lead This gets all conversation messages associated with a particular lead. Args: user_id: User ID account_id: Account ID lead_id: Lead ID to get messages for Returns: All messages for the specified lead |
| create_webhookA | Create a non-global webhook This creates a webhook that listens for specific events. Non-global webhooks are scoped to specific campaigns or resources. Args: user_id: User ID account_id: Account ID webhooks: List of webhook configurations, each containing: - url: Webhook endpoint URL - events: List of event types to subscribe to - campaignId: (Optional) Campaign ID to scope webhook to Returns: Created webhook details |
| create_global_webhookB | Create a global webhook This creates a webhook that listens for events across all campaigns and resources in the account. Args: user_id: User ID account_id: Account ID webhooks: List of webhook configurations, each containing: - url: Webhook endpoint URL - events: List of event types to subscribe to Returns: Created global webhook details |
| list_webhooksB | List non-global webhooks This retrieves all non-global webhooks configured for the account. Args: user_id: User ID account_id: Account ID limit: Maximum number of results to return (default: 30) offset: Pagination offset (default: 0) Returns: List of non-global webhooks |
| list_global_webhooksB | List global webhooks This retrieves all global webhooks configured for the account. Args: user_id: User ID account_id: Account ID limit: Maximum number of results to return (default: 30) offset: Pagination offset (default: 0) Returns: List of global webhooks |
| delete_webhookA | Delete a non-global webhook This removes a specific non-global webhook by its ID. Args: user_id: User ID account_id: Account ID webhook_id: Webhook ID to delete Returns: Success confirmation |
| delete_global_webhookB | Delete a global webhook This removes a specific global webhook by matching URL and event subscriptions. Args: user_id: User ID account_id: Account ID array_of_actions: List of event action types the webhook was subscribed to array_of_ids: List of resource IDs associated with the webhook url: Webhook URL to delete Returns: Success confirmation |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| lead_enrichment_prompt | Prompt template for enriching lead data with AI Provides guidance for analyzing and enriching lead information including company research, contact validation, and lead scoring. |
| campaign_analysis_prompt | Prompt template for analyzing campaign performance Provides guidance for evaluating email campaign metrics and generating actionable insights for optimization. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Multilead MCP Server Configuration | Current server configuration including API base URL, timeout settings, and debug mode status |
| Multilead API Statistics | API usage statistics and account information including lead count, campaign count, and rate limits |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vanman2024/multilead-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server