Token导航 LogoToken导航

MCP Server · 浏览器工具

Dynamic MCP Poc

一个基于MCP协议的认证网关,支持动态工具发现和按会话隔离的令牌交换功能。

stdio官方级别未说明来源级核验工具 0
访问控制HTML浏览器自动化

快速开始

作者 / 组织
riposta
提供方
riposta
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

Dynamic MCP Poc 属于浏览器工具类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 API Key。

分类

浏览器工具

传输方式

stdio

认证方式

API Key

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv .venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

MCP网关——经过身份验证的动态工具发现

概念证明演示了一个经过身份验证的MCP(模型上下文协议)网关,该网关具有Keycloak、RFC 8693令牌交换和动态会话工具发现功能。

这有什么作用

AI代理连接到单个MCP网关。网关允许代理根据需要发现和激活工具服务器。每一跳都经过身份验证——用户通过Keycloak登录,网关将其令牌交换为服务器特定的令牌,每个MCP服务器验证其自己的作用域令牌。

User (browser)
  │
  │  Keycloak OIDC login (PKCE)
  ▼
Web Frontend + ADK Agent (:8000)
  │
  │  Bearer token (aud: mcp-gateway)
  ▼
MCP Gateway (:8010)
  │
  │  Token exchange (RFC 8693)
  ▼
MCP Servers (:8011, :8012)
  Each validates its own scoped token (aud: mcp-weather, mcp-calculator)

主要特点:

  • 动态工具发现 --客服电话 search_servers / enable_server 在运行时
  • 每会话隔离 --在某个会话中激活的服务器在另一个会话中不可见
  • 代币兑换 --网关通过Keycloak将用户令牌交换为服务器特定的令牌
  • 按用户访问控制 --Keycloak角色决定每个用户可以访问哪些服务器
  • 无需更改代码即可添加服务器 --只需添加一个YAML条目和一个Keycloak客户端

先决条件

  • Python 3.13+
  • Docker(用于Keycloak)
  • Node.js 18+(用于BDD测试)
  • LLM API密钥(Vertex AI、Google AI Studio或OpenAI)

快速开始

1.克隆并设置Python环境

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2.配置环境

cp .env.example .env

编辑 .env --按键设置为 MODEL_NAME:

# Vertex AI (default, requires gcloud auth)
MODEL_NAME=vertex_ai/gemini-2.5-flash

# Or Google AI Studio (requires API key)
MODEL_NAME=gemini/gemini-2.0-flash
GOOGLE_API_KEY=your-key-here

3.开始一切

make up

这将按顺序启动所有服务:Keycloak、配置令牌交换权限、MCP服务器、网关和web UI。它等待每个组件准备就绪,然后再开始下一个组件。

4.打开web UI

首选 http://localhost:8000 然后单击 使用Keycloak登录.

测试用户:

用户密码访问
testusertestpass天气+计算器
limitedusertestpass仅天气

登录后,您将被重定向到ADK聊天UI。让客服找到并使用可用的工具。

发出命令

命令描述
make up启动所有服务(Keycloak、服务器、网关、web UI)
make down停止一切
make status检查正在运行的服务
make logs跟踪所有服务日志
make test运行BDD测试套件
make test-smoke仅运行烟雾测试
make test-install安装BDD测试依赖项

单独运行服务

如果您希望在单独的端子中启动组件:

# Terminal 1: Keycloak
docker compose up -d
# Wait for Keycloak to be ready (~30s), then configure permissions:
bash keycloak/setup-permissions.sh

# Terminal 2: Weather server
source .venv/bin/activate
python servers/weather_server.py

# Terminal 3: Calculator server
source .venv/bin/activate
python servers/calculator_server.py

# Terminal 4: Gateway
source .venv/bin/activate
python gateway/server.py

# Terminal 5: Web UI
source .venv/bin/activate
python agent/web.py

端口映射

端口组件
8080钥匙斗篷(管理员: admin / admin)
8010MCP网关
8011气象MCP服务器
8012计算器MCP服务器
8000Web前端+ADK代理用户界面

运作原理

  1. 用户通过Keycloak登录(授权码+PKCE)
  2. 访问令牌(受众: mcp-gateway)被注入到代理的MCP呼叫中
  3. 客服电话 search_servers() 发现可用服务器
  4. 客服电话 enable_server("weather") --网关:

- 检查用户的角色(access:weather) - 将令牌交换为一个范围为 mcp-weather - 连接到天气服务器,发现其工具 - 在网关上注册代理工具

  1. 客服电话 get_weather("Warsaw") --网关:

- 验证此会话中是否启用了服务器 - 再次将令牌交换为新的服务器范围令牌 - 将呼叫转发到天气服务器 - 返回结果

每个MCP会话都有自己的一组启用的服务器。在一个浏览器选项卡中激活的工具不会出现在另一个选项卡中。

运行BDD测试

该项目使用Cucumber.js和TypeScript对正在运行的服务进行黑盒BDD测试。

# Install test dependencies (once)
make test-install

# Start all services
make up

# Run tests
make test

项目结构

MCPTest/
├── gateway/
│   ├── server.py              # MCP gateway with auth + token exchange + per-session state
│   └── servers.yaml           # Server registry (name, URL, audience, role)
├── servers/
│   ├── weather_server.py      # Weather MCP server (JWT auth)
│   └── calculator_server.py   # Calculator MCP server (JWT auth)
├── agent/
│   ├── __init__.py            # Exports root_agent
│   ├── main.py                # ADK agent with MCP toolset + header_provider
│   └── web.py                 # FastAPI: Keycloak login + ADK Web UI
├── keycloak/
│   ├── mcp-poc-realm.json     # Realm config (clients, scopes, mappers, users)
│   └── setup-permissions.sh   # Configures V1 fine-grained token exchange permissions
├── tests/bdd/                 # Cucumber.js BDD test suite
│   ├── features/              # Gherkin scenarios
│   ├── steps/                 # TypeScript step definitions
│   └── support/               # World class
├── doc/
│   ├── ARCHITECTURE.md        # Architecture overview
│   ├── IMPLEMENTATION.md      # Implementation details
│   └── IMPLEMENTATION-BDD.md  # BDD test approach
├── docker-compose.yml         # Keycloak container
├── Makefile                   # Service orchestration
├── requirements.txt           # Python dependencies
└── .env.example               # Environment template

添加新的MCP服务器

  1. 钥匙斗篷 --添加仅承载客户端(mcp-),一个受众范围,并将其分配给 mcp-gateway
  2. 服务器代码 --创建 servers/_server.py 随着 JWTVerifier(audience="mcp-")
  3. 网关配置 --向添加条目 gateway/servers.yaml
  4. 重启 网关——网关或代理中不需要更改代码

看 doc/IMPLEMENTATION.md 第10节了解全部细节。

文档

  • 建筑 --组件设计、信任边界、令牌流
  • 实施 --代码结构、Keycloak设置、关键API
  • BDD测试 --测试方法、场景目录

限制(PoC)

  • 仅内存状态--重新启动时丢失
  • 无令牌刷新——令牌过期后(1小时)用户必须重新登录
  • 通过全局变量进行单用户web会话
  • 无TLS——所有流量都是明文HTTP

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

HTML本地部署认证网关动态工具发现令牌交换会话隔离访问控制

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

自动操作网页

打开页面、点击、填表,把浏览器动作交给模型执行。

抓结构化数据

把页面内容整理成表格或 JSON,省掉手工复制粘贴。

走一遍关键流程

按步骤检查页面是否正常,回归时少漏环节。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备API Key,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在浏览器工具场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到API Key的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Dynamic MCP Poc

MCP World · 本页

0stdio有1 个2026-05-17
Fetch 9a2682de

MCP.so

1SSE有3 个2026-05-17
Browser 738d52bc

MCP World

0stdio有1 个2026-05-17
Playwright MCP Server

MCP.so

21stdio有4 个2026-05-17
Skyvern MCP

MCP World

0stdio有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Dynamic MCP Poc 怎么安装?

公开资料给出的安装命令是 python -m venv .venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Dynamic MCP Poc 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Dynamic MCP Poc 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Dynamic MCP Poc 需要 API Key 吗?

公开资料标注的认证方式是API Key,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Dynamic MCP Poc 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP