Skip to main content
Glama
masridigital

Apollo.io MCP Server

by masridigital

enrich_person

Enrich contact data by providing email, name with company domain, or LinkedIn URL to retrieve professional details including email, phone, social profiles, and employment information.

Instructions

Enrich a person's data with email, phone, social profiles, employment info, and more. Provide either email, name+domain, or LinkedIn URL.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
emailNoPerson's email address
first_nameNoFirst name (use with domain)
last_nameNoLast name (use with domain)
domainNoCompany domain (e.g., apollo.io)
linkedin_urlNoLinkedIn profile URL
reveal_personal_emailsNoInclude personal email addresses

Implementation Reference

  • The main execution logic for the 'enrich_person' tool. Calls Apollo's /people/match endpoint with input args and formats the enriched person data into a readable text response.
    private async enrichPerson(args: any) {
      const response = await this.axiosInstance.post("/people/match", args);
      const person = response.data.person;
    
      if (!person) {
        return {
          content: [
            {
              type: "text",
              text: "No person found with the provided information.",
            },
          ],
        };
      }
    
      let result = `Person Enrichment Results:\n\n`;
      result += `Name: ${person.first_name} ${person.last_name}\n`;
      result += `ID: ${person.id}\n`;
      result += `Title: ${person.title || "N/A"}\n`;
      result += `Email: ${person.email || "N/A"}\n`;
      result += `Phone: ${person.phone_numbers?.[0]?.raw_number || "N/A"}\n`;
      result += `LinkedIn: ${person.linkedin_url || "N/A"}\n`;
      result += `Location: ${person.city ? `${person.city}, ${person.state || ""}` : "N/A"}\n`;
      result += `Seniority: ${person.seniority || "N/A"}\n\n`;
    
      if (person.organization) {
        result += `Company Information:\n`;
        result += `  Name: ${person.organization.name}\n`;
        result += `  Domain: ${person.organization.website_url || "N/A"}\n`;
        result += `  Industry: ${person.organization.industry || "N/A"}\n`;
        result += `  Employees: ${person.organization.estimated_num_employees || "N/A"}\n`;
      }
    
      return {
        content: [
          {
            type: "text",
            text: result,
          },
        ],
      };
    }
  • The tool registration in getTools() including name, description, and detailed inputSchema defining parameters for person enrichment.
    {
      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",
          },
        },
      },
    },
  • src/index.ts:66-67 (registration)
    Dispatch/registration case in the CallToolRequestSchema handler that routes 'enrich_person' calls to the enrichPerson method.
    case "enrich_person":
      return await this.enrichPerson(args);

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