Token导航 LogoToken导航TokenDH.com
Fast API logo
开发工具stdio官方级别未说明来源级核验

Fast API

MCP Server

基于FastAPI的MCP服务器,提供顺序思维工具用于动态和反思性问题解决,以及无浏览器Playwright自动化工具用于网页抓取和测试。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
浏览器自动化PythonCursorCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mersdev

提供方

mersdev

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

基于FastAPI的顺序思维MCP服务器

基于FastAPI的MCP(模型上下文协议)服务器,通过结构化思维过程为动态和反思性问题解决提供顺序思维工具,以及用于网络抓取和测试的强大无浏览器Playwright自动化工具。

特性

  • 顺序思维工具:将复杂问题分解为可管理的步骤
  • 动态思维修正:随着理解的加深,修改和完善想法
  • 分支推理:转向其他推理路径
  • 适应性规划:动态调整想法总数
  • 假设生成与验证:生成并验证解决方案假设
  • 剧作家浏览器自动化:无浏览器网页抓取、屏幕截图、表单填充和JavaScript执行
  • 回声工具:用于测试和调试MCP连接的简单回声工具
  • HTTP传输:可使用FastAPI通过流式HTTP访问
  • n8n准备就绪:所有Playwright工具都是为与n8n工作流无缝集成而设计的

工具

工具:echo

一个简单的回显工具,返回您发送给它的消息。可用于测试MCP服务器连接和基本功能。

输入:

  • message (string):要回显的消息

退货:

  • echo (string):原始消息
  • length (整数):消息的长度
  • status (string):操作状态(始终为“成功”)

例子:

{
  "message": "Hello, World!"
}

答复:

{
  "echo": "Hello, World!",
  "length": 13,
  "status": "success"
}

剧作家自动化工具

所有Playwright工具都可以运行 无浏览器无头模式,使其非常适合服务器环境和n8n工作流。屏幕截图以base64编码字符串的形式返回,便于集成。

工具:剧作家_编剧

导航到URL并捕获屏幕截图。

输入:

  • url (字符串,必填):要导航到的URL(必须包含http://或https://)
  • wait_for_selector (string,可选):截图前等待的CSS选择器
  • wait_time (整数,可选):页面加载后的等待时间(毫秒)(默认值:1000)
  • full_page (boolean,可选):是否捕获完整的可滚动页面(默认值:false)

退货:

  • status (string):“成功”或“错误”
  • url (string):导航到的URL
  • title (string):页面标题
  • screenshot (string):Base64编码的截图图像
  • screenshot_size (整数):屏幕截图的大小(以字节为单位)
  • full_page (boolean):是否捕获了整页

例子:

{
  "url": "https://example.com",
  "full_page": true
}

工具:剧作家_scrape_text

从网页中提取文本内容。

输入:

  • url (字符串,必填):要导航到的URL
  • selector (string,可选):CSS选择器,用于提取特定内容(如果为None,则获取所有正文)
  • wait_time (整数,可选):页面加载后的等待时间(毫秒)(默认值:1000)

退货:

  • status (string):“成功”、“警告”或“错误”
  • url (string):导航到的URL
  • title (string):页面标题
  • selector (string):使用的选择器
  • text (string):提取的文本内容
  • text_length (整数):提取文本的长度

工具:剧作家_get_html

从网页中提取HTML内容。

输入:

  • url (字符串,必填):要导航到的URL
  • selector (string,可选):CSS选择器,用于提取特定的HTML(如果为None,则获取所有页面HTML)
  • wait_time (整数,可选):页面加载后的等待时间(毫秒)(默认值:1000)

退货:

  • status (string):“成功”、“警告”或“错误”
  • url (string):导航到的URL
  • title (string):页面标题
  • selector (string):使用的选择器
  • html (string):提取的HTML内容
  • html_length (整数):提取的HTML长度

工具:playwritt_click

导航到URL并单击元素。

输入:

  • url (字符串,必填):要导航到的URL
  • selector (string,必填):要单击的元素的CSS选择器
  • wait_after_click (整数,可选):单击后等待的时间(毫秒)(默认值:1000)
  • screenshot (布尔值,可选):点击后是否截图(默认值:true)
  • wait_for_navigation (布尔值,可选):点击后是否等待导航(默认值:false)

退货:

  • status (string):“成功”或“错误”
  • original_url (string):导航到的原始URL
  • current_url (string):点击后的当前URL
  • title (string):点击后的页面标题
  • selector (string):单击的选择器
  • clicked (boolean):点击是否成功
  • screenshot (字符串,可选):如果需要,可以使用Base64编码的屏幕截图
  • screenshot_size (整数,可选):屏幕截图的大小(以字节为单位)

工具:剧作家法

填写网页上的表单字段。

输入:

  • url (字符串,必填):要导航到的URL
  • fields (数组,必填):具有“选择器”和“值”键的对象列表

- 例子: [{"selector": "#email", "value": "test@example.com"}, {"selector": "#password", "value": "secret"}]

  • submit_selector (string,可选):提交按钮的CSS选择器(如果为None,则不提交)
  • wait_after_submit (整数,可选):提交后等待的时间(毫秒)(默认值:2000)
  • screenshot (布尔值,可选):填充后是否截图(默认值:true)

退货:

  • status (string):“成功”或“错误”
  • original_url (string):导航到的原始URL
  • current_url (string):表单提交后的当前URL
  • title (string):页面标题
  • filled_fields (array):显示哪些字段已成功填充的对象列表
  • submitted (boolean):表单是否已提交
  • screenshot (字符串,可选):如果需要,可以使用Base64编码的屏幕截图
  • screenshot_size (整数,可选):屏幕截图的大小(以字节为单位)

工具:剧作家execute.js

在网页上执行JavaScript并获得结果。

输入:

  • url (字符串,必填):要导航到的URL
  • script (string,必填):要执行的JavaScript代码(应返回JSON可序列化值)
  • wait_time (整数,可选):页面加载后的等待时间(毫秒)(默认值:1000)

退货:

  • status (string):“成功”或“错误”
  • url (string):导航到的URL
  • title (string):页面标题
  • result (any):JavaScript代码返回的结果

例子:

{
  "url": "https://example.com",
  "script": "document.querySelectorAll('a').length"
}

工具:顺序思考

为解决问题和分析提供详细的、循序渐进的思维过程。

输入:

  • thought (string):当前思考步骤
  • nextThoughtNeeded (boolean):是否需要另一个思考步骤
  • thoughtNumber (整数):当前思想数
  • totalThoughts (整数):估计所需的总想法
  • isRevision (boolean,可选):这是否改变了之前的想法
  • revisesThought (整数,可选):正在重新考虑哪个想法
  • branchFromThought (整数,可选):分支点思想数
  • branchId (字符串,可选):分支标识符
  • needsMoreThoughts (boolean,可选):如果需要更多想法

安装

先决条件

  • Python 3.11或更高版本

快速设置(推荐)

视窗

# Clone the repository
git clone https://github.com/mersdev/fast-api-mcp.git
cd fast-api-mcp

# Run the setup script (creates venv and installs dependencies)
setup.bat

Linux/Mac

# Clone the repository
git clone https://github.com/mersdev/fast-api-mcp.git
cd fast-api-mcp

# Make scripts executable
chmod +x setup.sh run.sh

# Run the setup script (creates venv and installs dependencies)
./setup.sh

手动设置

如果您更喜欢手动设置:

# Clone the repository
git clone https://github.com/mersdev/fast-api-mcp.git
cd fast-api-mcp

# Create virtual environment
python -m venv .venv

# Activate virtual environment
# On Windows:
.venv\Scripts\activate
# On Linux/Mac:
source .venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Install Playwright browsers (required for Playwright tools)
playwright install chromium

注: Playwright工具需要安装Chromium。安装脚本将提示您安装它,或者您可以运行 playwright install chromium 安装Python依赖项后手动执行。

用法

运行服务器

快速入门(推荐)

窗户:

run.bat

Linux/Mac:

./run.sh

手动启动

激活虚拟环境并运行服务器:

窗户:

.venv\Scripts\activate
python server.py

Linux/Mac:

source .venv/bin/activate
python server.py

服务器将于启动 http://0.0.0.0:10000 默认情况下。

您可以使用自定义端口 PORT 环境变量:

PORT=8000 python server.py

使用MCP检查器进行调试

  1. 确保您的虚拟环境已激活并安装了依赖项
  1. 启动检查器:
# Windows
.venv\Scripts\activate
mcp dev server.py

# Linux/Mac
source .venv/bin/activate
mcp dev server.py

然后转到: http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=...

连接到光标

在Cursor中,在聊天设置>MCP服务器下添加您的MCP服务器:

{
  "mcpServers": {
    "sequential-thinking": {
      "url": "http://localhost:10000/mcp/"
    }
  }
}

备注:您必须包括尾随 / 在URL中。

连接到克劳德桌面

将此添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "sequential-thinking": {
      "url": "http://localhost:10000/mcp/"
    }
  }
}

与n8n工作流一起使用

Playwright工具旨在与n8n无缝协作。要使用它们:

  1. 启动MCP服务器 (确保它在配置的端口上运行)
  1. 在n8n中,使用HTTP请求节点 调用MCP工具:

- 方法:POST - 网址: http://localhost:10000/mcp/ (或您的服务器URL) - 正文:包含工具名称和参数的JSON

  1. 示例n8n HTTP截图请求:
   {
     "jsonrpc": "2.0",
     "id": 1,
     "method": "tools/call",
     "params": {
       "name": "playwright_screenshot",
       "arguments": {
         "url": "https://example.com",
         "full_page": true
       }
     }
   }
  1. 示例n8n web抓取的HTTP请求:
   {
     "jsonrpc": "2.0",
     "id": 1,
     "method": "tools/call",
     "params": {
       "name": "playwright_scrape_text",
       "arguments": {
         "url": "https://example.com",
         "selector": ".content"
       }
     }
   }
  1. 处理响应 在后续的n8n节点中,屏幕截图采用base64编码,可以直接保存或处理。

常见n8n用例:

  • 自动网站监控和屏幕截图
  • 用于数据收集的网络抓取
  • 测试表单自动化
  • 从动态网站中提取内容
  • 用于高级数据提取的JavaScript执行

用例

顺序思维工具

  • 将复杂问题分解为步骤
  • 规划和设计,有修改空间
  • 可能需要修正航向的分析
  • 最初可能不清楚全部范围的问题
  • 需要在多个步骤中保持上下文的任务
  • 需要过滤掉无关信息的情况

剧作家工具

  • Web剪贴:从动态网站中提取文本或HTML内容
  • 灯光监视:捕获网站截图以进行更改检测
  • 测试:自动化UI测试和验证
  • 表单自动化:以编程方式填写和提交表单
  • 数据提取:执行自定义JavaScript以进行高级数据收集
  • n8n工作流:将浏览器自动化集成到工作流自动化中
  • API备选方案:访问没有API的web内容

环境变量

  • PORT:服务器端口(默认值:10000)
  • DISABLE_THOUGHT_LOGGING:设置为 true 禁用控制台的思想记录(默认值:false)

测试

测试回声工具

要验证回声工具是否正常工作:

# Windows
.venv\Scripts\activate
python test_echo.py

# Linux/Mac
source .venv/bin/activate
python test_echo.py

回声测试验证:

  • ✅ 简单消息回声
  • ✅ 空消息处理
  • ✅ 长消息支持
  • ✅ 特殊字符支持
  • ✅ 正确的长度计算

测试顺序思维工具

要验证顺序思维工具是否正常工作:

# Windows
.venv\Scripts\activate
python test_tool.py

# Linux/Mac
source .venv/bin/activate
python test_tool.py

测试脚本验证:

  • ✅ 工具返回正确的字典输出(不是JSON字符串)
  • ✅ 思维排序工作正常
  • ✅ 修订处理得当
  • ✅ 思想史得以维护
  • ✅ 没有Pydantic验证错误

项目结构

.
├── server.py                    # Main FastAPI MCP server (with echo & sequential_thinking tools)
├── sequential_thinking/         # Sequential thinking library
│   ├── __init__.py
│   └── lib.py                   # Core logic for thought processing
├── test_echo.py                 # Test script for the echo tool
├── test_tool.py                 # Test script for the sequential thinking tool
├── setup.bat                    # Windows setup script
├── setup.sh                     # Linux/Mac setup script
├── run.bat                      # Windows run script
├── run.sh                       # Linux/Mac run script
├── requirements.txt             # Python dependencies
├── pyproject.toml               # Project metadata
├── runtime.txt                  # Python runtime version
├── .python-version              # Python version for pyenv/uv
├── .gitignore                   # Git ignore rules
├── FIX_SUMMARY.md              # Documentation of the validation error fix
└── README.md                    # This file

运作原理

服务器使用FastMCP库通过HTTP公开多个MCP工具:

回声工具

一个简单的工具:

  1. 接受消息字符串
  2. 返回消息及其长度
  3. 可用于测试MCP连接

剧作家工具

无浏览器自动化工具:

  1. 使用单例Playwright浏览器实例以提高效率
  2. 在无头模式下运行(不需要GUI)
  3. 支持截图(base64编码)、文本/HTML提取、点击、表单填充和JavaScript执行
  4. 返回结构化JSON响应,非常适合n8n工作流
  5. 使用详细的错误消息优雅地处理错误
  6. 使用异步操作以获得更好的性能

顺序思维工具

一个复杂的工具,它:

  1. 接受带有元数据的思想输入(思想数量、总思想等)
  2. 验证输入数据
  3. 保持思想史
  4. 支持对先前想法的分支和修订
  5. 返回带有思维状态的结构化响应

发展

运行测试

# Install dev dependencies
uv pip install pytest

# Run tests (if available)
pytest

编码结构

  • 服务器.py:FastAPI服务器设置和工具定义
  • sequential_thinking/lib.py:核心顺序思维逻辑

- ThoughtData:用于思维表示的数据类 - SequentialThinkingServer:用于处理思想的主服务器类

许可证

MIT许可证

鸣谢

基于:

贡献

欢迎投稿!请随时提交拉取请求。

故障排除

服务器无法启动

  • 确保已安装Python 3.11+
  • 检查端口10000是否可用
  • 验证是否安装了所有依赖项: pip list
  • 确保虚拟环境已激活

工具未出现在AI助手中

  • 添加配置后重新启动AI助手
  • 检查服务器是否正在运行
  • 验证配置中的URL是否正确
  • 检查服务器日志是否有任何错误

验证错误:“输入应该是有效的词典”

此错误已 固定的 在最新版本中。该工具现在可以正确返回字典对象,而不是JSON字符串。

要验证修复程序,请执行以下操作:

python test_tool.py

如果您仍然看到此错误:

  1. 确保您拥有最新版本: git pull
  2. 重新启动服务器
  3. 清除AI助手中的所有缓存连接
  4. 检查一下 server.py 导入 json 并解析结果

端口已在使用中

# Change the port
PORT=8000 python server.py

支持

有关问题和疑问,请在 .

目录标签

目录标签

浏览器自动化PythonCursor顺序思维本地部署问题解决网页抓取自动化测试FastAPI

支持客户端

Cursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP