Wuxing Search MCP
Wuxing Search MCP란 무엇인가요?
Wuxing Search MCP는 SearXNG를 기반으로 구축된 강력한 무제한 검색 서버입니다. 모델 컨텍스트 프로토콜(MCP)을 통해 Claude Code와 원활하게 통합되며, 100개 이상의 검색 엔진 결과를 통합하여 무료로 무제한 검색 기능을 제공합니다.
왜 Wuxing Search인가요?
기존 검색 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-mcp2. 의존성 설치
npm install3. 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 -d4. Claude Code 구성
Claude Code 구성 파일을 찾으세요:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS / Linux:
~/.config/Claude/claude_desktop_config.json1단계: 프로젝트 경로 가져오기
프로젝트 디렉토리에서 다음 명령어를 실행하여 절대 경로를 가져오세요:
Windows (PowerShell):
Resolve-Path src\index.jsWindows (Git Bash / Bash):
pwd -W && echo "/src/index.js"
# 或手动拼接:$(pwd -W)/src/index.jsmacOS / Linux:
pwd && echo "/src/index.js"
# 或手动拼接:$(pwd)/src/index.js2단계: 구성 추가
구성 파일에 다음 설정을 추가하세요. ⚠️ 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 | 설명 |
|
|
| 통신 프로토콜 유형 |
|
|
| Windows는 cmd 래퍼 사용 |
|
|
| 경로는 반드시 절대 경로여야 함 |
| SearXNG 서비스 주소 | - | 기본값 |
| 기본 반환 결과 수 | - | 기본값 20, 범위 1-100 |
| 요청 타임아웃 (밀리초) | - | 기본값 30000 |
⚠️ 중요 참고:
Windows 경로의 백슬래시는 이중 백슬래시
\\로 이스케이프해야 합니다 (JSON 형식 요구 사항)또는 슬래시
/를 사용하세요 (Windows도 지원)경로는 반드시 절대 경로여야 하며, 상대 경로는 작동하지 않습니다
구성을 수정한 후에는 Claude Code를 완전히 재시작해야 적용됩니다
5. Claude Code 재시작
Claude Code를 완전히 종료하고 다시 여세요.
사용 방법
기본 검색
Claude Code에서 직접 입력하세요:
请搜索最新的 AI 编程工具고급 검색 매개변수
매개변수를 지정할 수도 있습니다:
请搜索最近一周的 React 教程,返回 10 条结果사용 가능한 도구
1. web_search
웹 검색을 수행하고 결과를 반환합니다.
매개변수 | 설명 | 필수 | 기본값 |
| 검색 키워드 | 예 | - |
| 반환 결과 수 (1-100) | 아니오 | 20 |
| 검색 카테고리 | 아니오 | general |
| 언어 코드 | 아니오 | all |
| 시간 범위 필터 | 아니오 | none |
| 세이프 서치 레벨 (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:searxngDocker 명령어
# 查看容器状态
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 서비스 주소 | |
| 기본 반환 결과 수 | 20 |
| 요청 타임아웃 (밀리초) | 30000 |
Claude Code 구성의 env 필드에 이러한 변수를 추가하여 동작을 사용자 정의하세요.
문제 해결
문제 1: 검색 도구가 표시되지 않거나 오류 발생
체크리스트:
✅ SearXNG 컨테이너가 실행 중인가요?
docker ps | grep wuxing-searxng✅ SearXNG 서비스가 정상인가요?
curl http://localhost:18080✅ 구성 파일 경로가 올바른가요 (절대 경로 사용)?
✅ Node.js 버전이 18 이상인가요?
node --version✅ Claude Code를 재시작했나요?
문제 2: SearXNG 컨테이너가 시작되지 않음
확인:
포트 18080이 사용 중인가요?
# Windows netstat -ano | findstr :18080 # Linux/Mac lsof -ti:18080Docker 서비스가 실행 중인가요?
컨테이너 로그 확인:
docker logs wuxing-searxng
해결책:
# 删除旧容器并重新创建
docker stop wuxing-searxng && docker rm wuxing-searxng
# 然后重新运行启动命令문제 3: 검색 시 연결 오류 반환
가능한 원인: SearXNG 서비스가 완전히 시작되지 않음
해결책:
# 等待 5-10 秒后重试
# 或重启 SearXNG
docker restart wuxing-searxng문제 4: 결과에 오래된 콘텐츠가 포함됨
원인: 시간 필터링은 검색 엔진의 지원에 의존함
해결책:
더 짧은 시간 범위 사용 (
week대신day)쿼리에 명확한 시간 키워드 추가 (예:
2025년 1월)조합 사용:
请搜索 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: 이론적으로는 가능하지만 권장하지 않습니다. 다음이 필요합니다:
Python 3.14 설치
50개 이상의 Python 의존성 수동 설치
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을 편집하세요.
기여
커뮤니티의 기여를 환영합니다! 다음과 같이 도움을 주실 수 있습니다:
Fork 본 저장소
기능 브랜치 생성 (
git checkout -b feature/amazing-feature)변경 사항 커밋 (
git commit -m 'Add amazing feature')브랜치로 푸시 (
git push origin feature/amazing-feature)Pull Request 열기
기여 방법
검색 엔진 구성 개선
MCP 서버에 새로운 기능 추가
버그 및 문제 보고
새로운 기능 제안
문서 개선
피드백 공유
리소스
📚 문서
설치 가이드 - 상세 설치 설명
SearXNG 문서 - SearXNG 공식 문서
MCP 사양 - 모델 컨텍스트 프로토콜
🌐 공식 웹사이트
Wuxing Codes 블로그 - 최신 업데이트 및 튜토리얼
💬 커뮤니티
GitHub Issues - 문제 보고
GitHub Discussions - 질문
라이선스
MIT License - 자세한 내용은 LICENSE 파일을 참조하세요.
감사의 말
오픈 소스 프로젝트 SearXNG 기반 구축
Claude Code 커뮤니티를 위해 제작
Wuxing Codes 생태계의 일부
Wuxing 팀이 ❤️를 담아 제작
⭐ GitHub에서 별을 눌러주세요 — 큰 도움이 됩니다!
Available Tools
2 toolsget_server_infoB
获取搜索服务器信息,包括服务状态、版本等。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
web_searchA
执行网页搜索,返回搜索结果列表。
用途:
搜索技术文档、教程、博客等内容
用于课程开发时收集参考资料
支持任意关键词搜索
参数说明:
query: 搜索关键词(必需)
max_results: 返回结果数量,默认 20,最大 100
category: 搜索类别,可选值:general, images, videos, files, it, map, music, science, social, news
language: 搜索语言,默认 zh-CN
time_range: 时间范围,可选值:day, week, month, year, none(默认)
safesearch: 安全搜索级别,可选值:0, 1, 2(默认 1)
返回格式:
title: 结果标题
url: 结果链接
content: 结果摘要
engine: 搜索引擎来源
score: 相关性评分
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 搜索关键词 | |
| max_results | No | 返回结果数量(1-100) | |
| category | No | 搜索类别 | general |
| language | No | 搜索语言代码(如:zh、en、all) | all |
| time_range | No | 时间范围 | none |
| safesearch | No | 安全搜索级别(0=关闭, 1=中等, 2=严格) |
TDQS
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 describes the return format (title, url, content, engine, score) which is valuable, but doesn't mention important behavioral aspects like rate limits, authentication requirements, pagination behavior, or whether this is a read-only operation. The description adequately covers what the tool does but lacks operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (用途, 参数说明, 返回格式) and every sentence earns its place. It's appropriately sized for a 6-parameter tool with no annotations, providing necessary information without redundancy. The information is front-loaded with the core purpose stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 6 parameters, no annotations, and no output schema, the description does a good job covering the essentials. It explains the tool's purpose, provides usage examples, documents all parameters with their semantics, and describes the return format. The main gap is the lack of behavioral constraints (rate limits, authentication, etc.) that would be important for production use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds meaningful context by explaining the purpose of each parameter beyond what's in the schema (e.g., '用于课程开发时收集参考资料' provides context for the query parameter, and the category parameter explanation gives practical use cases). However, it doesn't provide examples or edge case guidance that would elevate it to a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('执行网页搜索' - perform web search) and resource ('搜索结果列表' - search results list). It distinguishes this general web search tool from the only sibling tool (get_server_info) by focusing on external content discovery rather than server information retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage contexts with three specific examples (searching technical documentation/tutorials/blogs, collecting reference materials for course development, and supporting arbitrary keyword searches). However, it doesn't explicitly state when NOT to use this tool or mention alternatives for different types of searches beyond the category parameter.
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.
2 tool updates
v1.0.0- First observed
get_server_info - First observed
web_search
TDQS
Scored across 2 tools
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.
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.
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.
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
Related MCP Connectors
Web search for AI agents — one tool across 6 engines, routed to the cheapest + cached.
The best web search for your AI Agent
Agent-native search engine with live web research optimized for AI agents.
Google, Bing, DuckDuckGo and Google Maps search results, free without an API key.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides 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.34MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform privacy-respecting web searches through SearXNG, with support for multiple search engines, categories, and advanced filtering options.153 npm27MIT
- AlicenseNot gradedqualityDmaintenanceA 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 npm4MIT
- FlicenseNot gradedqualityDmaintenanceProvides free web search, content fetching, image search, and deep research via SearXNG, no API keys required.-