Token导航 LogoToken导航TokenDH.com
MCP Grpc Enterprise Gateway logo
AI代理stdio官方级别未说明来源级核验

MCP Grpc Enterprise Gateway

MCP Server

该PoC项目验证了如何通过gRPC原生实现模型上下文协议(MCP),支持实时流式工具交互,并采用mTLS和JWT实现企业级安全。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
Python企业安全AI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

gustavo-olmedo

提供方

gustavo-olmedo

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv .venv

详细介绍

gRPC上的MCP(企业PoC)

此存储库是 概念验证(PoC) 这表明 模型上下文协议(MCP) 可以实施 直接通过gRPC 作为原生传输,遵循Google Cloud博客文章中描述的想法:

https://cloud.google.com/blog/products/networking/grpc-as-a-native-transport-for-mcp

这个项目的目标是 使用运行代码验证博客文章声明, 表明MCP可以是:

  • 无需JSON-RPC或转码网关即可实现
  • 基于现有的企业gRPC基础架构构建
  • 使用安全 mTLS+JWT(零信任)
  • 用于 实时流媒体代理-工具交互

______________________________________________________________________

此PoC从博客文章中验证了什么

该博客认为,gRPC可以用作 本地MCP传输 而不是 JSON-RPC。本项目通过演示验证了这一点:

  • 本机gRPC MCP服务\

MCP概念(ListTools, CallTool, Chat)直接实施 作为使用协议缓冲区的gRPC RPC RPC。

  • 双向流媒体\

Chat RPC使用gRPC双向流来支持实时, 增量代理-工具工作流,很难用 JSON-RPC。

  • 企业级安全

- 弹药库鱼雷发射系统 用于传输级别标识(机器对机器信任) - JWT身份验证 用于应用程序级授权 - 传输安全和应用程序逻辑之间的明确分离

  • 无网关或协议转换\

没有JSON-RPC层,没有转码代理,也没有协议适配器。 MCP语义直接在gRPC上表达。

______________________________________________________________________

高层体系结构

┌─────────────┐        gRPC       ┌────────────────┐
│ MCP Client  │  ───────────────▶ │  MCP Server    │
│ (Agent)     │ ◀───────────────  │  (Tools)       │
└─────────────┘   Streaming       └────────────────┘
  • 客户端 表示AI代理(CLI、LLM代理或服务)。
  • 服务器 通过MCP语义公开企业工具。
  • 通信结束 支持流媒体的gRPC.

______________________________________________________________________

身份验证和安全模型

该项目遵循 零信任 通过分层控制实现安全方法。

传输层:mTLS

  • 客户端和服务器都使用证书进行身份验证。
  • 只有受信任的客户端才能建立gRPC连接。
  • 在双方都使用gRPC TLS凭据实现。

应用层:JWT

JWT身份验证是使用gRPC服务器拦截器强制执行的。

Client (agent)
   │
   │  gRPC request + metadata (Authorization: Bearer )
   ▼
┌────────────────────────────┐
│ JwtAuthInterceptor         │
│  - Extracts JWT            │
│  - Validates signature     │
│  - Enforces allowlist      │
└────────────────────────────┘
           │ (only if valid)
           ▼
┌────────────────────────────┐
│ MCPServicer                │
│  - ListTools               │
│  - CallTool                │
│  - Chat (streaming)        │
└────────────────────────────┘
  • ListTools 是允许列出的,可以在没有JWT的情况下调用。
  • CallToolChat 需要有效的JWT。
  • JWT验证发生 之后 mTLS已建立传输信任。

______________________________________________________________________

Python环境设置

建议在Python虚拟环境中运行此项目 以避免依赖冲突。

该项目已经过测试 Python 3.11+.

创建并激活虚拟环境

python3 -m venv .venv
source .venv/bin/activate

安装依赖项

pip install -r requirements.txt

现在,您应该已经准备好运行该项目了。

______________________________________________________________________

项目结构(简化)

mcp_grpc/
├── proto/              # MCP protobuf definitions (source of truth)
├── server/             # MCP gRPC server + JWT interceptor
├── client/             # MCP gRPC client (agent)
├── mcp_pb2.py          # Generated protobuf code (committed for DX)
├── mcp_pb2_grpc.py     # Generated gRPC code (committed for DX)
scripts/
└── gen-certs.sh        # Local mTLS certificate generation
certs/                  # Generated locally (ignored by git)

生成的protobuf文件被提交以确保 克隆和运行体验. 这 .proto 文件仍然是真理的权威来源。

______________________________________________________________________

在本地运行项目

生成mTLS证书(每个克隆一次)

证书是 未承诺 到存储库。

./scripts/gen-certs.sh

这将产生:

  • 本地证书颁发机构(CA)
  • 服务器证书
  • 客户端证书

这些是为 仅限于本地开发.

______________________________________________________________________

启动MCP gRPC服务器(启用mTLS+JWT)

export MCP_JWT_SECRET='super-secret'
python -m mcp_grpc.server.server

保持此终端运行。

您应该看到:

MCP gRPC server running on 0.0.0.0:50051 (mTLS + JWT enabled)

______________________________________________________________________

生成用于测试的JWT(客户端身份)

在新终端中:(“确保虚拟环境已激活”)

export MCP_JWT_SECRET='super-secret'
python -m mcp_grpc.client.make_token

这将把一个签名的JWT打印到stdout。

______________________________________________________________________

使用生成的JWT运行客户端

export MCP_JWT="$(python -m mcp_grpc.client.make_token)"
python -m mcp_grpc.client.client

______________________________________________________________________

预期结果

如果一切正常,您应该看到:

  • 成功发现工具(ListTools)
  • 成功调用受JWT保护的工具(CallTool)
  • 通过实时流式传输进度和最终结果 Chat
  • 没有不安全的回退(强制执行mTLS和JWT)

这证实了MCP可以直接在gRPC上运行 企业级安全,如参考博客文章中所述。

______________________________________________________________________

摘要

此存储库是 实际验证 使用gRPC作为本机 MCP运输,演示:

  • 流媒体第一代理-工具通信
  • mTLS+JWT的零信任安全
  • 标准企业gRPC模式的重用

它旨在作为 参考PoC,不是完整的生产实施。

目录标签

目录标签

Python企业安全AI代理gRPC协议本地部署模型上下文协议实时流式通信零信任架构

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP