MCP代理服务

用于安全访问部署在Google Cloud Run上的Model Context Protocol (MCP)服务器的代理服务,处理认证并代理请求到适当的Cloud Run服务。

  • by JasperHG90
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jasperhg90/cloud_run_mcp_proxy

使用说明

云运行MCP代理

访问GCP Cloud Run上运行的远程MCP服务器的代理。

该项目提供了一种安全访问部署在Google Cloud Run上的模型上下文协议(MCP)服务器的方法。它处理身份验证并将请求代理到相应的Cloud Run服务。

使用此MCP服务器

您可以在MCP服务器定义中使用以下条目

{
    "mcpServers": {
        "mcp-contract-registry": {
        "disabled": false,
        "timeout": 60,
        "type": "stdio",
        "command": "docker",
        "args": [
            "run",
            "-i",
            "--rm",
            "-e",
            "CLOUD_RUN_MCP_SERVER_URL",
            "-e",
            "GOOGLE_APPLICATION_CREDENTIALS",
            "--mount",
            "type=bind,source=/home/vscode/.config/gcloud,target=/app/.config/gcloud,ro",
            "jhginn/cloud-run-mcp-proxy:latest" // Or use a date tag from https://hub.docker.com/repository/docker/jhginn/cloud-run-mcp-proxy/general
        ],
        "env": {
            "CLOUD_RUN_MCP_SERVER_URL": "https://www.my.app.url.com",
            "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/.config/gcloud/application_default_credentials.json"
        }
        }
    }
}

确保:

  • 在主机设备上登录gcloud
  • 使用正确的GOOGLE_APPLICATION_CREDENTIALS路径。通常,这是您的主目录。

这仅适用于使用 Streamable HTTP transport,并使用IAM进行保护。

开发人员入门指南

本指南将帮助您为当地发展建立项目。

先决条件

设置

  1. 克隆存储库:

    git clone <repository-url>
    cd cloud_run_mcp_proxy
    
  2. 安装依赖关系和预提交钩子: 此项目使用 uv 用于包管理和 just 作为一名命令执行者。

    just setup
    

    此命令是的别名 just install (运行 uv sync --all-groups)以及 just pre_commit_setup (运行 uv run pre-commit install).

通用开发命令

这 justfile 在项目的根目录中定义了几个有用的命令:

  • just install:安装/更新Python依赖项。
  • just pre_commit_setup:安装预提交挂钩。
  • just setup (或 just s):一个方便的别名来运行这两个 install 和 pre_commit_setup.
  • just pre_commit (或 just p):对所有文件运行预提交检查。
  • just test (或 just t):使用运行测试 pytest.
  • just build:为代理构建Docker容器。

运行代理

可以使用中定义的入口点脚本运行代理 pyproject.toml:

cloud_run_mcp_proxy

(随着项目的发展,将在此处添加有关配置和部署的更多详细信息。)

项目结构

  • src/cloud_run_mcp_proxy/:包含代理的主要源代码。
    • proxy.py:核心代理逻辑。
    • auth.py:处理与Google Cloud的身份验证。
  • tests/:包含单元和集成测试。
  • Dockerfile:定义用于部署代理的Docker镜像。
  • justfile:包含常用的开发命令。
  • pyproject.toml:定义项目元数据、依赖关系和生成系统配置。