Skip to main content
Glama
alludium

Harmonic MCP Server

by alludium
README.md
# Harmonic MCP Server

MCP (Model Context Protocol) server for the [Harmonic AI API](https://harmonic.ai) - company and person enrichment for VC deal flow.

## Features

This MCP server provides 13 tools for interacting with Harmonic's API:

### Search Tools
- **harmonic_search_companies** - Natural language search for companies (e.g., "AI startups in San Francisco")
- **harmonic_search_typeahead** - Quick autocomplete search by company name or domain
- **harmonic_find_similar_companies** - Find companies similar to a given company

### Company Tools
- **harmonic_lookup_company** - Look up company by domain, LinkedIn URL, or other identifiers
- **harmonic_get_company** - Get full company details by ID
- **harmonic_get_company_employees** - Get employees with filtering (founders, executives, etc.)
- **harmonic_get_company_connections** - Find team network connections to a company

### Person Tools
- **harmonic_lookup_person** - Look up person by LinkedIn URL
- **harmonic_get_person** - Get full person details by ID

### Saved Search Tools
- **harmonic_list_saved_searches** - List all saved searches/views
- **harmonic_get_saved_search_results** - Get results from a saved search
- **harmonic_get_saved_search_net_new_results** - Get only new results since last check (for deal flow monitoring)
- **harmonic_clear_saved_search_net_new** - Mark net new results as "seen"

## Installation

No installation required when using `npx` (see Usage below).

### Optional: Global Install

```bash
npm install -g @alludium/harmonic-mcp-server
```

### Optional: From Source

```bash
git clone https://github.com/alludium/harmonic-mcp-server.git
cd harmonic-mcp-server
npm install
npm run build
```

## Configuration

Set your Harmonic API key as an environment variable:

```bash
export HARMONIC_API_KEY=your_api_key_here
```

When using with Claude Desktop or Claude Code, set the key in the MCP server configuration's `env` block (see Usage section below).

## Usage

### With Claude Desktop

Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "harmonic": {
      "command": "npx",
      "args": ["-y", "@alludium/harmonic-mcp-server"],
      "env": {
        "HARMONIC_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### With Claude Code

Add to your Claude Code MCP settings:

```json
{
  "mcpServers": {
    "harmonic": {
      "command": "npx",
      "args": ["-y", "@alludium/harmonic-mcp-server"],
      "env": {
        "HARMONIC_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### Development Mode

```bash
# Run with tsx for development
HARMONIC_API_KEY=your_key npm run dev
```

## API Coverage

Based on the [Harmonic API documentation](https://api.harmonic.ai), this MCP covers:

| Endpoint | Tool | Type |
|----------|------|------|
| GET /search/search_agent | harmonic_search_companies | Entry point |
| GET /search/typeahead | harmonic_search_typeahead | Entry point |
| GET /search/similar_companies/{id} | harmonic_find_similar_companies | Discovery |
| POST /companies | harmonic_lookup_company | Entry point |
| GET /companies/{id} | harmonic_get_company | Detail |
| GET /companies/{id}/employees | harmonic_get_company_employees | Detail |
| GET /companies/{id}/userConnections | harmonic_get_company_connections | Detail |
| POST /persons | harmonic_lookup_person | Entry point |
| GET /persons/{id} | harmonic_get_person | Detail |
| GET /savedSearches | harmonic_list_saved_searches | Entry point |
| GET /savedSearches:results/{id} | harmonic_get_saved_search_results | Detail |
| GET /savedSearches:netNewResults/{id} | harmonic_get_saved_search_net_new_results | Monitoring |
| POST /savedSearches:clearNetNew/{id} | harmonic_clear_saved_search_net_new | Monitoring |

## Response Formats

All tools support two response formats:

- **json** (default): Structured data for programmatic use
- **markdown**: Human-readable formatted output

Use the `response_format` parameter to switch between formats.

## Rate Limiting

The Harmonic API has a rate limit of 10 requests per second. This MCP server implements automatic throttling and retry logic for rate-limited requests.

## Error Handling

The server provides clear, actionable error messages:

- **400**: Bad request with parameter guidance
- **401**: Authentication failure with API key setup instructions
- **404**: Resource not found with alternative lookup suggestions
- **429**: Rate limit exceeded with retry guidance
- **5xx**: Server errors with wait/retry suggestions

## Example Workflows

### Find and Research a Company

```
1. harmonic_lookup_company { website_domain: "stripe.com" }
2. harmonic_get_company_employees { company_id: "142540", employee_group_type: "FOUNDERS_AND_CEO" }
3. harmonic_get_person { person_id: "person_id_from_step_2" }
```

### Find Similar Companies

```
1. harmonic_search_companies { query: "fintech payment processing" }
2. harmonic_find_similar_companies { company_id: "id_from_step_1", size: 10 }
3. harmonic_get_company { company_id: "each_similar_company_id" }
```

### Monitor Deal Flow

```
1. harmonic_list_saved_searches {}
2. harmonic_get_saved_search_results { search_id: "search_id_from_step_1", size: 50 }
```

## License

MIT

TDQS

A4.4/5.0

Scored across 13 tools

Disambiguation4/5

Most tools have distinct purposes, but some overlap exists. For example, harmonic_get_company and harmonic_lookup_company both retrieve company details, though one uses an ID and the other uses external identifiers. Similarly, harmonic_search_companies and harmonic_search_typeahead both search for companies, but with different query styles. The descriptions help clarify these distinctions, preventing major confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case, starting with 'harmonic_' as a prefix. Examples include harmonic_get_company, harmonic_search_companies, and harmonic_list_saved_searches. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.

Tool Count5/5

With 13 tools, the server is well-scoped for its domain of company and person data retrieval, search, and monitoring in a VC context. Each tool serves a specific function, such as fetching details, searching, or managing saved searches, and none appear redundant or unnecessary for the intended workflows.

Completeness4/5

The tool set covers core CRUD-like operations for the domain, including lookup, search, retrieval, and monitoring workflows. Minor gaps exist, such as no explicit update or delete tools for saved searches or companies, but these are likely handled outside the MCP scope. The tools support key use cases like deal flow monitoring and network analysis without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues