内容
# mcp-cloud
[](https://badge.fury.io/py/mcp-cloud)
[](https://opensource.org/licenses/MIT)
用于公共云环境(如 AWS、Azure 等)的模型上下文协议服务器。
mcp-cloud 是一个 Python MCP 服务器:
- 连接到公共云以访问资源,如 S3 Buckets、Azure Blobs
- 提供执行某些操作(如 CRUD)在资源上的工具。
注意:这只是一个技术演示,仅用于测试数据/账户在云中或与本地 LLM 模型(如 llama)一起使用。
## 概述
mcp-cloud 是一个 Python 服务器实现的模型上下文协议(MCP),专门为公共云环境设计。它使 AI 模型能够无缝连接到各种云资源和服务。
# mcp-cloud
公共云的模型上下文协议服务器
mcp-cloud 旨在为公共云(如 AWS、Azure 等)运行 MCP 服务器。
# 模型上下文协议
MCP 协议是由 Anthropic 创建的,用于 GenAI 代理。
MCP 是一个开放协议,标准化了应用程序如何向 LLM 提供上下文。
可以将 MCP 想象成 AI 应用程序的 USB-C 端口。MCP 提供了一种标准化的方式,将 AI 模型连接到不同的数据源和工具。
请参考 Anthropic 的 [MCP 协议介绍](https://modelcontextprotocol.io/introduction)。
请参考 [MCP 用户快速入门指南](https://modelcontextprotocol.io/quickstart/user) 以了解如何使用 MCP。
# 概念
MCP 服务器可以提供三种主要类型的功能:
资源:客户端可以读取的类文件数据(如 API 响应或文件内容)
工具:可以由 LLM 调用的函数(需用户批准)
提示:帮助用户完成特定任务的预写模板
MCP 服务器的初始版本将专注于公共云中可用的资源,例如 S3 Buckets、Azure。
MCP 原语
MCP 协议定义了服务器可以实现的三个核心原语:
| 原语 | 控制 | 描述 | 示例用法 |
|-----------|---------------|----------------------------------------|------------------------------|
| 提示 | 用户控制 | 由用户选择调用的交互式模板 | 斜杠命令、菜单选项 |
| 资源 | 应用程序控制 | 由客户端应用程序管理的上下文数据 | 文件内容、API 响应 |
| 工具 | 模型控制 | 向 LLM 暴露以执行操作的函数 | API 调用、数据更新 |
运行 MCP 服务器
```bash
python src/main.py
```
或
```bash
uv run --with mcp mcp run main.py
```
使用 mcp 命令和 mcp inspector
```bash
mcp install main.py
mcp dev main.py
```
# 特性
0.1
[x] 云存储
[ ] 云计算
.. 即将推出 ..
# 安装步骤
TODO: 更新
# 使用步骤
TODO:
## 环境设置
要设置您的云存储凭据,可以使用提供的环境设置脚本:
```bash
python src/set_env.py
```
这将:
1. 提示您输入云服务提供商的凭据
2. 创建一个包含您设置的 `.env` 文件
3. 验证环境变量是否正确设置
脚本将询问:
- 云服务提供商(aws/azure/google)
- 访问密钥
- 秘密密钥
- 区域(默认为 us-east-1)
或者,您可以手动创建一个 `.env` 文件,包含以下变量:
```
CLOUD_PROVIDER=your_provider
CLOUD_ACCESS_KEY=your_access_key
CLOUD_SECRET_KEY=your_secret_key
CLOUD_REGION=your_region
```
## 在系统中加载环境变量
### Unix/Linux/MacOS
使用 `source` 命令:
```bash
source .env
```
或使用 `export` 命令:
```bash
export $(cat .env | xargs)
```
### Windows
命令提示符:
```cmd
for /f "tokens=*" %a in (.env) do set %a
```
PowerShell:
```powershell
Get-Content .env | ForEach-Object {
if ($_ -match '^([^=]+)=(.*)$') {
$name = $matches[1]
$value = $matches[2]
Set-Item -Path "Env:$name" -Value $value
}
}
```
### 验证环境变量
- Unix/Linux/MacOS: `printenv | grep CLOUD_`
- Windows: `set | findstr CLOUD_`
### 重要说明
1. .env 文件应位于您的项目根目录
2. 每个变量应在新的一行
3. 等号周围不得有空格
4. 值周围不得有引号,除非它们是值的一部分
示例 .env 文件格式:
```
CLOUD_PROVIDER=aws
CLOUD_ACCESS_KEY=your_access_key
CLOUD_SECRET_KEY=your_secret_key
CLOUD_REGION=us-east-1
```
## 测试
MCP Cloud Server 包含全面的测试选项,以确保一切正常工作。
### 快速开始测试
```bash
# 运行单元测试
python src/test_mcp_server.py
# 使用 MCP Inspect 测试
python src/main.py # 在一个终端中
mcp-inspect info --url http://localhost:7008 # 在另一个终端中
```
有关详细的测试说明,包括如何使用 Claude Desktop 进行测试,请参见 [TESTING.md](TESTING.md)。
# 使用 Claude Desktop 进行测试
```json
{
"mcpServers": {
"mcp-cloud": {
"command": "<path to uv>/uv",
"args": [
"--directory",
"<path_to_mcp_cloud>/mcp-cloud/src",
"run",
"--with",
"mcp",
"mcp",
"run",
"main.py"
],
"env": {
"CLOUD_PROVIDER": "aws",
"CLOUD_ACCESS_KEY": "*******",
"CLOUD_SECRET_KEY": "*******",
"CLOUD_REGION": "us-east-1"
}
}
}
}
```