使用说明
MyEnhancedGCSMP服务器
A. fastmcp 该服务器提供了一套全面的工具来管理谷歌云存储(GCS)。该服务器允许您通过简单的HTTP API与GCS桶和对象进行交互。
特性
该服务器提供了一系列管理地面军事系统资源的工具:
- 水桶管理:创建、删除、列出和获取GCS存储桶的元数据。
- 对象管理:上传、下载、删除、列出、重命名和复制对象(blob)。
- 元数据:检索bucket和对象的详细元数据。
- 安全:为对象访问生成临时、安全的签名URL。
先决条件
- Python 3.8+
- 紫外线 已安装(
pip install uv). - 谷歌云平台(GCP)项目 云存储API 启用。
- 在您的本地计算机上安装并配置了Google Cloud SDK。
设置和安装
-
克隆存储库
git clone <your-repository-url> cd gcs-mcp-server -
创建虚拟环境并安装依赖项
uv可以一次性处理这两个步骤。它将在.venv目录并安装来自的所有软件包requirements.txt.uv venv uv pip install -r requirements.txt
认证
要允许服务器访问您的Google Cloud资源,您需要提供应用程序默认凭据。对于当地发展来说,最简单的方法就是 gcloud CLI:
gcloud auth application-default login
此命令将打开一个浏览器窗口,供您登录并授予必要的权限。
运行服务器
在开发过程中运行服务器的最佳方式是使用 fastmcp run 命令。它启动您的服务器并启动 MCP检查员,一个用于交互式测试工具的web UI。
fastmcp run main.py --transport="http" --port="8080"
fastmcp dev main.py --ui-port="9080" --server-port="5080"
您应该看到输出,确认服务器正在运行并列出可用工具:
================================================================================
MyEnhancedGCSMCPServer is running on http://127.0.0.1:8080/mcp
The following tools are available:
- greet(name: str) -> str
- list_gcs_buckets() -> list[str]
- ... (and all other tools)
================================================================================
所有工具端点都可以在 /mcp/ 路径。您可以使用任何HTTP客户端与它们交互,例如 curl.
您可以使用 mcp-inspector 命令行实用程序,与 fastmcp。它提供了一种比使用更方便的调用工具的方法 curl.
这 uv run 命令确保 mcp-inspector 在项目的虚拟环境中执行。
API参考:可用工具
下面是可用工具及其参数的完整列表。
| 工具 | 说明 | 参数 |
|---|---|---|
greet |
致以友好的问候。 | name: str |
list_gcs_buckets |
列出所有GCS存储桶。 | (无) |
create_bucket |
创建新的GCS存储桶。 | bucket_name: str, location: str = "US" |
delete_bucket |
删除GCS存储桶。 | bucket_name: str |
list_objects |
列出bucket中的所有对象。 | bucket_name: str |
upload_blob |
将文件上传到bucket。 | bucket_name: str, source_file_name: str, destination_blob_name: str |
download_blob |
从桶中下载一个blob。 | bucket_name: str, blob_name: str, destination_file_name: str |
delete_blob |
从bucket中删除blob。 | bucket_name: str, blob_name: str |
get_bucket_metadata |
检索存储桶的元数据。 | bucket_name: str |
get_blob_metadata |
检索对象的元数据。 | bucket_name: str, blob_name: str |
generate_signed_url |
生成临时签名URL | bucket_name: str, blob_name: str, expiration_minutes: int = 15 |
rename_blob |
重命名/移动对象。 | bucket_name: str, blob_name: str, new_name: str |
copy_blob |
将一个对象复制到另一个bucket。 | source_bucket_name: str, blob_name: str, destination_bucket_name: str, destination_blob_name: str |
set_bucket_cors |
设置bucket的CORS配置。 | bucket_name: str, cors_rules: list[dict] |
例子:
from google.api_core import exceptions
@mcp.tool
def delete_bucket(bucket_name: str) -> str:
"""Deletes a GCS bucket"""
try:
bucket = storage_client.bucket(bucket_name)
bucket.delete(force=True)
return f"Bucket '{bucket_name}' deleted successfully."
except exceptions.NotFound:
return f"Error: Bucket '{bucket_name}' not found."
except exceptions.Forbidden as e:
return f"Error: Permission denied for bucket '{bucket_name}'. Details: {e}"
配置
硬编码默认位置等值("US")不灵活。这些可以移动到环境变量或配置文件中,以便更好地管理。
贡献
欢迎投稿!请随时提交对错误修复、新功能或文档改进的拉取请求。