Skip to main content
Glama
alludium

Harmonic MCP Server

by alludium

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HARMONIC_API_KEYYesYour Harmonic API key, used to authenticate with Harmonic AI services.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
harmonic_search_companies

Search for companies using natural language queries. This is the primary entry point for discovering companies.

What it does: Searches Harmonic's database using AI-powered natural language understanding. You can describe what you're looking for in plain English.

Example queries:

  • "AI startups in San Francisco"

  • "fintech companies with Series A funding"

  • "B2B SaaS companies founded after 2020"

  • "healthcare startups in Boston with 50-100 employees"

Returns:

  • Company URNs (use harmonic_get_company to get full details)

  • Total count of matching companies

  • Query interpretation showing how your query was parsed

  • Pagination cursor for more results

Returns (JSON): { "data": [{ "urn": "urn:harmonic:company:123", "id": "123" }], "count": number, "totalAvailable": number, "hasMore": boolean, "nextCursor": string | null, "queryInterpretation": { "semantic": string, "faceted": [...] } }

Next Steps: Use the numeric ID from URN with harmonic_get_company for full company details.

harmonic_search_typeahead

Quick autocomplete search for companies by name or domain. Use this for fast lookups when you know part of the company name.

What it does: Returns company matches ranked by relevance. Lower ranking_score = better match.

Example queries:

  • "Harmonic" - finds companies with Harmonic in the name

  • "stripe.com" - finds by domain

  • "Str" - partial name search

Returns (JSON): { "data": [ { "entity_urn": "urn:harmonic:company:1", "text": "Harmonic", "ranking_score": 10.0 } ], "count": number }

When to use:

  • Quick lookup by known company name

  • Autocomplete suggestions

  • Finding company by domain

When NOT to use:

  • Complex searches with multiple criteria (use harmonic_search_companies instead)

  • Searching by funding stage, location, etc.

harmonic_find_similar_companies

Find companies similar to a given company. Core use case for VCs: "I like this company, find me more like it."

What it does: Uses Harmonic's similarity algorithm to find companies with similar characteristics (industry, stage, business model, etc.).

Input:

  • company_id: Either numeric ID (e.g., "1") or full URN (e.g., "urn:harmonic:company:1")

Returns (JSON): { "data": ["urn:harmonic:company:763898", "urn:harmonic:company:11578442", ...], "count": number }

Next Steps: Use harmonic_get_company with each URN to get full company details.

Example workflow:

  1. Find a company you like: harmonic_lookup_company with domain

  2. Get similar: harmonic_find_similar_companies with that company's ID

  3. Get details: harmonic_get_company for each similar company

harmonic_lookup_company

Look up a company by domain, website URL, or social media URL. This is a READ operation (does not create data).

What it does: Finds and enriches a company profile by any of its known identifiers. Returns full company details including funding, headcount, location, and contact info.

Supported identifiers (use ONE):

  • website_domain: e.g., "harmonic.ai", "stripe.com"

  • website_url: Full URL like "https://www.stripe.com"

  • linkedin_url: LinkedIn company page

  • crunchbase_url: Crunchbase profile

  • pitchbook_url: Pitchbook profile

  • twitter_url: Twitter/X profile

  • instagram_url: Instagram profile

  • facebook_url: Facebook page

  • angellist_url: AngelList profile

Returns full company data including:

  • Basic info: name, description, logo

  • Contact: emails, primary_email, exec_emails

  • Funding: total amount, stage, investors, rounds

  • Social: LinkedIn, Twitter with follower counts

  • Metrics: headcount, web_traffic

Example Response (JSON): { "id": 1, "entity_urn": "urn:harmonic:company:1", "name": "Harmonic", "description": "...", "headcount": 67, "funding": { "funding_total": 30150000, "funding_stage": "SERIES_A", "investors": [...] }, "contact": { "primary_email": "max@harmonic.ai", "emails": [...] } }

HTTP 404 Note: If company not found, Harmonic may trigger background enrichment. Try again later or use a different identifier.

harmonic_get_company

Get company details by ID with field filtering for optimal response size.

Input:

  • company_id: Numeric ID (e.g., "1") or full URN (e.g., "urn:harmonic:company:1")

  • include_fields: Optional array of fields to include (e.g., ["name", "funding", "headcount"])

Response sizes:

  • Default (basic fields): ~3KB per company

  • All fields: ~368KB per company (not recommended)

Default fields returned: name, description, website, headcount, location, funding, stage, founding_date, company_type, customer_type, contact, socials

When to use:

  • After harmonic_search_companies to get full details

  • After harmonic_find_similar_companies

  • When you have a company ID from another source

Note: Uses batch endpoint internally for proper field filtering. The GET endpoint ignores include_fields.

harmonic_get_company_employees

Get employees of a company with filtering options.

Input:

  • company_id: Numeric ID or URN

  • employee_group_type: Filter by role (ALL, FOUNDERS_AND_CEO, EXECUTIVES, FOUNDERS, LEADERSHIP, NON_LEADERSHIP, ADVISORS, NON_PARTNERS)

  • employee_status: Filter by status (ACTIVE, NOT_ACTIVE, ACTIVE_AND_NOT_ACTIVE)

Note: Filter values confirmed via API testing. Documentation had incorrect values (EMPLOYEES, CURRENT, PAST do not work).

Returns: Person URNs that you can use with harmonic_get_person to get full details.

Example Response (JSON): { "data": [ { "urn": "urn:harmonic:person:113554", "id": "113554" }, { "urn": "urn:harmonic:person:155348322", "id": "155348322" } ], "count": 72, "hasMore": false }

Common workflows:

  1. Get founders: employee_group_type="FOUNDERS_AND_CEO"

  2. Get leadership: employee_group_type="LEADERSHIP"

  3. Get former employees: employee_status="NOT_ACTIVE"

harmonic_get_company_connections

Find which team members have connections to a company. Key for warm introductions in VC deal flow.

What it does: Returns your team's network connections to people at the target company, showing who knows whom and how they're connected.

Returns: { "data": [ { "user_urn": "urn:harmonic:user:17115", "target_person_urn": "urn:harmonic:person:73639745", "target_person_email_address": "mike@harmonic.ai", "connection_sources": ["EMAIL", "LINKEDIN"] } ] }

Connection sources:

  • EMAIL: Connected via email correspondence

  • LINKEDIN: LinkedIn connection

  • CALENDAR: Met via calendar events

Use case: Before reaching out to a company, find if anyone on your team has a warm intro path.

harmonic_lookup_person

Look up a person by their LinkedIn URL. This is a READ operation (does not create data).

What it does: Finds and enriches a person's profile by their LinkedIn URL. Returns full profile including work history, education, contact info, and social links.

Input:

  • linkedin_url: Full LinkedIn profile URL (e.g., "https://linkedin.com/in/username")

Returns: { "id": 161780079, "entity_urn": "urn:harmonic:person:161780079", "full_name": "Max Ruderman", "contact": { "emails": ["max@harmonic.ai"], "primary_email": "max@harmonic.ai" }, "location": { "city": "New York", "state": "New York", "country": "United States" }, "education": [ { "school": { "name": "Cornell University" }, "degree": "Bachelor of Science (B.S.)", "field": "Labor and Industrial Relations" } ], "experience": [ { "title": "Chief Executive Officer", "company": "urn:harmonic:company:1", "company_name": "Harmonic", "is_current_position": true, "start_date": "2022-07-01T00:00:00Z" } ] }

HTTP 404 Note: If person not found, Harmonic may trigger background enrichment. Try again later.

Use cases:

  • Research a founder or executive before a meeting

  • Find contact information for outreach

  • Verify a person's current role and company

harmonic_get_person

Get full person details by ID. Use after getting person URNs from company employees.

Input:

  • person_id: Numeric ID (e.g., "161780079") or full URN (e.g., "urn:harmonic:person:161780079")

Returns same data as harmonic_lookup_person:

  • Full name and profile picture

  • Contact info (emails)

  • Location

  • Education history

  • Work experience with company links

When to use:

  • After harmonic_get_company_employees to get full details on each person

  • When you have a person ID from another Harmonic response

  • To expand on a person URN from search results

harmonic_list_saved_searches

Get all saved searches accessible to your Harmonic account. Saved searches enable monitoring deal flow and tracking companies over time.

What it does: Returns all saved searches (also called "Saved Views" in Harmonic UI) that your team has created. Each saved search has specific filter criteria.

Returns: { "data": [ { "id": 141648, "name": "Stealth Feed", "type": "COMPANIES_LIST", "is_private": false, "created_at": "2024-10-10T18:48:38.438102", "updated_at": "2025-06-16T00:53:15.505131" } ], "count": number }

Search types:

  • COMPANIES_LIST: Search for companies

  • PERSONS: Search for people

Next steps: Use harmonic_get_saved_search_results with the search ID to get matching companies/persons.

Use cases:

  • List all team deal flow monitors

  • Find a specific saved search by name

  • Check when a search was last updated

harmonic_get_saved_search_results

Get results from a saved search. Returns full company/person data matching the search criteria.

WARNING: Response sizes are LARGE:

  • size=3 (default): ~81KB

  • size=5 (max): ~135KB

Field filtering does NOT work on this endpoint. Each result contains full company data (~27KB). Use pagination (cursor) for more results rather than large sizes.

Input:

  • search_id: The saved search ID (get from harmonic_list_saved_searches)

  • size: Number of results (default: 3, max: 5)

  • cursor: Pagination cursor for more results

Returns (for COMPANIES_LIST type): { "data": [ { "id": 65200417, "name": "Stealth Company (John Smith)", "description": "...", "headcount": 1, "funding": { "funding_total": 0, "funding_stage": "STEALTH" }, "location": { "city": "San Francisco", "country": "United States" }, "contact": { "primary_email": "john@example.com" } } ], "count": number, "totalAvailable": number, "hasMore": boolean, "nextCursor": string | null }

Use cases:

  • Monitor deal flow with pre-defined criteria

  • Get companies matching specific investment thesis

  • Track stealth companies or recent launches

harmonic_get_saved_search_net_new_results

Get only NEW results from a saved search since your last check. This is the incremental/delta endpoint for monitoring deal flow.

PREREQUISITE: You must subscribe to the saved search via Harmonic web UI first. Returns 404 if not subscribed.

What "net new" means: Returns companies/people that have NEWLY matched your search criteria since you subscribed (or since new_results_since date). For example, if your search looks for companies with >100 headcount, this returns companies that recently grew past 100.

Input:

  • search_id: The saved search ID (get from harmonic_list_saved_searches)

  • size: Number of results (default: 3, max: 5)

  • cursor: Pagination cursor for more results

  • new_results_since: Optional UTC datetime (e.g., 2024-09-21T00:00:00Z)

Response sizes: ~27KB per result (same as regular results)

Workflow:

  1. Call this tool to get new matches

  2. Process the results

  3. Call harmonic_clear_saved_search_net_new to mark as "seen"

  4. Repeat on your monitoring schedule

Use cases:

  • Daily deal flow monitoring for investors

  • Trigger deep research agents on new matches

  • Alert on companies meeting investment criteria

harmonic_clear_saved_search_net_new

Mark all net new results as "seen" so they won't appear in future calls to harmonic_get_saved_search_net_new_results.

When to use: Call this AFTER you've processed net new results to reset the queue. Future calls to harmonic_get_saved_search_net_new_results will only return results that become new matches after this point.

Input:

  • search_id: The saved search ID

Workflow:

  1. harmonic_get_saved_search_net_new_results → get new matches

  2. Process/analyze the results

  3. harmonic_clear_saved_search_net_new → mark as seen

  4. Repeat on schedule

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/alludium/harmonic-mcp-server'

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