An Enhanced Fork by Maximo AI
Based on the Official
Remote-Enabled Bright Data MCP Server
Enhance AI Agents with a Standalone, Real-Time Web Data Server
🌟 概述
这个分叉的主要贡献是重构了原始的 stdio-基于应用程序的持久服务器,该服务器:
- 作为独立服务持续运行(
node server.js). - 通过安全的HTTP/SSE端点进行通信。
- 为远程连接实现灵活的MCP JSON-RPC 2.0协议。
- 智能地对其大型工具集进行分组,以保持与所有客户端的兼容性。
这使得从各种分布式AI代理和应用程序进行部署、管理和连接变得更加容易。
核心功能(来自Bright Data)
- 实时Web访问:直接从网上获取最新信息。
- Web解锁器:使用机器人检测保护浏览网站。
- 浏览器控件:可选的远程浏览器自动化功能。
- 无缝集成:适用于所有兼容MCP的AI助手。
目录
🚀 作为独立服务器运行
此服务器被设计为作为独立的Node.js服务运行。
1. 再进行
首先,确保通过运行以下命令安装了所有必需的npm包:
npm install2. 配置环境
创建一个名为的文件 .env 在项目根中。此文件将保存您的密钥。
# .env file
# Your secret API Token from brightdata.com
API_TOKEN="YOUR_BRIGHTDATA_API_TOKEN"
# A new, secure, and secret token you create to protect your public MCP server
MCP_SERVER_TOKEN="CREATE_YOUR_OWN_SECRET_TOKEN_HERE"
# The URL of your Maximo AI backend server that handles billing and usage tracking
# Required if HOSTING_MODE is 'maximo'
MAXIMO_API_URL="[https://rad.huddlz.xyz/v1/mcp/charge](https://rad.huddlz.xyz/v1/mcp/charge)"
# Set to 'self' for standalone operation (default) or 'maximo' to enable Maximo AI for billing
HOSTING_MODE="maximo"3. 启动服务器
从终端启动服务器:
node server.js如果成功,您将看到确认服务器正在运行的输出:
MCP-compliant server running on http://localhost:9000
Handshake endpoint at: GET /sse🔌 连接MCP客户端
此服务器对所有通信使用有状态的SSE(服务器发送事件)连接。客户端必须首先建立持久连接,然后执行MCP握手。
步骤1:启动SSE连接 客户做了一个 GET 请求 /sse 终点。服务器将在会话期间保持此连接打开。
# Connect to the SSE endpoint to start the session
curl -N -X GET \
http://localhost:9000/sse \
-H "Authorization: Bearer YOUR_MCP_SERVER_TOKEN"步骤2:接收会话RPC终结点 服务器在流中的第一条消息将是一个包含会话ID的唯一RPC URL。 data: /sse/message?sessionId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
步骤3:执行MCP握手和发送命令 客户端发送所有后续JSON-RPC命令(如 initialize, tools/list,以及 tools/call)通过标准 POST 对该新会话URL的请求(例如。, http://localhost:9000/sse/message?sessionId=...).
步骤4:接收结果 结果 POST 命令将作为新命令发送 message 原始事件,仍然开放 /sse 从步骤1开始。
🔧 配置
服务器是使用环境变量配置的,最好在您的 .env 文件。
API_TOKEN: (必填) 您的API密钥来自 Bright Data用户设置页面.MCP_SERVER_TOKEN: (必填) 您创建的用于保护服务器端点的秘密令牌。PORT:(可选)服务器运行的端口。默认为9000.WEB_UNLOCKER_ZONE:(可选)您的Web解锁器区域的名称。默认为mcp_unlocker.BROWSER_ZONE:(可选)浏览器控制工具的浏览器API区域的名称。默认为mcp_browser.RATE_LIMIT:(可选)使用以下格式控制API的使用limit/time+unit示例:100/1h,50/30m.MAXIMO_API_URL: (“maximo”HOSTING_MODE需要) 处理计费和使用跟踪的Maximo AI后端服务器的URL(例如。,https://rad.huddlz.xyz/v1/mcp/charge).HOSTING_MODE:(可选)设置为'self'用于独立操作(默认)或'maximo'启用Maximo AI进行计费和使用情况跟踪。
🔧 可用工具
为了确保与所有客户端的兼容性,此服务器使用“超级分组”架构。它没有公开50多个单独的工具,而是提供了一个小型、稳定的高级工具列表。
基础工具
search_engine:使用Google、Bing或Yandex执行一般网络搜索。scrape:抓取单个URL的全部内容,返回Markdown或原始HTML。
分组数据工具
专门的数据收集工具被捆绑成专题组。要使用它们,您必须提供 site 以及a task 参数。这些参数的可用选项可以在工具的描述中找到。
示例组工具:
e_commerce_datasocial_professional_databusiness_data
分组工具的使用示例
为了获得亚马逊产品的评论,人工智能会遵循以下逻辑:
- 呼叫
tools/list看看e_commerce_data工具。 - 阅读其描述,其中说for
site: 'amazon',其中一个可用tasks是'product_reviews'. - 调用工具 使用正确的参数:
{
"tool_name": "e_commerce_data",
"parameters": {
"site": "amazon",
"task": "product_reviews",
"url": "[https://www.amazon.com/dp/B08P2H5L72](https://www.amazon.com/dp/B08P2H5L72)"
}
}⚠️ 安全最佳实践
- 保护您的
MCP_SERVER_TOKEN:您的MCP_SERVER_TOKEN是服务器的密钥。保密,不要在客户端代码中公开。它只能由受信任的后端客户端使用。 - 将报废内容物视为不可信:始终将抓取的网络内容视为不受信任的数据。使用前消毒。
💰 Maximo AI计费模型(当 HOSTING_MODE=maximo)
在中运行服务器时 maximo 在托管模式下,与MCP服务器的所有交互(包括握手、工具列表和工具调用)都通过您配置的Maximo AI后端进行路由,以进行计费和使用情况跟踪。
计费模式如下:
- 免费等级:第一个 50个请求 每位用户完全免费。
- 付费请求:免费等级用尽后,每次后续请求将收取固定费用 10学分.
- 每笔信贷成本:100个学分花费0.20美元,因此1个学分花费0.002美元。
这种模式提供了一个慷慨的免费使用层,同时确保了对持续服务的公平补偿。所有API调用无论其性质如何(例如。, initialize, tools/list, tools/call),为免费层的请求计数做出贡献。
备注:In maximo 模式,个人 cost 为内部工具定义 server.js 仅供参考 _不_ 用于实际信用扣减。Maximo AI后端(MAXIMO_API_URL)是计费的唯一真实来源。
Maximo AI API密钥和用法
要使用Maximo AI计费模型,您需要一个Maximo AI API密钥。
- 获取API密钥:登录或注册 https://maximoai.co,打开用户菜单,点击“获取API密钥”,或访问直接链接: https://maximoai.co/platform.
- 跟踪API使用情况:监控您的API使用情况和信用消费 https://maximoai.co/apiusage.
购买Maximo AI积分
付费请求需要积分。
- 购买积分:参观 https://maximoai.co/buycredits 购买积分。
- 支付方式:目前只支持加密支付方式。您需要先创建并资助您的Maximo AI加密钱包。
- 创建Maximo AI加密钱包:在此处创建您的钱包: https://maximoai.co/menu。融资后,前往购买积分页面。
⚠️ 故障排除
连接错误
如果您的客户端无法连接,请检查以下内容:
- 服务器是否正在运行(
node server.js)? - 您是否使用了正确的IP地址和端口?
- 就是你
Authorization标题正确,使用正确MCP_SERVER_TOKEN? - 是否有防火墙阻止连接?
超时
一些工具可能涉及读取大量网络数据。为确保您的代理可以使用数据,请在代理的设置中设置足够高的超时时间(例如。, 180s).
