Kagi Search

offiziell

Durchsuchen Sie das Web mit der Kagi-Such-API

Was kann man mit Kagi Search MCP machen?

  • Websuche — Bitte deinen Assistenten, über kagi_search_fetch im Web, in Nachrichten, Videos, Podcasts oder Bildern zu suchen.
  • Gefilterte Suche — Schränke die Ergebnisse mit ein- oder ausgeschlossenen Domains, Datumsbereichen, Dateitypen oder Kagi-Linsen über kagi_search_fetch ein.
  • Seitenauszüge — Fordere mit kagi_search_fetch optionale Seitenauszüge zusammen mit den Suchergebnissen an.
  • Vollständiger Seiteninhalt — Bitte deinen Assistenten, mit kagi_extract den vollständigen Inhalt einer Seite als Markdown abzurufen.
  • Gehosteter Endpunkt — Verbinde einen beliebigen MCP-Client mit HTTP-Unterstützung mit https://mcp.kagi.com/mcp und authentifiziere dich mit deinem Kagi-API-Schlüssel über die Bearer-Authentifizierung.

Dokumentation

Kagi MCP Server

Ein MCP-Server, der auf der Kagi API basiert. Er stellt MCP-kompatiblen Clients Such- und Extraktionstools zur Verfügung.

Tools

  • kagi_search_fetch – Suche im Web, nach Nachrichten, Videos, Podcasts und Bildern, mit optionalen Seitenauszügen, Filtern und Kagi-Linsen.
  • kagi_extract – Ruft den vollständigen Inhalt einer Seite als Markdown ab.

Hinweis: Die bisherigen Tools kagi_fastgpt und kagi_summarizer wurden entfernt. Beide sollen in einer zukünftigen Version zurückkehren.

Gehosteter Server

Wir betreiben einen gehosteten MCP-Server unter https://mcp.kagi.com/mcp – keine Installation erforderlich. Verbinde einen beliebigen HTTP-fähigen MCP-Client damit und authentifiziere dich mit deinem Kagi-API-Schlüssel.

OAuth2 wird noch nicht unterstützt (steht aber auf unserer Roadmap). Besorge dir daher vorerst deinen API-Schlüssel im Dashboard und übermittle ihn über die HTTP-Authentifizierung mit Bearer.

Beispiel mit Claude Code:

claude mcp add kagi https://mcp.kagi.com/mcp --transport http --header "Authorization: Bearer $(read -sp 'API key: ' k; echo $k)" --scope user

Möchtest du den Server lieber selbst betreiben? Unter Client Setup findest du Informationen zur lokalen Installation von uvx, unter Self-Hosting zur Bereitstellung des HTTP-Servers auf deiner eigenen Infrastruktur.

Voraussetzungen

  • Ein Kagi-API-Schlüssel in KAGI_API_KEY.
  • uv für die empfohlene Installation von uvx.

Installiere uv:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Client Setup

Codex CLI

codex mcp add kagi --env KAGI_API_KEY=<YOUR_API_KEY_HERE> -- uvx kagimcp

Codex schreibt die MCP-Konfiguration nach ~/.codex/config.toml.

Claude Desktop

Installiere zuerst uv.

MacOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Füge dann Folgendes in deine Claude-Desktop-Konfiguration ein (zu finden unter Settings -> Developer -> Edit Config):

{
  "mcpServers": {
    "kagi": {
      "command": "uvx",
      "args": ["kagimcp"],
      "env": {
        "KAGI_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Claude Code

claude mcp add kagi -e KAGI_API_KEY="YOUR_API_KEY_HERE" -- uvx kagimcp

Smithery

npx -y @smithery/cli install kagimcp --client claude

Kiro

Füge Folgendes zu deiner Kiro-MCP-Konfigurationsdatei hinzu (~/.kiro/settings/mcp.json für globalen oder .kiro/settings/mcp.json für projektspezifischen Geltungsbereich). Verwende dabei dasselbe mcpServers-JSON wie für Claude Desktop. Weitere Informationen findest du in der Kiro-MCP-Dokumentation.

OpenCode

Bearbeite die OpenCode-Konfigurationsdatei unter ~/.config/opencode/opencode.json und füge Folgendes hinzu:

{
  "mcp": {
    "kagi": {
      "type": "local",
      "command": ["uvx", "kagimcp"],
      "enabled": true,
      "environment": {
        "KAGI_API_KEY": "<YOUR_API_KEY_HERE>"
      }
    }
  }
}

Anwendungsbeispiele

  • Suche: Who was Time's 2024 person of the year?
  • Extraktion: extract the full content of https://en.wikipedia.org/wiki/Model_Context_Protocol

Konfiguration

UmgebungsvariableBeschreibung
KAGI_API_KEYErforderlicher Kagi-API-Schlüssel.
FASTMCP_LOG_LEVELProtokollierungsstufe, zum Beispiel ERROR.
KAGI_SEARCH_TIMEOUTSuch-Timeout in Sekunden. Standardwert: 10.
KAGI_EXTRACT_TIMEOUTExtraktions-Timeout in Sekunden. Standardwert: 30.
KAGI_MAX_RETRIESMaximale Anzahl von Wiederholungsversuchen nach der ersten Anfrage. Standardwert: 2; setze 0, um Wiederholungen zu deaktivieren.
KAGI_HIDDEN_PARAMSDurch Kommas getrennte Suchparameter, die im Schema für das LLM ausgeblendet werden sollen.
KAGI_SEARCH_FORMATFormat der Suchergebnisse: json (Standard) oder markdown (das Markdown der Search API, unverändert weitergegeben).

Ausblendbare Suchparameter:

workflow, extract_count, limit, include_domains, exclude_domains, time_relative, after, before, file_type, lens_id

Beispiel:

KAGI_HIDDEN_PARAMS="extract_count,after,before,time_relative,include_domains,exclude_domains"

Lokale Entwicklung

git clone https://github.com/kagisearch/kagimcp.git
cd kagimcp
uv sync

Lokal über stdio ausführen:

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp

Mit streamable HTTP-Transport ausführen:

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp --http --host 0.0.0.0 --port 8000

Self-Hosting

Der HTTP-Modus unterstützt mehrere Mandanten: Jede Anfrage übermittelt ihren API-Schlüssel über den Header Authorization: Bearer <key> statt über eine serverweite Umgebungsvariable. So kann eine Instanz mehrere Nutzer bedienen. Das Repository enthält ein Dockerfile, das eine festgelegte Version von kagimcp von PyPI installiert und im HTTP-Modus ausführt. Der Container berücksichtigt $PORT und funktioniert daher auf jeder Plattform, die eine solche Variable bereitstellt (Railway, Render, Cloud Run, Fly.io usw.).

Lokal erstellen und ausführen:

docker build -t kagimcp-hosted .
docker run --rm -p 8000:8000 kagimcp-hosted

Schnelltest:

curl -sL http://127.0.0.1:8000/mcp -X POST \
  -H "authorization: Bearer $KAGI_API_KEY" \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Um die Version in der Produktionsumgebung zu aktualisieren, ändere die festgelegte Version in Dockerfile und stelle den Dienst erneut bereit.

Debugging

Veröffentlichtes Paket untersuchen:

npx @modelcontextprotocol/inspector uvx kagimcp

Lokalen Checkout untersuchen:

npx @modelcontextprotocol/inspector uv --directory /ABSOLUTE/PATH/TO/kagimcp run kagimcp

Der Inspector ist normalerweise unter http://localhost:5173 verfügbar.

Anweisungen für Vorabversionen

Bei Verwendung eines Vorabversions-Builds gelten dieselben Installationsanweisungen. Verwende jedoch uvx --prerelease allow --from kagimcp==1.0.0rc2 kagimcp anstelle von uvx kagimcp (ersetze 1.0.0rc2 durch die gewünschte Version).