Skip to content

WannaTen/local-web-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

本地网页搜索 MCP 服务器 (Local Web Search MCP Server)

概述

这是一个基于 Model Context Protocol (MCP) 的网页搜索服务器实现,提供网络搜索和内容提取功能。该服务器使用浏览器自动化技术模拟用户搜索行为,避免被搜索引擎检测为爬虫。

组件

工具 (Tools)

服务器提供以下核心工具:

搜索工具

  • web_search
    • 执行网络搜索并返回结果
    • 输入参数:
      • query (string): 搜索查询(必需)
      • max_results (int): 返回结果数量(默认:5)
    • 返回:格式化的搜索结果,包含标题、URL和内容摘要

安装和使用

前提条件

  • Python 3.10+
  • uv(推荐的新一代 Python 包管理工具)
  • 或者 Docker

使用 Claude Desktop

uv 方式

在你的 claude_desktop_config.json 中添加服务器配置:

"mcpServers": {
  "web_search": {
    "command": "uv",
    "args": [
      "--directory",
      "path/to/local_web_search",
      "run",
      "local_web_search"
    ]
  }
}

Docker 方式

"mcpServers": {
  "web_search": {
    "command": "docker",
    "args": [
      "run",
      "--rm",
      "-i",
      "local-web-search"
    ]
  }
}

本地安装

使用 uv(推荐)

  1. 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 克隆仓库并进入目录
git clone https://github.com/yourusername/local-web-search.git
cd local-web-search
  1. 安装项目及其依赖
# 安装基本依赖
uv pip install -e .

# 或安装开发依赖
uv pip install -e ".[dev]"

使用 Docker

  1. 构建镜像
# 构建 Docker 镜像
docker build -t local-web-search .
  1. 运行容器
# 运行服务器
docker run --rm -i local-web-search

客户端使用示例

from mcp.client import Client

async with Client("web_search") as client:
    # 基本搜索
    results = await client.web_search("Python教程")
    print(results)
    
    # 限制结果数量
    results = await client.web_search("Python教程", max_results=3)
    print(results)

项目结构

local-web-search/
├── pyproject.toml      # 项目配置和依赖管理
├── uv.lock            # 依赖版本锁定
├── README.md          # 项目文档
├── Dockerfile         # Docker 构建文件
└── src/               # 源代码目录
    └── local_web_search/
        ├── __init__.py
        ├── mcp_server.py    # MCP 服务器实现
        └── local_web_search.py  # 核心搜索功能

开发工具

使用 uv 管理开发工具:

# 全局安装工具
uv tool install ruff black

# 项目级安装
uv add --group dev ruff black pytest

# 一次性运行
uvx black src/

技术栈

  • MCP:用于构建命令行工具服务
  • Playwright:浏览器自动化
  • Readability:网页内容提取
  • BeautifulSoup:HTML解析
  • html2text:HTML转Markdown
  • UV:依赖管理

注意事项

  • 仅供学习和研究目的使用
  • 遵守搜索引擎服务条款
  • 合理设置并发数和请求间隔

许可证

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published