Skip to main content
Glama
masridigital

Apollo.io MCP Server

by masridigital

find_email

Find and verify email addresses using a person's name and company domain or LinkedIn profile URL.

Instructions

Find and verify email addresses for a person. Provide name and company domain or LinkedIn URL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
first_nameNoFirst name
last_nameNoLast name
domainNoCompany domain
linkedin_urlNoLinkedIn profile URL

Implementation Reference

  • The handler function that implements the core logic of the 'find_email' tool. It calls Apollo's /people/match endpoint with provided arguments (name/domain or LinkedIn), extracts the person's email data, and returns a formatted text response.
    private async findEmail(args: any) {
      const response = await this.axiosInstance.post("/people/match", args);
      const person = response.data.person;
    
      if (!person) {
        return {
          content: [
            {
              type: "text",
              text: "No email found for the provided information.",
            },
          ],
        };
      }
    
      let result = `Email Found:\n\n`;
      result += `Name: ${person.first_name} ${person.last_name}\n`;
      result += `Email: ${person.email || "Not available"}\n`;
      result += `Status: ${person.email_status || "N/A"}\n`;
      result += `Company: ${person.organization?.name || "N/A"}\n`;
      result += `Title: ${person.title || "N/A"}\n`;
    
      return {
        content: [
          {
            type: "text",
            text: result,
          },
        ],
      };
    }
  • The tool definition including name, description, and input schema for 'find_email', returned by getTools() for MCP ListTools requests.
    {
      name: "find_email",
      description:
        "Find and verify email addresses for a person. Provide name and company domain or LinkedIn URL.",
      inputSchema: {
        type: "object",
        properties: {
          first_name: {
            type: "string",
            description: "First name",
          },
          last_name: {
            type: "string",
            description: "Last name",
          },
          domain: {
            type: "string",
            description: "Company domain",
          },
          linkedin_url: {
            type: "string",
            description: "LinkedIn profile URL",
          },
        },
      },
    },
  • src/index.ts:70-71 (registration)
    The switch case in the CallToolRequest handler that registers and dispatches 'find_email' calls to the findEmail method.
    case "find_email":
      return await this.findEmail(args);
  • src/index.ts:116-600 (registration)
    The getTools() method that lists all available tools including 'find_email' for MCP protocol compliance.
    private getTools(): Tool[] {
      return [
        {
          name: "search_people",
          description:
            "Search for people/contacts in Apollo's database with advanced filters. Use this to find prospects, leads, or specific individuals based on criteria like job title, company, location, industry, seniority, etc.",
          inputSchema: {
            type: "object",
            properties: {
              q_keywords: {
                type: "string",
                description: "Search keywords for person name or title",
              },
              person_titles: {
                type: "array",
                items: { type: "string" },
                description: 'Job titles (e.g., ["CEO", "CTO", "VP Sales"])',
              },
              person_seniorities: {
                type: "array",
                items: { type: "string" },
                description:
                  'Seniority levels: "senior", "manager", "director", "vp", "c_suite", "owner", "partner"',
              },
              organization_ids: {
                type: "array",
                items: { type: "string" },
                description: "Filter by specific organization IDs",
              },
              organization_locations: {
                type: "array",
                items: { type: "string" },
                description: 'Locations (e.g., ["San Francisco, CA", "New York, NY"])',
              },
              organization_industry_tag_ids: {
                type: "array",
                items: { type: "string" },
                description: "Industry tags to filter by",
              },
              person_locations: {
                type: "array",
                items: { type: "string" },
                description: "Person locations",
              },
              page: {
                type: "number",
                description: "Page number (default: 1)",
              },
              per_page: {
                type: "number",
                description: "Results per page (default: 25, max: 100)",
              },
            },
          },
        },
        {
          name: "search_organizations",
          description:
            "Search for companies/organizations in Apollo's database. Filter by industry, size, location, revenue, technology, and more. Great for building targeted account lists.",
          inputSchema: {
            type: "object",
            properties: {
              q_organization_name: {
                type: "string",
                description: "Organization name search",
              },
              organization_locations: {
                type: "array",
                items: { type: "string" },
                description: 'Locations (e.g., ["San Francisco, CA"])',
              },
              organization_industry_tag_ids: {
                type: "array",
                items: { type: "string" },
                description: "Industry tag IDs",
              },
              organization_num_employees_ranges: {
                type: "array",
                items: { type: "string" },
                description:
                  'Employee count ranges: "1-10", "11-50", "51-200", "201-500", "501-1000", "1001-5000", "5001-10000", "10001+"',
              },
              revenue_range: {
                type: "object",
                properties: {
                  min: { type: "number" },
                  max: { type: "number" },
                },
                description: "Revenue range filter",
              },
              organization_keywords: {
                type: "array",
                items: { type: "string" },
                description: "Keywords to search in organization data",
              },
              page: {
                type: "number",
                description: "Page number (default: 1)",
              },
              per_page: {
                type: "number",
                description: "Results per page (default: 25, max: 100)",
              },
            },
          },
        },
        {
          name: "enrich_person",
          description:
            "Enrich a person's data with email, phone, social profiles, employment info, and more. Provide either email, name+domain, or LinkedIn URL.",
          inputSchema: {
            type: "object",
            properties: {
              email: {
                type: "string",
                description: "Person's email address",
              },
              first_name: {
                type: "string",
                description: "First name (use with domain)",
              },
              last_name: {
                type: "string",
                description: "Last name (use with domain)",
              },
              domain: {
                type: "string",
                description: "Company domain (e.g., apollo.io)",
              },
              linkedin_url: {
                type: "string",
                description: "LinkedIn profile URL",
              },
              reveal_personal_emails: {
                type: "boolean",
                description: "Include personal email addresses",
              },
            },
          },
        },
        {
          name: "enrich_organization",
          description:
            "Enrich an organization's data with detailed company information, employee count, revenue, technologies used, funding, and more. Provide domain name.",
          inputSchema: {
            type: "object",
            properties: {
              domain: {
                type: "string",
                description: "Company domain (e.g., apollo.io)",
              },
            },
            required: ["domain"],
          },
        },
        {
          name: "find_email",
          description:
            "Find and verify email addresses for a person. Provide name and company domain or LinkedIn URL.",
          inputSchema: {
            type: "object",
            properties: {
              first_name: {
                type: "string",
                description: "First name",
              },
              last_name: {
                type: "string",
                description: "Last name",
              },
              domain: {
                type: "string",
                description: "Company domain",
              },
              linkedin_url: {
                type: "string",
                description: "LinkedIn profile URL",
              },
            },
          },
        },
        {
          name: "list_sequences",
          description:
            "List all email sequences in your Apollo account. Sequences are automated email campaigns.",
          inputSchema: {
            type: "object",
            properties: {
              page: {
                type: "number",
                description: "Page number",
              },
            },
          },
        },
        {
          name: "get_sequence",
          description:
            "Get detailed information about a specific sequence including steps, stats, and settings.",
          inputSchema: {
            type: "object",
            properties: {
              id: {
                type: "string",
                description: "Sequence ID",
              },
            },
            required: ["id"],
          },
        },
        {
          name: "analyze_sequence",
          description:
            "Analyze a sequence's performance with detailed metrics: open rates, reply rates, bounce rates, contacts added, active contacts, and step-by-step analytics.",
          inputSchema: {
            type: "object",
            properties: {
              id: {
                type: "string",
                description: "Sequence ID to analyze",
              },
            },
            required: ["id"],
          },
        },
        {
          name: "add_to_sequence",
          description:
            "Add contacts to a sequence. Provide sequence ID and contact email addresses or contact IDs.",
          inputSchema: {
            type: "object",
            properties: {
              sequence_id: {
                type: "string",
                description: "Sequence ID",
              },
              contact_ids: {
                type: "array",
                items: { type: "string" },
                description: "Array of contact IDs to add",
              },
              contact_emails: {
                type: "array",
                items: { type: "string" },
                description: "Array of contact emails to add",
              },
              mailbox_id: {
                type: "string",
                description: "Mailbox ID to send from (optional)",
              },
            },
            required: ["sequence_id"],
          },
        },
        {
          name: "remove_from_sequence",
          description:
            "Remove contacts from a sequence. Provide sequence ID and contact IDs.",
          inputSchema: {
            type: "object",
            properties: {
              sequence_id: {
                type: "string",
                description: "Sequence ID",
              },
              contact_ids: {
                type: "array",
                items: { type: "string" },
                description: "Array of contact IDs to remove",
              },
            },
            required: ["sequence_id", "contact_ids"],
          },
        },
        {
          name: "get_lists",
          description:
            "Get all contact lists in your Apollo account. Lists are collections of saved contacts.",
          inputSchema: {
            type: "object",
            properties: {
              page: {
                type: "number",
                description: "Page number",
              },
            },
          },
        },
        {
          name: "get_list_contacts",
          description:
            "Scrape/retrieve all contacts from a specific list with full details including emails, titles, companies, etc.",
          inputSchema: {
            type: "object",
            properties: {
              id: {
                type: "string",
                description: "List ID",
              },
              page: {
                type: "number",
                description: "Page number (default: 1)",
              },
              per_page: {
                type: "number",
                description: "Results per page (default: 100)",
              },
            },
            required: ["id"],
          },
        },
        {
          name: "analyze_list",
          description:
            "Analyze a contact list with detailed breakdown: total contacts, job titles distribution, seniority levels, companies, locations, industries, and data completeness metrics.",
          inputSchema: {
            type: "object",
            properties: {
              id: {
                type: "string",
                description: "List ID to analyze",
              },
            },
            required: ["id"],
          },
        },
        {
          name: "create_contact",
          description:
            "Create a new contact in Apollo with details like name, email, title, company, etc.",
          inputSchema: {
            type: "object",
            properties: {
              first_name: {
                type: "string",
                description: "First name",
              },
              last_name: {
                type: "string",
                description: "Last name",
              },
              email: {
                type: "string",
                description: "Email address",
              },
              title: {
                type: "string",
                description: "Job title",
              },
              organization_name: {
                type: "string",
                description: "Company name",
              },
              linkedin_url: {
                type: "string",
                description: "LinkedIn URL",
              },
              phone_numbers: {
                type: "array",
                items: { type: "string" },
                description: "Phone numbers",
              },
            },
            required: ["first_name", "last_name"],
          },
        },
        {
          name: "update_contact",
          description: "Update an existing contact's information in Apollo.",
          inputSchema: {
            type: "object",
            properties: {
              id: {
                type: "string",
                description: "Contact ID",
              },
              first_name: {
                type: "string",
                description: "First name",
              },
              last_name: {
                type: "string",
                description: "Last name",
              },
              email: {
                type: "string",
                description: "Email address",
              },
              title: {
                type: "string",
                description: "Job title",
              },
              linkedin_url: {
                type: "string",
                description: "LinkedIn URL",
              },
            },
            required: ["id"],
          },
        },
        {
          name: "create_account",
          description:
            "Create a new account/organization in Apollo with company details.",
          inputSchema: {
            type: "object",
            properties: {
              name: {
                type: "string",
                description: "Company name",
              },
              domain: {
                type: "string",
                description: "Company domain",
              },
              phone_number: {
                type: "string",
                description: "Company phone",
              },
              website_url: {
                type: "string",
                description: "Website URL",
              },
            },
            required: ["name"],
          },
        },
        {
          name: "get_account",
          description:
            "Get detailed information about an account/organization by ID or domain.",
          inputSchema: {
            type: "object",
            properties: {
              id: {
                type: "string",
                description: "Account ID",
              },
              domain: {
                type: "string",
                description: "Company domain",
              },
            },
          },
        },
        {
          name: "search_job_postings",
          description:
            "Search for job postings to identify companies that are hiring and find buying signals.",
          inputSchema: {
            type: "object",
            properties: {
              q_keywords: {
                type: "string",
                description: "Keywords to search in job postings",
              },
              organization_ids: {
                type: "array",
                items: { type: "string" },
                description: "Filter by organization IDs",
              },
              page: {
                type: "number",
                description: "Page number",
              },
            },
          },
        },
        {
          name: "get_person_activity",
          description:
            "Get activity history and engagement data for a specific person/contact.",
          inputSchema: {
            type: "object",
            properties: {
              id: {
                type: "string",
                description: "Person/Contact ID",
              },
            },
            required: ["id"],
          },
        },
      ];
    }

Latest Blog Posts

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/masridigital/apollo.io-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server