Skip to main content
Glama
MaesHughes

Wuxing Search MCP

by MaesHughes

Wuxing Search MCP란 무엇인가요?

Wuxing Search MCP는 SearXNG를 기반으로 구축된 강력한 무제한 검색 서버입니다. 모델 컨텍스트 프로토콜(MCP)을 통해 Claude Code와 원활하게 통합되며, 100개 이상의 검색 엔진 결과를 통합하여 무료로 무제한 검색 기능을 제공합니다.

기존 검색 API에는 다음과 같은 제한이 있습니다:

  • ❌ 속도 제한 및 할당량

  • ❌ 비싼 API 비용

  • ❌ 단일 소스 결과

Wuxing Search는 이러한 모든 문제를 해결합니다:

  • ✅ 완전 무료 - 자체 호스팅 SearXNG, API 비용 없음

  • ✅ 무제한 검색 - 속도 제한기 비활성화, 고빈도 검색 지원

  • ✅ 다중 소스 통합 - Google, Bing, DuckDuckGo, Brave 등 100개 이상의 엔진

  • ✅ 개인정보 보호 - 추적 없음, 기록 없음

  • ✅ MCP 통합 - Claude Code 워크플로우와 완벽 호환


Related MCP server: SearXNG MCP Server

아키텍처 설명

┌─────────────┐      ┌──────────────┐      ┌─────────────┐      ┌─────────────┐
│  你        │ ───▶ │ Claude Code │ ───▶ │ Wuxing      │ ───▶ │  SearXNG    │
│  (用户)    │      │  (MCP 客户端) │      │ Search MCP   │      │ (Docker)    │
└─────────────┘      └──────────────┘      │ (Node.js)   │      │ (Python)    │
                                            └──────────────┘      └─────────────┘
                                                    │
                                                    ▼
                                            ┌───────────────────────────┐
                                            │   搜索引擎聚合 (13+)      │
                                            │   通用: Google, Bing...   │
                                            │   代码: GitHub, HuggingFace│
                                            │   问答: StackOverflow     │
                                            │   包: npm, PyPI           │
                                            │   学术: arXiv             │
                                            │   社区: HN, Reddit        │
                                            │   以及 100+ 更多...       │
                                            └───────────────────────────┘

기능 특징

✨ 현재 기능

  • 🔍 무제한 웹 검색

    • API 속도 제한 또는 할당량 없음

    • 고빈도 검색 지원

    • 결과 수 구성 가능 (1-100)

  • 🌐 다중 소스 통합

    • 일반: Google, Bing, DuckDuckGo, Baidu

    • 코드: GitHub, Hugging Face, GitLab

    • Q&A: Stack Overflow

    • 패키지: npm, PyPI, crates.io, Docker Hub

    • 학술: arXiv, Google Scholar, Semantic Scholar, PubMed

    • 커뮤니티: HackerNews, Reddit, Mastodon

    • 문서: MDN

    • 뉴스: Google News

    • 100개 이상의 검색 엔진 지원

  • 📊 고급 검색 옵션

    • 시간 범위 필터링 (일, 주, 월, 년)

    • 카테고리 필터링 (일반, 이미지, 비디오, 뉴스, IT, 과학, 파일, 소셜)

    • 언어 필터링

    • 세이프 서치 레벨

  • 🔌 MCP 통합

    • Claude Code와 원활한 통합

    • stdio 통신 (MCP는 네트워크 포트가 필요 없음)

    • JSON-RPC 2.0 프로토콜

  • 🐳 간편한 배포

    • Docker 기반 SearXNG 배포

    • 원클릭 설치

    • 크로스 플랫폼 지원 (Windows, macOS, Linux)

  • 🔒 개인정보 우선

    • 추적 없음, 기록 없음

    • 자체 호스팅, 데이터가 기기를 벗어나지 않음

    • SearXNG를 통한 익명 검색


빠른 시작

4단계로 간단하게 시작하세요:

사전 요구 사항

1. 프로젝트 복제

git clone https://github.com/MaesHughes/wuxing-search-mcp.git
cd wuxing-search-mcp

2. 의존성 설치

npm install

3. SearXNG 시작

방법 A: Docker 명령어 사용 (권장)

docker run -d \
  --name wuxing-searxng \
  --restart unless-stopped \
  -p 18080:8080 \
  -v "$(pwd)/searxng/config:/etc/searxng/" \
  -v "$(pwd)/searxng/data:/var/cache/searxng/" \
  searxng/searxng:latest

방법 B: Docker Compose 사용

docker-compose up -d

4. Claude Code 구성

Claude Code 구성 파일을 찾으세요:

Windows:

%APPDATA%\Claude\claude_desktop_config.json

macOS / Linux:

~/.config/Claude/claude_desktop_config.json

1단계: 프로젝트 경로 가져오기

프로젝트 디렉토리에서 다음 명령어를 실행하여 절대 경로를 가져오세요:

Windows (PowerShell):

Resolve-Path src\index.js

Windows (Git Bash / Bash):

pwd -W && echo "/src/index.js"
# 或手动拼接:$(pwd -W)/src/index.js

macOS / Linux:

pwd && echo "/src/index.js"
# 或手动拼接:$(pwd)/src/index.js

2단계: 구성 추가

구성 파일에 다음 설정을 추가하세요. ⚠️ YOUR_FULL_PATH_HERE를 이전 단계에서 가져온 실제 경로로 반드시 교체하세요:

Windows 구성 예시

{
  "mcpServers": {
    "wuxing-search": {
      "type": "stdio",
      "command": "cmd",
      "args": [
        "/c",
        "node",
        "D:\\\\path\\\\to\\\\wuxing-search-mcp\\\\src\\\\index.js"
      ],
      "env": {
        "SEARXNG_URL": "http://localhost:18080",
        "MAX_RESULTS": "20",
        "TIMEOUT": "30000"
      }
    }
  }
}

macOS / Linux 구성 예시

{
  "mcpServers": {
    "wuxing-search": {
      "type": "stdio",
      "command": "node",
      "args": [
        "/home/username/wuxing-search-mcp/src/index.js"
      ],
      "env": {
        "SEARXNG_URL": "http://localhost:18080",
        "MAX_RESULTS": "20",
        "TIMEOUT": "30000"
      }
    }
  }
}

구성 설명:

구성 항목

Windows

macOS/Linux

설명

type

"stdio"

"stdio"

통신 프로토콜 유형

command

"cmd"

"node"

Windows는 cmd 래퍼 사용

args

["/c", "node", "경로..."]

["경로..."]

경로는 반드시 절대 경로여야 함

env.SEARXNG_URL

SearXNG 서비스 주소

-

기본값 http://localhost:18080

env.MAX_RESULTS

기본 반환 결과 수

-

기본값 20, 범위 1-100

env.TIMEOUT

요청 타임아웃 (밀리초)

-

기본값 30000

⚠️ 중요 참고:

  • Windows 경로의 백슬래시는 이중 백슬래시 \\로 이스케이프해야 합니다 (JSON 형식 요구 사항)

  • 또는 슬래시 /를 사용하세요 (Windows도 지원)

  • 경로는 반드시 절대 경로여야 하며, 상대 경로는 작동하지 않습니다

  • 구성을 수정한 후에는 Claude Code를 완전히 재시작해야 적용됩니다

5. Claude Code 재시작

Claude Code를 완전히 종료하고 다시 여세요.


사용 방법

기본 검색

Claude Code에서 직접 입력하세요:

请搜索最新的 AI 编程工具

고급 검색 매개변수

매개변수를 지정할 수도 있습니다:

请搜索最近一周的 React 教程,返回 10 条结果

사용 가능한 도구

1. web_search

웹 검색을 수행하고 결과를 반환합니다.

매개변수

설명

필수

기본값

query

검색 키워드

예

-

max_results

반환 결과 수 (1-100)

아니오

20

category

검색 카테고리

아니오

general

language

언어 코드

아니오

all

time_range

시간 범위 필터

아니오

none

safesearch

세이프 서치 레벨 (0-2)

아니오

1

카테고리 옵션:

  • general - 일반 검색

  • images - 이미지 검색

  • videos - 비디오 검색

  • news - 뉴스 검색

  • it - IT 기술

  • science - 과학

  • files - 파일

  • social - 소셜 미디어

시간 범위 옵션:

  • day - 지난 24시간

  • week - 지난 1주일

  • month - 지난 1개월

  • year - 지난 1년

  • none - 시간 필터 없음

2. get_server_info

검색 서버 상태 정보를 가져옵니다. 매개변수 없음.

사용 예시

예시 1: 오픈 소스 프로젝트 검색

请搜索 GitHub 上热门的 AI agent 项目

예시 2: 기술 문제 검색

在 Stack Overflow 上搜索 MCP 连接错误的解决方案

예시 3: 학술 논문 검색

请搜索 arXiv 上关于多智能体协作的最新论文

예시 4: Python 라이브러리 검색

在 PyPI 上搜索 LangChain agents 相关的包

예시 5: 개발자 토론 검색

请搜索 HackerNews 上关于 AI 编程的讨论

예시 6: 서버 상태 조회

查询搜索服务器状态

관리 명령어

NPM 명령어

# 查看 SearXNG 状态
npm run status:searxng

# 查看 SearXNG 日志
npm run logs:searxng

# 重启 SearXNG
npm run restart:searxng

# 停止 SearXNG
npm run stop:searxng

# 启动 SearXNG
npm run start:searxng

# 测试搜索服务
npm run test:searxng

Docker 명령어

# 查看容器状态
docker ps | grep wuxing-searxng

# 查看实时日志
docker logs -f wuxing-searxng

# 重启服务
docker restart wuxing-searxng

# 停止服务
docker stop wuxing-searxng

# 启动服务
docker start wuxing-searxng

# 删除并重建
docker stop wuxing-searxng && docker rm wuxing-searxng
# 然后重新运行启动命令

구성 옵션

환경 변수를 통해 MCP 서버를 구성하세요:

변수

설명

기본값

SEARXNG_URL

SearXNG 서비스 주소

http://localhost:18080

MAX_RESULTS

기본 반환 결과 수

20

TIMEOUT

요청 타임아웃 (밀리초)

30000

Claude Code 구성의 env 필드에 이러한 변수를 추가하여 동작을 사용자 정의하세요.


문제 해결

문제 1: 검색 도구가 표시되지 않거나 오류 발생

체크리스트:

  1. ✅ SearXNG 컨테이너가 실행 중인가요?

    docker ps | grep wuxing-searxng
  2. ✅ SearXNG 서비스가 정상인가요?

    curl http://localhost:18080
  3. ✅ 구성 파일 경로가 올바른가요 (절대 경로 사용)?

  4. ✅ Node.js 버전이 18 이상인가요?

    node --version
  5. ✅ Claude Code를 재시작했나요?

문제 2: SearXNG 컨테이너가 시작되지 않음

확인:

  1. 포트 18080이 사용 중인가요?

    # Windows
    netstat -ano | findstr :18080
    
    # Linux/Mac
    lsof -ti:18080
  2. Docker 서비스가 실행 중인가요?

  3. 컨테이너 로그 확인:

    docker logs wuxing-searxng

해결책:

# 删除旧容器并重新创建
docker stop wuxing-searxng && docker rm wuxing-searxng
# 然后重新运行启动命令

문제 3: 검색 시 연결 오류 반환

가능한 원인: SearXNG 서비스가 완전히 시작되지 않음

해결책:

# 等待 5-10 秒后重试
# 或重启 SearXNG
docker restart wuxing-searxng

문제 4: 결과에 오래된 콘텐츠가 포함됨

원인: 시간 필터링은 검색 엔진의 지원에 의존함

해결책:

  1. 더 짧은 시간 범위 사용 (week 대신 day)

  2. 쿼리에 명확한 시간 키워드 추가 (예: 2025년 1월)

  3. 조합 사용:

    请搜索 2025年1月的 React 新特性

기술 아키텍처

MCP 서버 (Node.js)

  • 파일: src/index.js

  • 의존성: @modelcontextprotocol/sdk, axios

  • 통신: stdio (표준 입력/출력)

  • 역할: MCP 프로토콜 구현, SearXNG로 요청 전달

SearXNG (Python/Docker)

  • 이미지: searxng/searxng:latest

  • 포트: 18080 (호스트) → 8080 (컨테이너)

  • 구성: searxng/config/settings.yml

  • 데이터: searxng/data/ (캐시)

  • 역할: 100개 이상의 검색 엔진 통합

데이터 흐름

用户输入
  → Claude Code
  → MCP Server (stdio)
  → HTTP 请求到 SearXNG
  → 并发请求到各搜索引擎
  → 聚合结果
  → 返回给用户

프로젝트 구조

wuxing-search-mcp/
├── src/                  # MCP Server 源码
│   └── index.js         # MCP Server 主实现
├── searxng/             # SearXNG 配置
│   ├── config/          # SearXNG settings.yml
│   └── data/            # SearXNG 缓存(自动创建)
├── assets/              # 文档图片
│   └── banner.png       # 项目横幅
├── package.json         # NPM 包配置
├── docker-compose.yml   # Docker Compose 配置
├── install.sh           # Linux/Mac 安装脚本
├── install.ps1          # Windows 安装脚本
├── README.md            # 英文版
├── README.zh-CN.md      # 中文版(本文件)
└── INSTALL.md           # 详细安装指南

자주 묻는 질문 (FAQ)

Q: 왜 Docker가 필요한가요?

A: SearXNG는 Python 프로젝트이며 50개 이상의 Python 패키지에 의존합니다. Docker는 다음을 제공합니다:

  • 복잡한 수동 의존성 설치 방지

  • 환경 격리

  • 배포 및 업데이트 간소화

Q: Docker 없이 사용할 수 있나요?

A: 이론적으로는 가능하지만 권장하지 않습니다. 다음이 필요합니다:

  1. Python 3.14 설치

  2. 50개 이상의 Python 의존성 수동 설치

  3. Python 환경 구성

Docker 방식이 훨씬 간단하고 안정적입니다.

Q: 검색 제한이 있나요?

A: 없습니다! 이것이 본 프로젝트의 핵심 장점입니다:

  • 완전 자체 호스팅

  • API 호출 제한 없음

  • 요청 속도 제한 없음

Q: 어떤 검색 엔진을 지원하나요?

A: SearXNG는 245개의 검색 엔진을 지원하며 기본적으로 89개가 활성화되어 있습니다.

현재 활성화된 21개 엔진:

카테고리

검색 엔진

일반 검색

Google, Bing, DuckDuckGo, Baidu

코드 저장소

GitHub, Hugging Face, GitLab

기술 Q&A

Stack Overflow

패키지 관리자

npm, PyPI, crates.io, Docker Hub

학술 논문

arXiv, Google Scholar, Semantic Scholar, PubMed

개발자 커뮤니티

HackerNews, Reddit, Mastodon

개발 문서

MDN Web Docs

뉴스 소스

Google News

기타 사용 가능한 엔진 (구성에서 활성화 가능):

  • 코드: Bitbucket, Codeberg, Gitea, SourceHut

  • 패키지 관리: RubyGems, Go, Hex, Packagist

  • 소셜: Lemmy

  • 비디오: YouTube, Vimeo, Bilibili

  • 등...

Q: 검색 품질은 어떤가요?

A: 활성화된 검색 엔진에 따라 다릅니다. 기본 구성에는 주요 검색 엔진이 포함되어 있어 품질이 좋습니다. 조정이 필요한 경우 searxng/config/settings.yml을 편집하세요.


기여

커뮤니티의 기여를 환영합니다! 다음과 같이 도움을 주실 수 있습니다:

  1. Fork 본 저장소

  2. 기능 브랜치 생성 (git checkout -b feature/amazing-feature)

  3. 변경 사항 커밋 (git commit -m 'Add amazing feature')

  4. 브랜치로 푸시 (git push origin feature/amazing-feature)

  5. Pull Request 열기

기여 방법

  • 검색 엔진 구성 개선

  • MCP 서버에 새로운 기능 추가

  • 버그 및 문제 보고

  • 새로운 기능 제안

  • 문서 개선

  • 피드백 공유


리소스

📚 문서

🌐 공식 웹사이트

💬 커뮤니티


라이선스

MIT License - 자세한 내용은 LICENSE 파일을 참조하세요.


감사의 말


Wuxing 팀이 ❤️를 담아 제작

⭐ GitHub에서 별을 눌러주세요 — 큰 도움이 됩니다!

Available Tools

2 tools
get_server_infoB

获取搜索服务器信息,包括服务状态、版本等。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves information (implying read-only behavior) and lists examples of what information is included (service status, version). However, it doesn't disclose important behavioral traits like whether this requires authentication, has rate limits, returns structured or unstructured data, or has any side effects. For a tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the purpose and provides examples of what information is included. There's no wasted language or unnecessary elaboration. While it could be slightly more structured by separating purpose from examples, it's appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema, no annotations), the description provides adequate coverage of what the tool does. It explains the purpose and gives examples of returned information. However, without annotations or output schema, it should ideally provide more behavioral context (like authentication requirements or response format) to be fully complete. The description is minimally viable but has clear gaps in behavioral transparency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema description coverage is 100% (empty schema is fully documented). With no parameters to explain, the description appropriately doesn't discuss parameters. It focuses on what information is retrieved rather than how to call the tool, which is correct for a parameterless tool. The baseline for zero parameters with high schema coverage is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as '获取搜索服务器信息,包括服务状态、版本等' (Get search server information, including service status, version, etc.), which specifies the verb ('获取' - get) and resource ('搜索服务器信息' - search server information). It distinguishes from the sibling tool 'web_search' by focusing on server metadata rather than performing searches. However, it doesn't explicitly differentiate from potential other server-related tools beyond the single sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling tool 'web_search' or explain that this is for server diagnostics while 'web_search' is for content retrieval. There's no context about prerequisites, timing, or use cases beyond the basic purpose statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.0.0
    • First observedget_server_info
    • First observedweb_search

TDQS

A3.6/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: get_server_info retrieves server metadata, while web_search performs actual web searches. There is no overlap or ambiguity between them, making it easy for an agent to select the correct tool based on the task.

Naming Consistency5/5

Both tools follow a consistent verb_noun naming pattern (get_server_info and web_search). The naming is clear, predictable, and adheres to the same convention throughout, with no mixing of styles or deviations.

Tool Count2/5

With only 2 tools, the server feels under-scoped for its stated purpose of supporting web search for tasks like collecting references for course development. While the tools are functional, the count is too low to provide comprehensive coverage, lacking operations like advanced search filtering or result management.

Completeness3/5

The server covers basic search functionality with web_search and server status with get_server_info, but there are notable gaps. For example, it lacks tools for saving, organizing, or analyzing search results, which would be useful for the described use cases like course development. The surface is functional but incomplete for sustained workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides privacy-focused web search capabilities through SearXNG metasearch engine, enabling web, image, video, and news searches without tracking. Includes comprehensive research tools that aggregate and analyze results from multiple search engines.
    3
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to perform privacy-respecting web searches through SearXNG, with support for multiple search engines, categories, and advanced filtering options.
    153 npm
    27
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A free and unlimited web search server that enables AI models to search, crawl, and research web content using DuckDuckGo without requiring API keys. It features parallel crawling and a smart ranking system to prioritize the most relevant information for complex queries.
    185 npm
    4
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides free web search, content fetching, image search, and deep research via SearXNG, no API keys required.
    -