内容
# Amazon Bedrock 对话 API MCP Demo
这是一个使用 Amazon Bedrock 对话 API 的 Anthropic 开源 MCP 的演示。这个组合允许 MCP 与对话 API 支持的许多模型一起使用。
## 前置条件
- Python 3.8+
- 具有 Bedrock 访问权限的 AWS 账户
- 本地配置的 AWS 凭证
- SQLite 数据库(按照 [MCP 快速入门指南](https://modelcontextprotocol.io/quickstart) 中的说明进行设置。)
## 安装
1. 克隆仓库:
```bash
git clone <仓库网址>
cd <项目目录>
```
2. 创建并激活虚拟环境:
```bash
python -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
```
3. 安装所需包:
```bash
pip install -r requirements.txt
```
## 配置
1. 确保在 `~/.aws/credentials` 中或通过环境变量正确配置 AWS 凭证:
```bash
export AWS_ACCESS_KEY_ID=您的访问密钥
export AWS_SECRET_ACCESS_KEY=您的密钥
export AWS_DEFAULT_REGION=us-west-2
```
2. 默认配置使用:
- 模型:anthropic.claude-3-5-sonnet-20241022-v2:0
- 区域:us-west-2
- SQLite 数据库路径:~/test.db
## 项目结构
- `app.py`: 主要应用程序入口和交互循环
- `converse_agent.py`: 与 Bedrock 集成的核心代理实现
- `converse_tools.py`: 工具管理和执行系统
- `mcp_client.py`: MCP(模型控制协议)客户端实现
## 使用
1. 启动应用程序:
```bash
python app.py
```
2. 在提示时输入提示。代理将:
- 处理您的输入
- 执行必要的工具
- 提供响应
- 维护对话上下文
3. 通过输入 'quit'、'exit'、'q' 或使用 Ctrl+C 退出应用程序
## 关键组件
### 对话代理
主要代理类:
- 管理对话流程
- 与 Bedrock 集成
- 处理工具执行
- 处理响应
参考:
```python:converse_agent.py
startLine: 3
endLine: 109
```
### 对话工具管理器
管理工具注册和执行:
- 带有模式的工具注册
- 名称清理
- 工具执行处理
参考:
```python:converse_tools.py
startLine: 5
endLine: 76
```
### MCP 客户端
处理与 MCP 服务器的通信:
- 工具发现
- 工具执行
- 服务器连接管理
参考:
```python:mcp_client.py
startLine: 6
endLine: 48
```
## 安全
有关更多信息,请参见 [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications)。
## 许可证
本库在 MIT-0 许可证下获得许可。有关详细信息,请参见 LICENSE 文件。