Skip to main content
Glama

Scrapy MCP Server

by ThreeFish-AI
.prompts.md8.22 kB
# 功能提示 ## 基于 Scrapy + FastMCP 构建 WebFetch MCP Server - [x] 初始化 data-extractor: 我需要一个可用于爬取网页内容的 MCP Server, 需要简单好用,页面读取能力稳定,请参考成熟技术方案,基于 Scrapy + FastMCP 帮我搭建一个这样的 MCP Server,以满足我在商业工具中长期的需求. - [x] use uv: 将项目的包管理工具更换为 uv - [x] 在 README.md 的 MCP Client 配置指引中帮我添加通过 Repo 方式和 uv 指令启动该 MCP Server 的指引 - [x] 根据项目名称、结构、GitHub Repo 地址等(git@github.com:ThreeFish-AI/scrapy-mcp.git)信息,修正 README.md 中类似 <repository-url> 的占位符、模块名、服务名、路径等 - [x] 将 Python 版本的最低要求改为 3.12,注意相关依赖的可用性 - [x] 解决 uv run data-extractor 启动异常问题 ## 新增 MCP 工具:页面转 Markdown 文档,支持批处理 - [x] 新增 MCP 工具:页面转 Markdown 文档,支持批处理;为新增的 MCP 工具添加说明文档(README.md 中);为新增的 MCP 工具添加单元测试,并补全测试说明文档;自动化测试过程;执行测试验证功能无误。 - [x] 为「页面转 Markdown 文档」过程添加 Markdown 格式化功能。并为新增功能添加说明文档(README.md 中);为新增功能添加单元测试,并补全测试说明文档;自动化测试过程;执行测试验证功能无误。 - [x] 补全和强化集成测试。 - [x] 增强 MCP 工具「页面转 Markdown 文档,支持批处理」:解决源网页中图片资源在目标 Markdown 文档中不可见的问题;为新增或变更工具编写单元测试,并补全测试说明文档(TESTING.md);为变更内容更新说明文档(README.md);更新自动化测试;执行测试验证功能无误;更新测试报告文档(TEST_RESULTS.md)。 - [x] 「页面转 Markdown 文档,支持批处理」的 MCP 工具中,输出的 Markdown 文档与原 Web 页面的段落格式不一致,很难阅读。修正这个问题使输出的 Markdown 文档格式与原 Web 页面段落格式一致。 - [x] 转换 https://blog.langchain.com/context-engineering-for-agents/ 所得的 Markdown 文档内容依旧是一连串没有按原 Web 页面分段和分句的文本,帮我针对这个效果优化「页面转 Markdown 文档,支持批处理」。 ## 新增 MCP 工具:PDF 文档转 Markdown 文档,支持批处理,PDF 可以是 URL - [x] 新增 MCP 工具:「PDF 文档转 Markdown 文档,支持批处理,PDF 可以是 URL」;为新增的 MCP 工具更新说明文档(README.md 中);为新增的 MCP 工具添加单元测试,并补全测试说明文档;自动化测试过程;执行测试验证功能无误;更新测试报告。 ## 新增 MCP 工具:图片文字识别,图片可以是 URL - [ ] 新增 MCP 工具:「图片文字识别,图片可以是 URL」;为新增的 MCP 工具更新说明文档(README.md 中);为新增的 MCP 工具添加单元测试,并补全测试说明文档;自动化测试过程;执行测试验证功能无误;更新测试报告。 ## 新增 MCP transport 支持:StreamableHTTP - [ ] 新增 MCP transport 支持:StreamableHTTP,令该 MCP Server 可以部署到云端被远程调用;为新增的 transport 支持更新说明文档(README.md 中);为新增的 transport 支持添加单元测试,并补全测试说明文档;自动化测试过程;执行测试验证功能无误;更新测试报告。 ## MCP Server 参数说明 - [x] 优化所有 MCP Tools 参数的说明,为每个参数提供明晰的说明,必要时以列举可选项的方式示例说明。同步更新 README.md 和 TESTING.md 文档中的相关模块。 - [x] 将所有 @app.tool() 标记的 MCP 工具参数的说明更新和补齐,为每个参数提供明晰的说明,必要时以列举可选项的方式示例说明。同步更新 README.md 和 TESTING.md 文档中的相关模块。 - [x] 使用 BaseModel 子类(比如:FormRequest)作为 MCP Server Tools 的出入参类型,用于更好的约束和注解 Tool 方法的出入参参数。 - [x] 将 BaseModel 子类方式实现的 MCP Server Tools(14 个)的出入参全部改为 scrape_webpage 那样,通过 Annotated[*, Field(...)] 方式来实现参数的约束和注解。注意需要为每个参数提供明晰的说明,必要时以列举可选项的方式示例说明。注意 Output Schemas 也需要提供清晰和可被 MCP Client 识别的说明。同步更新测试用例、README.md 和 TESTING.md 文档中的相关模块。自行执行测试以验证正确性。 ## 使用 markitdown 替代 markdownify - [ ] 使用 markitdown(https://github.com/microsoft/markitdown) 全面替代 markdownify,实现所有 Markdown 相关的功能,并更新相应的测试用例,使所有 14 个 Tools 的功能更稳定强大。注意尽可能多的阅读 markitdown 的官方使用说明,依据官方指引进行使用。必要时,还可以使用备选方案:[MinerU](https://github.com/opendatalab/MinerU)、[docling](https://github.com/docling-project/docling)、[marker](https://github.com/datalab-to/marker)。 # 测试提示 - [x] 根据项目整体所有功能,同步更新 `tests/` 下所有测试用例、测试流程、测试说明、测试报告。使测试用例与当前的项目功能相匹配;使测试用例覆盖度更完整;使测试具备例行化操作性;使测试说明更具阅读性和指引性;是测试报告更直观和对比性(比如提供版本管理,以便做版本间对比)。 - [x] 执行测试存在异常,帮我分析并修复问题,可能是功能问题,也可能是测试用例问题: `uv run pytest` 异常信息: [Pasted text #3 +22 lines] 修改完成后,记得自行测试验证是否真正修复了问题。 ## 在 MCP Client 中调用 scrape_webpage 遇到如下异常,帮我分析并修复该问题: data-extractor - scrape_webpage (MCP)(url: "https://demo.nextadmin.co/", method: "selenium", extract_config: "{\n \"layout\": {\n \"selector\": \"body, main, nav, header, sidebar, footer, .sidebar, .header, .navigation, .main-content, [role=navigation], [role=main], [role=banner], [role=contentinfo]\",\n \"multiple\": true,\n \"attr\": \"outerHTML\"\n },\n \"colors\": {\n \"selector\": \"[class*=bg-], [class*=text-], [style*=background], [style*=color]\",\n \"multiple\": true,\n \"attr\": \"class\"\n },\n \"navigation\": {\n \"selector\": \"nav, .nav, .navigation, .sidebar, .menu, [role=navigation]\",\n \"multiple\": true,\n \"attr\": \"outerHTML\"\n }\n}") ⎿ Error: Input validation error: '{\n "layout": {\n "selector": "body, main, nav, header, sidebar, footer, .sidebar, .header, .navigation, .main-content, [role=navigation], [role=main], [role=banner], [role=contentinfo]",\n "multiple": true,\n "attr": "outerHTML"\n },\n "colors": {\n "selector": "[class*=bg-], [class*=text-], [style*=background], [style*=color]",\n "multiple": true,\n "attr": "class"\n },\n "navigation": {\n "selector": "nav, .nav, .navigation, .sidebar, .menu, [role=navigation]",\n "multiple": true,\n "attr": "outerHTML"\n }\n}' is not valid under any of the given schemas --- 功能更新后,注意需要联动文档 - 功能说明:README.md - 单元测试:tests 下的测试用例 - 自动化测试 - 测试说明(TESTING.md) - 测试报告(TEST_RESULTS.md) - 内容变更说明(README.md) - CHANGELOG.md ---

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ThreeFish-AI/scrapy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server