Skip to main content
Glama
apridachin

Kagi MCP Server

by apridachin
README.md
# Kagi MCP server

[![smithery badge](https://smithery.ai/badge/kagi-mcp)](https://smithery.ai/client/kagi-mcp)
MCP server that allows to search web using Kagi API

<a href="https://glama.ai/mcp/servers/rl6yu8g58l"><img width="380" height="200" src="https://glama.ai/mcp/servers/rl6yu8g58l/badge" alt="Kagi Server MCP server" /></a>

## Components

### Resources

The server implements calls of [API methods](https://help.kagi.com/kagi/api/overview.html):
- fastgpt
- enrich/web
- enrich/news

### Prompts

The server provides doesn't provide any prompts:

### Tools

The server implements several tools:
- ask_fastgpt to search web and find an answer
- enrich_web to enrich model context with web content
- enrich_news to enrich model context with latest news

## Configuration

## Quickstart

### Install

### Installing via Smithery

To install the Kagi MCP server for Claude Desktop automatically via [Smithery](https://smithery.ai/client/kagi-mcp):

```bash
npx -y @smithery/cli install kagi-mcp --client claude
```

#### Claude Desktop

On MacOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`

<details>
  <summary>Development/Unpublished Servers Configuration</summary>
  ```
  "mcpServers": {
    "kagi-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "path_to_project",
        "run",
        "kagi-mcp"
      ],
      "env": {
        "KAGI_API_KEY": "YOUR API KEY"
      }
    }
  }
  ```
</details>

## Development

### Building and Publishing

To prepare the package for distribution:

1. Sync dependencies and update lockfile:
```bash
uv sync
```

2. Build package distributions:
```bash
uv build
```

This will create source and wheel distributions in the `dist/` directory.

3. Publish to PyPI:
```bash
uv publish
```

Note: You'll need to set PyPI credentials via environment variables or command flags:
- Token: `--token` or `UV_PUBLISH_TOKEN`
- Or username/password: `--username`/`UV_PUBLISH_USERNAME` and `--password`/`UV_PUBLISH_PASSWORD`

### Debugging

```bash
npx @modelcontextprotocol/inspector uv --directory path_to_project run kagi-mcp
```

TDQS

C2.6/5.0

Scored across 3 tools

Disambiguation2/5

The three tools have overlapping purposes that could cause confusion. 'enrich_news' and 'enrich_web' both enrich context with web content, differing mainly in focus (news vs general), which may not be clear to an agent. 'ask_fastgpt' also involves web content for answers, creating ambiguity in tool selection.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern throughout (ask_fastgpt, enrich_news, enrich_web), which is predictable and readable. There are no deviations in style, making it easy to parse.

Tool Count3/5

With only 3 tools, the count feels thin for a web search and enrichment server, potentially limiting functionality. While not extreme, it may lack coverage for common operations like filtering or managing searches.

Completeness2/5

The tool set has significant gaps for a web content server. There are no tools for basic operations like searching without enrichment, filtering results, or handling different content types beyond news and general web. This could lead to agent failures when trying to perform common tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues