Harmonic MCP Server
# 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
Scored across 13 tools
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.
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.
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.
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.