Skip to main content
Glama

get_company_profile

Retrieve structured LinkedIn company profile data, including optional employee information, by specifying a company name.

Instructions

Get a specific company's LinkedIn profile.

Args: company_name (str): LinkedIn company name (e.g., "docker", "anthropic", "microsoft") get_employees (bool): Whether to scrape the company's employees (slower)

Returns: Dict[str, Any]: Structured data from the company's profile

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
company_nameYes
get_employeesNo

Implementation Reference

  • The main handler function that scrapes the LinkedIn company profile using the linkedin_scraper.Company class, constructs the profile data dictionary, and optionally includes employee data.
    async def get_company_profile(
        company_name: str, get_employees: bool = False
    ) -> Dict[str, Any]:
        """
        Get a specific company's LinkedIn profile.
    
        Args:
            company_name (str): LinkedIn company name (e.g., "docker", "anthropic", "microsoft")
            get_employees (bool): Whether to scrape the company's employees (slower)
    
        Returns:
            Dict[str, Any]: Structured data from the company's profile
        """
        try:
            # Construct clean LinkedIn URL from company name
            linkedin_url = f"https://www.linkedin.com/company/{company_name}/"
    
            driver = safe_get_driver()
    
            logger.info(f"Scraping company: {linkedin_url}")
            if get_employees:
                logger.info("Fetching employees may take a while...")
    
            company = Company(
                linkedin_url,
                driver=driver,
                get_employees=get_employees,
                close_on_complete=False,
            )
    
            # Convert showcase pages to structured dictionaries
            showcase_pages: List[Dict[str, Any]] = [
                {
                    "name": page.name,
                    "linkedin_url": page.linkedin_url,
                    "followers": page.followers,
                }
                for page in company.showcase_pages
            ]
    
            # Convert affiliated companies to structured dictionaries
            affiliated_companies: List[Dict[str, Any]] = [
                {
                    "name": affiliated.name,
                    "linkedin_url": affiliated.linkedin_url,
                    "followers": affiliated.followers,
                }
                for affiliated in company.affiliated_companies
            ]
    
            # Build the result dictionary
            result: Dict[str, Any] = {
                "name": company.name,
                "about_us": company.about_us,
                "website": company.website,
                "phone": company.phone,
                "headquarters": company.headquarters,
                "founded": company.founded,
                "industry": company.industry,
                "company_type": company.company_type,
                "company_size": company.company_size,
                "specialties": company.specialties,
                "showcase_pages": showcase_pages,
                "affiliated_companies": affiliated_companies,
                "headcount": company.headcount,
            }
    
            # Add employees if requested and available
            if get_employees and company.employees:
                result["employees"] = company.employees
    
            return result
        except Exception as e:
            return handle_tool_error(e, "get_company_profile")
  • The @mcp.tool decorator registers the get_company_profile function with metadata like title and hints.
    @mcp.tool(
        annotations=ToolAnnotations(
            title="Get Company Profile",
            readOnlyHint=True,
            destructiveHint=False,
            openWorldHint=True,
        )
    )
  • Calls the register_company_tools function during MCP server initialization to register the tool.
    register_company_tools(mcp)
  • Function signature defines the input schema: company_name (str), get_employees (bool, default False), returns Dict[str, Any].
    async def get_company_profile(
        company_name: str, get_employees: bool = False
    ) -> Dict[str, Any]:
  • Error handling wrapper specific to this tool.
    return handle_tool_error(e, "get_company_profile")

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/stickerdaniel/linkedin-mcp-server'

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