使用说明
项目简介
本项目 'demo_mcp_on_amazon_bedrock' 是一个演示如何将 Model Context Protocol (MCP) 集成到基于 Amazon Bedrock 大模型的 ChatBot 应用中的示例。它旨在展示如何通过 MCP 协议增强 ChatBot 的能力,使其能够访问外部资源和工具,从而扩展其应用场景。该项目兼容 Anthropic 官方 MCP 标准,并提供了服务端 API 封装,方便集成到各种 Chat 客户端。
主要功能点
- Bedrock 大模型集成: 支持 Amazon Nova Pro 和 Claude Sonnet 3.5 模型。
- MCP 协议支持: 完全兼容 Anthropic 官方 MCP 标准,可直接使用社区丰富的 MCP 服务器。
- 服务端 MCP 能力: 将 MCP 能力封装在服务端 API 中,实现 MCP 能力与客户端的解耦,方便集成到各种 Chat 客户端。
- ChatBot UI 演示: 提供 Web UI 界面,方便用户体验和管理 MCP 服务器。
- 预置 MCP 服务器: 内置本地文件系统、SQLite 数据库等 MCP 服务器,开箱即用。
- 灵活添加 MCP 服务器: 支持通过配置文件或 Web UI 动态添加和配置 MCP 服务器,例如 Web Search (Exa) 和 Browser Automation 等。
- 多种 Demo 场景: 提供 Browser 浏览器操作、Deep Research 深度研究、Amazon Knowledge Base 知识库等多种 Demo 场景,展示 MCP 的强大能力。
安装步骤
- 安装 NodeJS: 访问 NodeJS 官网 下载并安装 NodeJS (推荐 v22.12.0 版本)。
- 安装 Python: 访问 Python 官网 下载并安装 Python。
- 安装 uv: 参考 uv 官方指南 安装 uv 包管理工具 (推荐 v0.5.11 版本)。
- 下载仓库代码: 使用 'git clone https://github.com/aws-samples/demo_mcp_on_amazon_bedrock' 命令克隆仓库到本地。
- 创建并激活虚拟环境: 进入项目目录,运行 'uv sync' 创建 Python 虚拟环境,然后运行 'source .venv/bin/activate' 激活虚拟环境。
服务器配置
-
配置 .env 文件: 复制 'env_dev' 文件并重命名为 '.env',根据注释修改以下配置项:
- 'AWS_ACCESS_KEY_ID': 您的 AWS Access Key ID。
- 'AWS_SECRET_ACCESS_KEY': 您的 AWS Secret Access Key。
- 'AWS_REGION': 您的 AWS 区域 (例如 'us-east-1')。
- 'LOG_DIR': 日志文件目录 (例如 './logs')。
- 'CHATBOT_SERVICE_PORT': ChatBot UI 服务端口 (例如 '8502')。
- 'MCP_SERVICE_HOST': MCP 服务 Host (通常为 '127.0.0.1')。
- 'MCP_SERVICE_PORT': Bedrock MCP 服务端口 (例如 '7002')。
- 'API_KEY': API 访问密钥 (用于 Chat API 鉴权)。
-
配置 conf/config.json 文件: 该文件用于配置要启动的 MCP 服务器。您可以根据需要添加或修改 MCP 服务器的参数。
MCP 服务器配置参数说明 (JSON 格式):
{ "mcpServers": { "<server_id>": { // 服务器 ID (例如 db_sqlite, exa, mcp-browser 等,用于唯一标识和引用) "command": "<command>", // 启动服务器的命令 (例如 "uvx", "npx", "node", "python", "docker") "args": ["<arg1>", "<arg2>", ...], // 命令参数 (例如 ["mcp-server-sqlite", "--db-path", "./tmp/test.db"]) "env": { // 环境变量 (可选) "<env_key>": "<env_value>", ... }, "description": "<description>", // 服务器描述 (可选,用于 UI 显示) "status": <status> // 服务器状态 (1 表示启用,0 表示禁用,可选) }, ... // 可以配置多个 MCP 服务器 } }预置 MCP 服务器配置示例 (conf/config.json):
{ "mcpServers": { "db_sqlite": { "command": "uvx", "args": ["mcp-server-sqlite", "--db-path", "./tmp/test.db"], "env": {}, "description": "DB Sqlite CRUD - MCP Server", "status": 1 }, "local_file_system": { "command": "uvx", "args": ["mcp-server-fs", "--allow-path", "./"], "env": {}, "description": "Local File System CRUD - MCP Server", "status": 1 }, "cot": { "command": "uvx", "args": ["mcp-server-sequentialthinking"], "env": {}, "description": "Sequential Thinking - MCP Server", "status": 1 } } }添加 Exa Web Search MCP Server 配置示例 (conf/config.json):
{ "mcpServers": { "exa": { "command": "npx", "args": ["-y", "exa-mcp-server"], "env": { "EXA_API_KEY": "<your-exa-api-key>" // 替换为您的 Exa API Key }, "description": "Exa Web Search - MCP Server", "status": 1 } } }注意: 请将 '<your-exa-api-key>' 替换为您在 Exa 官网注册并获取的 API Key。
基本使用方法
- 启动服务: 运行 'bash start_all.sh' 命令启动 Chat 接口服务和 ChatBot UI 服务。
- 查看日志: 通过 'logs/start_mcp.log' 和 'logs/start_chatbot.log' 文件查看服务启动日志,确保没有报错。
- 访问 Chat API: 访问 'http://127.0.0.1:7002/docs#/' 查看 Chat API 接口文档,可以使用 curl 命令或任何 HTTP 客户端进行测试。 例如:
curl http://127.0.0.1:7002/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <your-api-key>" # 替换为您的 API_KEY -d '{ "model": "amazon.nova-lite-v1:0", "messages": [ { "role": "user", "content": "show all of tables in db" } ] }' - 访问 ChatBot UI: 在浏览器中打开 http://localhost:8502/,即可体验 MCP 增强的 Bedrock 大模型 ChatBot 功能。
- 体验 Demo 场景: 在 ChatBot UI 中,您可以尝试以下问题,体验预置的 MCP Server 功能:
show all of tables in the db how many rows in that table show all of rows in that table save those rows record into a file, filename is rows.txt list all of files in the allowed directory read the content of rows.txt file - 添加更多 MCP Server: 您可以通过编辑 'conf/config.json' 文件或在 ChatBot UI 界面中添加更多 MCP Server,例如 Web Search, Browser Automation 等,以扩展 ChatBot 的能力。
- 停止服务: 运行 'bash stop_all.sh' 命令停止所有服务。
信息
分类
AI与计算