PhoneLCDParts MCP服务器
该项目为模型上下文协议(MCP)服务器提供了一个工具,用于从中抓取产品搜索结果 phonelcdparts.com.
目的
主要工具, scrape_phonelcdparts,允许MCP兼容客户端(如LLM代理)查询 phonelcdparts.com 基于搜索词的产品网站。它返回包含产品名称、价格、直接URL和图像URL的结构化JSON数据。
这使得各种应用程序能够自动检索产品信息,例如价格跟踪、数据分析或集成到更大的人工智能驱动的工作流程中。
先决条件
- Python 3.12或更高版本。
uv(用于环境和包装管理)。- 有效的Firecrawl API密钥(来自 firecrawl.dev).
设置
- 克隆存储库(如果适用)或导航到项目目录:
cd path/to/phonelcdpart-mcp- 使用创建和激活虚拟环境
uv:
uv venv
source .venv/bin/activate- 配置Firecrawl API密钥:
创建一个名为的文件 .env 在 phonelcdpart-mcp 项目根目录(即。, phonelcdpart-mcp/.env). 将您的Firecrawl API密钥添加到此文件:
FIRECRAWL_API_KEY="YOUR_ACTUAL_FIRECRAWL_API_KEY_HERE"应用程序使用 python-dotenv 库在运行时加载此密钥。
- 使用安装依赖项
uv:
uv pip install .这将安装中列出的所有依赖项 pyproject.toml,包括 python-dotenv.
运行MCP服务器
您有几个选项可以运行服务器:
- 直接使用Python(用于简单开发):
python app.py- 使用Uvicorn(建议用于开发,提供自动重新加载):
确保 uvicorn 已安装(它位于 pyproject.toml).
uvicorn app:mcp --reload --host 0.0.0.0 --port 8000(The app:mcp 指的是 mcp 实例 FastMCP 在你的 app.py 文件。)
- 使用已安装的脚本(如果
uv pip install .成功):
成功之后 uv pip install .,中定义的脚本 pyproject.toml 应提供:
start-mcp这通常会使用 mcp.run() 方法。
服务器通常会启动 http://127.0.0.1:8000 或 http://0.0.0.0:8000.
使用工具
服务器运行后,您可以使用任何兼容MCP的客户端与之交互。
- 工具名称:
scrape_phonelcdparts - 描述(来自docstring): 从以下位置删除产品信息(名称、价格、URL、图像URL)
phonelcdparts.com对于给定的搜索查询。 - 论点:
- search_query (string):产品搜索词(例如,“iphone 15 pro max lcd”)。
- 退货: 词典列表,其中每本词典包含:
- name (字符串) - price (字符串) - url (字符串) - image_url (字符串)
示例调用(概念性,使用Python客户端):
# (This is a conceptual example of how a client might call the tool)
# import asyncio
# from fastmcp import Client
#
# async def main():
# # Ensure the server_url matches where your MCP server is running
# server_url = "http://127.0.0.1:8000/sse"
# async with Client(server_url) as client:
# try:
# result = await client.call_tool(
# "scrape_phonelcdparts",
# {"search_query": "iphone 14 screen"}
# )
# if result and result.data:
# print("Tool Result:")
# for item in result.data:
# print(item)
# else:
# print("No data returned or tool call failed.")
# except Exception as e:
# print(f"Error calling tool: {e}")
#
# if __name__ == "__main__":
# asyncio.run(main())此客户端代码将连接到正在运行的MCP服务器并调用 scrape_phonelcdparts 使用指定的搜索查询工具,然后打印结构化的JSON结果。
