s

slawekradzyminski

web-scrapingbrowser-automation

294 查看 · 2026-07-07 更新

简单的MCP工具服务器

一个简单的MCP服务器,使用SSE传输方式提供了一个网站抓取工具。

要求

  • Python 3.10或更高版本(在Python 3.13上测试过)

安装

bash

创建虚拟环境

python3 -m venv venv

激活虚拟环境

source venv/bin/activate

安装包及其依赖项

pip install -r requirements.txt

MCP Python SDK文档

MCP Python SDK文档已被拆分成更小的文件,并组织在docs/目录中。这种结构使得AI代理更容易导航和理解SDK。文档涵盖了:

  • 核心概念(服务器、资源、工具等)
  • 在不同模式下运行MCP服务器
  • 示例和高级用法
  • 以及更多!

使用方法

该包提供了一个命令行界面(CLI),包含几个用于管理MCP服务器的命令:

启动服务器

在默认端口(7000)启动服务器或指定自定义端口:

bash

使用默认端口(7000)

python -m mcp_simple_tool start

使用自定义端口

python -m mcp_simple_tool start --port 8000

管理服务器

bash

检查服务器是否正在运行

python -m mcp_simple_tool check [--port PORT]

停止服务器

python -m mcp_simple_tool stop [--port PORT]

重启服务器(停止并启动)

python -m mcp_simple_tool restart [--port PORT]

重启命令将执行以下操作:

  1. 停止指定端口上的任何现有服务器
  2. 在后台启动一个新的服务器
  3. 等待直到服务器响应
  4. 将输出记录到server.log

CLI快速参考

命令目的
start启动服务器
stop停止服务器
check健康检查
restart停止并启动

服务器工具

服务器提供了以下工具:

  • fetch: 远程 HTTP 抓取器 – 提供绝对URL;返回页面文本。

    • url: 要抓取的网站的URL(必填)
  • search_docs: 对SDK文档进行语义搜索;返回前k个摘录。

    • query: 搜索短语或问题(必填)
    • k: 返回的顶级匹配数(可选,默认=3)
  • get_content: 获取由search_docs返回的任何匹配项的完整本地文件

    • file: 相对于文档的路径(必填)

开发设置

为了开发,请安装额外的工具:

bash pip install -e . pip install -r requirements.txt

使用Makefile执行常见任务:

bash

格式化代码

make fmt

运行代码检查

make lint

运行测试

make test

测试套件为所有测试内置了20秒超时,以防止挂起,特别是对于SSE端点。对于单独的测试,可以使用@pytest.mark.timeout(seconds)装饰器指定更严格的超时时间。

语义搜索索引

对于search_docs工具,您可以手动构建或重建向量索引:

bash

构建或重建语义搜索索引

python scripts/build_doc_index.py

如果索引不存在,则会在首次使用工具时自动构建。

项目架构

mcp_simple_tool/ init.py # 包初始化 main.py # 作为模块运行时的入口点 cli.py # 命令行接口 server/ # 服务器实现 init.py # 服务器包初始化 app.py # ASGI应用程序设置 config.py # 配置设置 handlers.py # 工具实现 http.py # HTTP实用程序 semantic_search/ # 语义搜索功能 init.py # 包初始化 indexing.py # 构建和持久化向量存储 search.py # 加载索引和查询辅助函数

与Cursor一起使用

此MCP服务器可以与Cursor作为客户端一起使用。设置步骤如下:

  1. 在终端中运行服务器: bash source venv/bin/activate python -m mcp_simple_tool start

或者使用重启命令

python -m mcp_simple_tool restart2. 通过创建一个 .cursor/mcp.json 文件来配置 Cursor: json { "mcpServers": { "website-fetcher-sse": { "url": "http://localhost:7000/sse" } } }

  1. 在使用 Cursor 时,在提示中提及该服务器。

服务配置

[{'mcpServers': {'website-fetcher-sse': {'url': 'http://localhost:7000/sse'}}}]

来源