项目简介
GetGather是一个容器化的MCP服务器,旨在作为大型语言模型(LLM)的后端,使其能够安全、高效地与用户数据和外部网络服务进行交互。它通过模拟浏览器行为来执行认证流程、提取信息或在各种网站上执行特定操作,从而扩展了LLM的能力。
主要功能点
- 多网站集成: 支持Goodreads、Astro、Tokopedia、Shopee、Amazon、UberEats、Audible、Alltrails、Amain、BBC、CNN、Gofood、Kindle、Zillow等多个知名网站的集成,并可通过配置轻松扩展。
- 自动化浏览器交互: 利用Playwright等浏览器自动化工具,实现网站的登录、数据抓取、表单填写、点击等复杂操作。
- 可定制的流程: 通过YAML配置文件定义认证(Auth)和数据提取(Extract)流程,支持多步骤、动态表单和错误处理。
- 工具调用接口: 将网站交互能力封装为LLM可调用的工具(Tools),通过MCP协议标准提供给客户端。
- 会话管理: 管理浏览器会话和用户配置文件,确保认证状态的持久性和隔离性。
- 可部署性: 提供Docker容器镜像,方便快速部署和运行。
安装步骤
- 安装Docker: 确保您的系统已安装Docker或Podman。
- 运行容器: 打开终端或命令行,执行以下命令来启动GetGather服务器:
这将在本地的8000端口启动GetGather服务。docker run -p 8000:8000 ghcr.io/mcp-getgather/mcp-getgather - 验证服务启动: 容器启动后,您可以在浏览器中访问 'http://localhost:8000/docs' 查看API文档。 要实时查看容器内的浏览器桌面,可以访问 'http://localhost:8000/live'。
服务器配置
GetGather作为MCP服务器,需要通过MCP客户端进行配置才能连接和使用。以下是MCP客户端连接GetGather服务器的典型配置信息:
{ "mcpServers": { "getgather": { "url": "http://127.0.0.1:8000/mcp" } } }
- 'getgather': 这是您为MCP服务器指定的一个名称,可以在客户端中随意命名,但建议使用能识别其功能的名称,如“getgather”。
- 'url': 指向GetGather服务器的MCP接口地址。默认情况下,如果GetGather容器在本地8000端口运行,且您没有更改MCP服务的默认路径,则此URL应为 'http://127.0.0.1:8000/mcp'。此地址用于基于HTTP/WebSocket的JSON-RPC通信。
对于某些特定的MCP客户端(如Claude Desktop),可能需要通过一个代理命令来建立连接:
{ "mcpServers": { "getgather": { "command": "npx", "args": ["mcp-remote", "http://127.0.0.1:8000/mcp", "--allow-http"] } } }
- 'command': 客户端用于启动MCP连接的外部命令。此处示例为'npx',通常用于执行Node.js包。
- 'args': 传递给'command'的参数列表。此示例中,'mcp-remote'是一个用于连接远程MCP服务器的工具,'http://127.0.0.1:8000/mcp'是远程MCP服务器的URL,'--allow-http'是允许非HTTPS连接的标志。
基本使用方法
一旦MCP客户端配置并连接到GetGather服务器,LLM即可通过调用GetGather暴露的工具来与网站进行交互。例如,要获取Goodreads上的图书列表,LLM可以调用'goodreads_get_book_list'工具。要搜索Tokopedia上的商品,LLM可以调用'tokopedia_search_product'工具。
例如,在支持MCP的LLM客户端中,LLM可能会自动识别并显示GetGather提供的工具列表。用户可以通过自然语言向LLM提问或发出指令,LLM将根据GetGather提供的工具能力,自动选择并调用相应的工具来完成任务,如“帮我查一下Tokopedia上iPhone 15的价格”或者“获取我在亚马逊上的订单历史”。
信息
分类
网页与API