# SearXNG MCP Server - Stdio Usage Guide

이 패키지는 두 가지 실행 모드를 지원합니다:

## 1. HTTP Server 모드 (기본)

웹 브라우저나 HTTP 클라이언트에서 직접 접근:

```bash
npx @otbossam/searxng-mcp-server
# 또는
node index.js
```

서버는 `http://localhost:32769`에서 실행됩니다.

## 2. Stdio 모드 (MCP 클라이언트용)

httpwrapper, Claude Desktop, Cline 등 stdio 기반 MCP 클라이언트에서 사용:

```bash
npx @otbossam/searxng-mcp-stdio
# 또는
node stdio.js
```

### httpwrapper에서 사용하기

#### 방법 1: npm에 publish된 경우 (권장)

`mcp-config.json`:

```json
{
  "mcpServers": {
    "searxng-enhanced": {
      "command": "npx",
      "args": ["-y", "@otbossam/searxng-mcp-stdio"],
      "env": {
        "SEARXNG_BASE_URL": "http://localhost:32768",
        "CONTENT_MAX_LENGTH": "10000",
        "SEARCH_RESULT_LIMIT": "10",
        "DESIRED_TIMEZONE": "UTC"
      }
    }
  }
}
```

#### 방법 2: 로컬 개발용

```json
{
  "mcpServers": {
    "searxng-enhanced": {
      "command": "node",
      "args": ["C:\\path\\to\\searxng-mcp-crawl\\stdio.js"],
      "env": {
        "SEARXNG_BASE_URL": "http://localhost:32768",
        "CONTENT_MAX_LENGTH": "10000",
        "SEARCH_RESULT_LIMIT": "10",
        "DESIRED_TIMEZONE": "UTC"
      }
    }
  }
}
```

### Claude Desktop에서 사용하기

`claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "searxng-enhanced": {
      "command": "npx",
      "args": ["-y", "@otbossam/searxng-mcp-stdio"],
      "env": {
        "SEARXNG_BASE_URL": "http://localhost:32768",
        "CONTENT_MAX_LENGTH": "10000",
        "SEARCH_RESULT_LIMIT": "10",
        "DESIRED_TIMEZONE": "UTC"
      }
    }
  }
}
```

## 환경 변수

| 변수 | 기본값 | 설명 |
|------|--------|------|
| `SEARXNG_BASE_URL` | `http://localhost:32768` | SearXNG 인스턴스 URL |
| `CONTENT_MAX_LENGTH` | `10000` | 크롤링된 콘텐츠 최대 길이 |
| `SEARCH_RESULT_LIMIT` | `10` | 검색 결과 최대 개수 |
| `DESIRED_TIMEZONE` | `UTC` | 타임존 설정 |

## npm에 배포하기

1. npm 계정에 로그인:
```bash
npm login
```

2. 버전 업데이트:
```bash
npm version patch  # 또는 minor, major
```

3. npm에 publish:
```bash
npm publish --access public
```

4. 배포 후 사용:
```bash
npx @otbossam/searxng-mcp-stdio
```

## 로컬에서 테스트하기

npm에 publish하지 않고 로컬에서 테스트:

```bash
# 패키지 디렉토리에서
npm link

# 이제 전역에서 사용 가능
searxng-mcp-stdio

# 또는
npx searxng-mcp-stdio
```

## 장점

- ✅ **배포 간편**: npm에 한 번만 publish하면 끝
- ✅ **설정 간단**: `npx` 한 줄로 실행
- ✅ **자동 업데이트**: `-y` 플래그로 최신 버전 자동 다운로드
- ✅ **크로스 플랫폼**: Python 경로 자동 탐지
- ✅ **의존성 관리**: Python 가상환경 불필요 (글로벌 Python 사용)

## 문제 해결

### Python을 찾을 수 없음

```bash
# Python 설치 확인
python --version
# 또는
python3 --version
```

### 의존성 설치

```bash
pip install -r requirements.txt
```

### 수동 실행

stdio.js가 작동하지 않으면 직접 Python 실행:

```bash
python mcp_stdio_server.py
```
