We raised a $50M Series B led by BenchmarkLearn more
Harmonic logo — MCP server on Gumloop

Harmonic

Research startups and private company data with Harmonic.

Book a demo

Installation

Set up the Harmonic MCP server in Gumloop

Do this once to provision your hosted server URL.

1

Create a Gumloop account

To use this MCP, you need a Gumloop account. If you don't have one yet, sign up and start a 14-day free trial.

2

Add and authorize the Harmonic server

In Gumloop, open Connectors and add Harmonic. Depending on the app, you'll either sign in via OAuth or paste an API key. Either way, the credential is stored securely in Gumloop.

Then use it in your client

Use in GumloopUse in Gumloop
1

Use Harmonic in an agent

Once Harmonic is set up, just open any Gumloop agent, add Harmonic as a connector, and start chatting with the agent.

Tools (39)

  • Get Companies

    Get detailed data for one or more companies. Accepts Harmonic company IDs, URNs, or external identifiers (website URL, domain, LinkedIn, etc.). PREFERRED: When you already have a Harmonic ID or URN from a previous response, always use 'ids' or 'urns' — this is faster and guarantees the exact company. Use 'identifiers' only when you need to look up a company by its website, LinkedIn, etc. For company name searches, use typeahead_search with search_type=COMPANY first to get the URN. For multi-company searches with criteria, use search_companies_natural_language. REQUIRED: You must specify field_groups to control which fields are returned. Select only the smallest field group(s) needed for your question to avoid bloating the response and slowing down the request. Available field groups: 'name_id_description_headcount_website' (basic info), 'funding' (funding data), 'location' (location data), 'highlights' (company highlights), 'team_correspondence_and_connections' (team connections), 'notes_and_list_membership' (notes and lists), 'web_social_headcount_timeseries' (traction metrics), 'founders_and_execs' (founders and executives), 'founders_ceo' (founders and CEO only), 'synced_affinity_lists' (affinity lists), 'mergers_acquisitions_subsidiaries' (M&A data), 'competitor_research_fields' (competitor research), 'date_added_to_harmonic' (initialization date), 'contact' (contact info), 'external_profiles' (LinkedIn, Twitter, Crunchbase, Pitchbook URLs), 'founder_submissions' (founder-submitted data including fundraising status, founder story narrative, and file attachments like pitch decks), 'custom_fields' (the company's global custom field values; requires custom-field permission), 'all' (all fields - use sparingly). Limit of 50 companies per request. Note: If a company ID is -1, that means we don't yet have a canonical company record. Company profiles can be viewed in Harmonic console at: https://console.harmonic.ai/dashboard/company/<id or urn>

  • Get People

    Get detailed data for one or more people. Accepts Harmonic person IDs, URNs, or LinkedIn profile URLs. PREFERRED: When you already have a Harmonic ID or URN from a previous response, always use 'ids' or 'urns' — this is faster and guarantees the exact person. Use 'linkedin_urls' only when you need to look up a person by their LinkedIn profile. REQUIRED: You must specify field_groups to control which fields are returned. Select only the smallest field group(s) needed for your question to avoid bloating the response and slowing down the request. Available field groups: 'basic' (id, name, profile picture, headline, contact emails, and email enrichment status), 'experience' (work experience with company details), 'education' (education history), 'location' (location data), 'socials' (social media links), 'custom_fields' (the person's global custom field values; requires custom-field permission), 'all' (all fields - use sparingly). Limit of 50 people per request. Person profiles can be viewed in Harmonic console at: https://console.harmonic.ai/dashboard/person/<id or urn>

  • Get Email Enrichment Usage

    Get the caller's current team-level monthly email-enrichment quota. Email credits are a pooled allowance Harmonic provides to the team for requesting verified email lookups: one credit funds one eligible person's lookup, although finding an email is not guaranteed. Harmonic's documented standard allowance is 5,000 requests per customer account per month, resetting on the first of each month; use this tool's live result as the authority for the caller's actual plan. Call this immediately before asking the user to approve request_person_emails. Explain that the contemplated request may use up to one credit per submitted person, and tell the user how many credits remain out of the team's actual monthly limit. This result is a current snapshot, not a reservation or a guarantee of final consumption.

  • Get Email Request Status

    Poll a job returned by request_person_emails. Status is PENDING, IN_PROGRESS, COMPLETED, or FAILED. Enrichment commonly takes at least a minute, so do not poll immediately after submission: wait at least 60 seconds before the first status check. If the job is still PENDING or IN_PROGRESS, wait at least 15 seconds between later checks. A harness that can wait should keep polling; a chat client that cannot wait should explain that no email is available yet because enrichment is still running, and let the user check later with this job ID. Terminal responses include per-person outcomes: SUCCESS, NOT_FOUND, FAILED, or SKIPPED. Each SUCCESS result with a canonical person URN also includes its numeric person ID. When a person succeeds, call get_people with that person ID to retrieve the newly found email.

  • Request Person Emails

    IMPORTANT: Email credits are a pooled allowance Harmonic provides to the team for requesting verified email lookups. One credit funds one eligible person's lookup, although finding an email is not guaranteed. Harmonic's documented standard allowance is 5,000 requests per customer account per month, resetting on the first; the caller's live plan may differ. Before asking for approval, call get_email_enrichment_usage and tell the user that this request may use up to one credit per submitted person, plus how many credits currently remain out of the team's actual monthly limit. People who already have an email, were attempted within the last 30 days, or cannot be resolved are dropped; if everyone is dropped, no credits are consumed. The usage result is a snapshot, not a reservation or final charge. The user must explicitly approve the possible credit use before this tool is called. Accepts either Harmonic person URNs or LinkedIn profile URLs, with up to 5,000 identifiers in one job. The response reports accepted and dropped identifiers plus a job_id. Email enrichment is asynchronous: plan for completion to take at least a minute and do not request status immediately. A harness that can wait should wait 60 seconds before the first get_email_request_status call; after completion, call get_people again to retrieve any newly found emails. A chat client that cannot wait should explain that no email is available yet because enrichment is still running, and let the user check the job status later with its job_id.

  • Get Saved Search Results

    Get saved search results with metadata (cursor pagination). Works for company, people, and investor saved searches — the entity type is determined by the saved search URN. Team API key can access only team-public saved searches. The saved search can be viewed in the Harmonic console at https://console.harmonic.ai/dashboard/companies/<urn> (people saved searches use /dashboard/people/<urn>).

  • Get Saved Search Net New

    Get net new results for a subscribed saved search (cursor pagination). Works for company, people, and investor saved searches — the entity type is determined by the saved search URN. Requires the saved search to be subscribed in the Harmonic console.

  • Get Company Connections

    Get network connections into one or more companies — the people your team knows at each company, and through whom. Pick a mode: • Whole team (default, no scoping param set): every team member's connections. E.g. 'who on the team knows someone at', 'team connections to'. • Just me (only_my_connections=true): only the caller's OWN connections, scoped server-side to the authenticated user — do not pass a URN. E.g. 'do I know anyone at', 'my connections to'. • A specific teammate (connected_to_user_urn=<their URN>): only that teammate's connections; resolve the name to a URN via get_team_members first. E.g. 'who does Tyler know at'. userConnections is grouped by connected person: one row per distinct target person (name, LinkedIn, current role) with a connectedVia list of the teammate(s) who know them and each one's connectionSources — enough to answer 'who do we know / who is connected'. Email-only connections to people not resolved in Harmonic are summarized as an unresolvedEmailConnections count per company. Use connection_fields to additively pull more ONLY when needed: 'contact' for the target person's emails (outreach), 'correspondence' for each teammate's latest email + calendar event (meeting prep, last touchpoint).

  • Get Person Connections

    Get network connections to one or more people by person ID. Returns all team members' connections by default. Pass a user URN in connected_to_user_urn to filter results to a single teammate's connections (either the caller themselves — e.g. 'my connections', 'do I know this person' — or a specific teammate, e.g. 'does Tyler know this person'). Leave connected_to_user_urn blank for general team-level queries (e.g. 'who on the team knows this person', 'team connections to'). Returns each person's profile (name, LinkedIn, current role) and userConnections. Each connection always includes the team member who has it and connectionSources — enough to answer 'do we know this person'. Add connection_fields=['correspondence'] to also include the latest email and calendar event, ONLY when the user needs correspondence/meeting context.

  • Get Team Network Connection Count

    Get the total number of network connections in the account's Team network. This uses the deterministic TEAM_CONNECTIONS singleton watchlist and returns its total_count as network_connection_count.

  • Get Company List Entries

    Get company list entries. Pass the ID or URN of the list to get entries. Supports cursor pagination. The response includes a top-level 'custom_field_definitions' array listing every custom field on the list (URN, name, type, and option URNs for SINGLE_SELECT/MULTI_SELECT/STATUS). When calling update_company_list_entries, look up the field URN — and option URN for select-typed fields — from this array. Do not infer URNs from the name keys in per-entry 'custom_fields'. To sort entries, pass 'sort_custom_field_urn' with the URN of the attribute to sort by (and 'sort_descending' for direction). You can sort by any of: - a Harmonic attribute — official record fields like name, funding total, or headcount; call explore_list_columns to get its URN (e.g. Name -> 'urn:harmonic:company_field:company_name'); - a custom list attribute the user added to this list; get its URN from the 'custom_field_definitions' in this response; - a custom global attribute on the company record; get its URN from list_global_custom_fields. If the attribute the user named is NOT in 'custom_field_definitions', do not give up — it may be a global attribute, so call list_global_custom_fields before concluding it isn't sortable. When sorting by a custom attribute (list or global), also pass 'sort_field_type' — the field's type from custom_field_definitions / list_global_custom_fields (e.g. TEXT, NUMBER, DATE).

  • Create Company List

    Create a new company list. Can optionally include companies using URNs, IDs, or canonical identifiers (website URL, LinkedIn, Crunchbase, Pitchbook, etc.). Can also create custom columns and set their values in a single operation. Returns a response with 'urn' field (e.g., 'urn:harmonic:company_watchlist:0f818bcf-...') and a 'console_link' field. IMPORTANT: use the 'console_link' field in the returned response to view the list in the console, rather than constructing the link yourself. When initial entries are provided, the response also surfaces counts from the entry-add step: 'companies_found_count' (matched and written — the success signal), 'companies_being_processed_count' (URNs still being enriched, not yet visible), and 'total_companies_count' (current size; LAGS due to enrichment, so a low value right after creation is expected).

Ship Harmonic agents in minutes

Connect any AI agent to 100+ MCP servers, zero setup.
Book a demo
Gradient