Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HARMONIC_API_KEY | Yes | Your Harmonic API key, used to authenticate with Harmonic AI services. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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:
Returns:
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:
Returns (JSON): { "data": [ { "entity_urn": "urn:harmonic:company:1", "text": "Harmonic", "ranking_score": 10.0 } ], "count": number } When to use:
When NOT to use:
|
| 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:
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:
|
| 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):
Returns full company data including:
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:
Response sizes:
Default fields returned: name, description, website, headcount, location, funding, stage, founding_date, company_type, customer_type, contact, socials When to use:
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:
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:
|
| 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:
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:
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:
|
| harmonic_get_person | Get full person details by ID. Use after getting person URNs from company employees. Input:
Returns same data as harmonic_lookup_person:
When to use:
|
| 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:
Next steps: Use harmonic_get_saved_search_results with the search ID to get matching companies/persons. Use cases:
|
| 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:
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:
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:
|
| 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:
Response sizes: ~27KB per result (same as regular results) Workflow:
Use cases:
|
| 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:
Workflow:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |