Skip to main content
Glama
README.md
# ihyee-mcp

MCP (Model Context Protocol) server for the [ihyee](https://pypi.org/project/ihyee/) web intelligence API. Gives AI assistants like Claude, Cursor, and other MCP clients the ability to search the web, fetch pages, and render JavaScript-heavy sites.

## Tools

| Tool | Description |
|------|-------------|
| `ihyee_search` | Search the web and return extracted, summarized content from top results |
| `ihyee_fetch` | Fetch and extract content from specific web page URLs |
| `ihyee_render` | Force full browser rendering of a JavaScript-heavy web page |

## Install

```bash
pip install ihyee-mcp
```

## Configure

Set your ihyee API key as an environment variable:

```bash
export IHYEE_API_KEY="your_api_key_here"
```

Get an API key at [ihyee.delta-telematics.ca](https://ihyee.delta-telematics.ca).

## Usage

### With Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "ihyee": {
      "command": "ihyee-mcp",
      "env": {
        "IHYEE_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

Config file locations:
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
- **Linux:** `~/.config/Claude/claude_desktop_config.json`

### With Claude Code

```bash
claude mcp add ihyee -- ihyee-mcp
```

Then set the API key in your environment or pass it via the MCP config.

### With Cursor

Add to your Cursor MCP settings (`.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "ihyee": {
      "command": "ihyee-mcp",
      "env": {
        "IHYEE_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### Direct (stdio)

```bash
IHYEE_API_KEY=your_key ihyee-mcp
```

The server communicates over stdin/stdout using the MCP protocol.

## Tool Details

### ihyee_search

Search the web and return extracted content from top results.

**Parameters:**
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `query` | string | Yes | | Search query |
| `max_results` | integer | No | 5 | Number of results (1-10) |
| `content_mode` | string | No | "both" | "both", "full_text", or "summary" |
| `render` | boolean | No | false | Use browser rendering |
| `before` | string | No | | Results before date (YYYY-MM-DD) |
| `after` | string | No | | Results after date (YYYY-MM-DD) |
| `must_have` | string | No | | Required exact phrase |

### ihyee_fetch

Fetch and extract content from specific URLs.

**Parameters:**
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `urls` | string[] | Yes | | URLs to fetch (max 10) |
| `content_mode` | string | No | "both" | "both", "full_text", or "summary" |
| `render` | boolean | No | false | Use browser rendering |

### ihyee_render

Force browser rendering for JavaScript-heavy pages.

**Parameters:**
| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `url` | string | Yes | | URL to render |
| `wait_for` | string | No | "networkidle" | "networkidle", "domcontentloaded", or "load" |
| `wait_selector` | string | No | | CSS selector to wait for |
| `timeout_ms` | integer | No | 30000 | Max wait time in ms |

## Development

```bash
git clone https://github.com/aizukanne/ihyee-mcp.git
cd ihyee-mcp
pip install -e ".[dev]"
pytest
```

## License

MIT

TDQS

A3.7/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: ihyee_fetch for direct URL content extraction, ihyee_render for JavaScript-heavy pages requiring full browser rendering, and ihyee_search for web search with result extraction. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tool names follow a consistent 'ihyee_' prefix with descriptive suffixes (fetch, render, search) in snake_case. The naming pattern is uniform and predictable across all tools.

Tool Count4/5

Three tools is a reasonable count for a web content extraction server, covering core scenarios (direct fetch, JS rendering, search). It might feel slightly thin if advanced features like batch processing or filtering are expected, but it's well-scoped for the apparent purpose.

Completeness4/5

The toolset covers key web content extraction workflows: fetching from URLs, handling JavaScript-heavy pages, and searching the web. Minor gaps might include operations like caching, content filtering, or handling specific formats (e.g., PDFs), but the core domain is adequately addressed.

Maintenance

ActivityInactive
ResponsivenessNo issues