Kagi Search MCP Server

공식

Kagi의 검색 API를 사용하여 웹을 검색합니다.

문서

Kagi MCP 서버

Kagi API를 기반으로 하는 MCP 서버입니다. MCP 호환 클라이언트에 검색 및 추출 도구를 제공합니다.

도구

  • kagi_search_fetch - 선택적 페이지 추출, 필터 및 Kagi 렌즈를 포함한 웹, 뉴스, 동영상, 팟캐스트 및 이미지 검색.
  • kagi_extract - 페이지의 전체 콘텐츠를 마크다운으로 가져옵니다.

참고: 이전 kagi_fastgptkagi_summarizer 도구는 제거되었습니다. 두 도구 모두 향후 릴리스에서 다시 제공될 예정입니다.

호스팅 서버

https://mcp.kagi.com/mcp 에서 호스팅 MCP 서버를 운영 중이므로 설치가 필요 없습니다. HTTP 지원 MCP 클라이언트를 이 주소로 지정하고 Kagi API 키로 인증하세요.

OAuth2는 아직 지원되지 않으며(로드맵에 포함되어 있음), 현재는 대시보드에서 API 키를 가져와 Bearer HTTP 인증을 통해 전달하세요.

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

직접 실행하고 싶으신가요? 로컬 uvx 설치 방법은 클라이언트 설정을, 자체 인프라에서 HTTP 서버를 호스팅하는 방법은 자체 호스팅을 참조하세요.

요구 사항

  • KAGI_API_KEY 의 Kagi API 키.
  • 권장 uvx 설치 경로를 위한 uv.

uv 설치:

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

Windows:

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

클라이언트 설정

Codex CLI

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

Codex는 MCP 구성을 ~/.codex/config.toml 에 기록합니다.

Claude Desktop

먼저 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"

그런 다음 Claude Desktop 구성(설정 -> 개발자 -> 구성 편집에서 찾을 수 있음)에서:

{
  "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

Claude Desktop과 동일한 mcpServers JSON을 사용하여 Kiro MCP 구성 파일(전역의 경우 ~/.kiro/settings/mcp.json, 프로젝트 범위의 경우 .kiro/settings/mcp.json)에 추가하세요. 자세한 내용은 Kiro MCP 문서를 참조하세요.

OpenCode

~/.config/opencode/opencode.json 에 있는 OpenCode 구성 파일을 편집하고 다음을 추가하세요:

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

사용 예시

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

구성

환경 변수설명
KAGI_API_KEY필수 Kagi API 키.
FASTMCP_LOG_LEVEL로깅 레벨 (예: ERROR).
KAGI_SEARCH_TIMEOUT검색 제한 시간(초). 기본값은 10.
KAGI_EXTRACT_TIMEOUT추출 제한 시간(초). 기본값은 30.
KAGI_MAX_RETRIES첫 번째 요청 이후 최대 재시도 횟수. 기본값은 2; 재시도를 비활성화하려면 0 로 설정.
KAGI_HIDDEN_PARAMSLLM 대상 스키마에서 숨길 쉼표로 구분된 검색 매개변수.

숨길 수 있는 검색 매개변수:

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

예시:

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

로컬 개발

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

stdio를 통해 로컬에서 실행:

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp

스트리밍 가능한 HTTP 전송으로 실행:

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

자체 호스팅

HTTP 모드는 멀티 테넌트입니다: 각 요청은 서버 전체 환경 변수 대신 Authorization: Bearer <key> 헤더를 통해 API 키를 제공하므로 하나의 인스턴스가 여러 사용자에게 서비스를 제공할 수 있습니다. 저장소는 PyPI에서 고정된 kagimcp 을 설치하고 HTTP 모드로 실행하는 Dockerfile 을 제공합니다. 컨테이너는 $PORT 을 준수하므로 이를 주입하는 모든 플랫폼(Railway, Render, Cloud Run, Fly.io 등)에서 작동합니다.

로컬에서 빌드 및 실행:

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

스모크 테스트:

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"}'

프로덕션에서 버전을 올리려면 Dockerfile 의 핀을 편집하고 재배포하세요.

디버깅

게시된 패키지 검사:

npx @modelcontextprotocol/inspector uvx kagimcp

로컬 체크아웃 검사:

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

검사기는 일반적으로 http://localhost:5173 에서 사용할 수 있습니다.

사전 출시 지침

사전 출시 빌드를 사용하는 경우 동일한 설치 지침이 적용되지만, uvx kagimcp 대신 uvx --prerelease allow --from kagimcp==1.0.0rc2 kagimcp 을 사용하세요 (1.0.0rc2 을 설치하려는 버전으로 교체).