Token导航 LogoToken导航

MCP Server · 安全风控

MCP Authendication example

一个集成AI技术的宠物护理聊天机器人系统,提供安全认证、多宠物上下文管理和实时聊天功能。

stdio官方级别未说明来源级核验工具 6
安全认证Python安全

快速开始

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

工具数量

6

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Authendication example 属于安全风控类 MCP Server,公开资料标注 6 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

安全风控

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv .venv

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

上手步骤

  1. 1

    准备运行环境

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

  2. 2

    安装服务

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

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

Pawsome宠物护理-具有Asgardeo身份验证的人工智能兽医助理

该项目展示了一个复杂的人工智能宠物护理聊天机器人系统,该系统将安全的MCP(模型上下文协议)服务器与智能LangGraph代理集成在一起,使用 阿斯加德奥 作为用于身份验证和授权的OAuth2/OIDC提供者。

🌟 主要特点

  • 安全MCP服务器 使用Asgardeo OAuth2身份验证
  • 智能LangGraph代理 具有动态上下文管理
  • 多宠物上下文处理 具有自动宠物选择逻辑
  • JWT令牌验证 与JWKS端点集成
  • OpenAI集成 基于人工智能的宠物名字建议
  • RESTful Web界面 支持CORS
  • 实时聊天 有对话记忆

先决条件

  • Python 3.12或更高版本
  • Asgardeo帐户 和应用程序设置
  • OpenAI API密钥(用于宠物名称建议)
  • pip(Python包安装程序)

项目结构

├── main.py              # FastMCP server with secured endpoints
├── agent.py            # LangGraph agent with dynamic context logic
├── jwt_validator.py    # JWT validation module for Asgardeo tokens
├── index.html          # Web interface for chat
├── .env                # Environment variables configuration
├── requirements.txt    # Python dependencies
└── README.md          # This file

安装

  1. 克隆或下载此项目
  1. 创建虚拟环境(推荐)
   python -m venv .venv
   source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 安装必要的依赖项
   pip install -r requirements.txt

关键依赖关系包括:

- fastmcp -快速MCP服务器框架 - python-dotenv -环境变量管理 - openai -OpenAI API集成 - pyjwt -JWT令牌处理 - langgraph -代理编排 - langchain-openai -OpenAI语言链集成 - aiohttp -异步HTTP服务器 - httpx -HTTP客户端

  1. 配置环境变量

创建一个 .env 项目根目录中的文件:

   # Asgardeo OAuth2 Configuration

   ## Asgardeo Configuration

   ## 1. Create an Asgardeo Application

      1. Login to your [Asgardeo](https://asgardeo.io/) account.
      2. Navigate to the **Applications** tab and select the **MCP Client Application**.
      3. Add your application name and callback URL.

   ## 2. Get Your Application Credentials

创建应用程序后,获取 客户端ID 和 租户名称:

  • 客户端ID:在应用程序的 协议 选项卡。
  • 租户名称:您组织的租户名称(在URL中可见)。

授权发布者=https://api.asgardeo.io/t/ 客户端ID= Jwks网址=https://api.asgardeo.io/t//oauth2/jwks

# OpenAI配置

OPENAI_API密钥=


  **Example with actual values:**

# Asgardeo OAuth2 Configuration AUTH_ISSUER=https://api.asgardeo.io/t/pawsomepets CLIENT_ID=abc123xyz789_client_id_from_asgardeo JWKS_URL=https://api.asgardeo.io/t/pawsomepets/oauth2/jwks

# OpenAI Configuration OPENAI_API_KEY=sk-proj-abc123xyz789


## 🔐 Asgardeo配置

### 1.在Asgardeo中创建MCP客户端应用程序

1. 登录到您的 **阿斯加德奥** 帐户在 [https://console.asgardeo.io](https://console.asgardeo.io)

1. 导航到 **应用程序** 选项卡并选择 **MCP客户端应用程序** 模板

   

1. 配置您的应用程序:

   - **应用程序名称**:爪子宠物护理MCP
   - **授权重定向URL**:添加客户端应用程序的回调URL
     - 对于MCP检查员: `http://localhost:6274/oauth/callback`
     - 对于代理人: `http://localhost:8080/callback`

   

### 2.获取您的申请证书

创建应用程序后,检索以下内容:

- **客户端ID**:在应用程序的 **协议** 标签
- **租户名称**:您组织的租户名称(例如。, `pawsomepets`)

### 3.配置所需范围

确保您的Asgardeo应用程序启用了以下作用域:

- `openid` -标准OpenID连接范围
- `email` -用户电子邮件地址访问
- `profile` -用户资料信息
- `internal_login` -用户身份验证所需

### 4.更新环境变量

替换您的占位符 `.env` 文件:

- 替换 `` 使用您的实际Asgardeo租户姓名
- 替换 `` 使用Asgardeo提供的OAuth2客户端ID

**安全说明**:永远不要承诺你的 `.env` 文件到版本控制。添加 `.env` 你的 `.gitignore` 文件。

## 架构概述

### MCP服务器(`main.py`)

MCP服务器为宠物管理提供了安全的工具:

1. **JWT令牌验证**

   - 使用Asgardeo JWKS端点验证传入令牌
   - 提取用户声明(主题、范围、受众)
   - 实现RFC 9728受保护资源元数据

1. **可用工具**:

   - `get_user_id_by_email` -从电子邮件中检索用户ID
   - `get_pets_by_user_id` -列出用户的所有宠物
   - `get_pet_vaccination_info` -胎儿疫苗接种史
   - `book_vet_appointment` -预约兽医
   - `cancel_appointment` -取消现有约会
   - `suggest_pet_names` -通过OpenAI提供人工智能宠物名字建议

### LangGraph代理(`agent.py`)

代理通过动态上下文管理编排智能对话:

1. **身份验证流程**

   - 使用PKCE实现OAuth2授权码流
   - 自动打开浏览器进行Asgardeo登录
   - 从ID令牌和SCIM2/Me端点检索用户电子邮件
   - 交换访问令牌的授权码

1. **状态管理**

   - 维护每个会话的对话历史记录
   - 缓存用户上下文(用户ID、宠物、活动宠物)
   - 从用户消息中动态解析宠物上下文

1. **图形节点**:

   - `load_context` -在对话开始时加载用户数据
   - `classify` -确定用户意图
   - `mcp_agent` -使用动态上下文执行MCP工具调用
   - `greeting`, `services`, `pricing`, `general` -特定意图处理程序

1. **多宠物逻辑**:

   - 单宠物:自动上下文选择
   - 多只宠物:检测消息中的宠物名称或要求澄清
   - 禁止宠物:适当通知用户

## 运行系统

### 1.启动MCP服务器

python main.py


服务器将于启动 `http://localhost:8000` 使用 `streamable-http` 运输。

### 2.启动代理服务器

python agent.py


代理人将:

1. 打开浏览器进行Asgardeo身份验证
1. 等待授权回调
1. 检索您的用户电子邮件
1. 启动聊天服务器 `http://localhost:8080`

### 3.访问Web界面

打开 `http://localhost:8080` 在浏览器中与聊天机器人交互。

## MCP检验员测试

### 设置MCP检查器

1. **安装并运行MCP检查器**:

npx @modelcontextprotocol/inspector


   **备注**:确保版本 `0.16.3` 或更高。

1. **配置检查器回调**:

   - 添加 `http://localhost:6274/oauth/callback` 转到您的Asgardeo应用程序的授权重定向URL

1. **连接到MCP服务器**:

   - 打开检查器URL(例如。, `http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=`)
   - 配置服务器连接:
     - **运输**:HTTP SSE
     - **统一资源定位符**: `http://localhost:8000/mcp`
     - **认证**:具有Asgardeo设置的OAuth2

   

1. **测试身份验证**:

   - 点击 **连接**
   - 您将被重定向到Asgardeo进行登录
   - 成功验证后,您可以测试这些工具

   

## 对话流程示例

### 示例1:单宠物用户

User: Hi! Agent: Welcome back! I've loaded your pet details. How can I help?

User: What are Buddy's vaccinations? Agent: [Automatically calls get_pet_vaccination_info with Buddy's ID] Buddy's vaccination records show: - Rabies (Jan 15, 2024) - Next due: Jan 15, 2025 - DHPP (Mar 20, 2024) - Next due: Mar 20, 2025 - Bordetella (Jun 10, 2024) - Upcoming: Dec 10, 2024


### 示例2:多个宠物用户

User: Show me vaccination info Agent: Which pet are you referring to? You have: - Buddy (Dog) - Spot (Dog)

User: Buddy Agent: [Calls get_pet_vaccination_info with Buddy's ID] [Returns vaccination details...]


### 示例3:预约

User: Book an appointment for Buddy next Monday at 2 PM for checkup Agent: [Calls book_vet_appointment] Appointment confirmed! - Pet: Buddy - Date: 2025-11-24 - Time: 2:00 PM - Reason: Checkup - Veterinarian: Dr. Smith


## 安全特性

1. **JWT令牌验证**

   - 根据Asgardeo JWKS端点验证令牌
   - 验证发行人、受众和到期时间
   - 提取并验证作用域

1. **授权流程**

   - 使用PKCE的OAuth2授权码流
   - 安全令牌交换
   - 无需客户端机密(PKCE保护公共客户端)

1. **基于范围的访问控制**

   - 工具需要有效的访问令牌
   - 未来增强:特定范围的工具访问

1. **用户上下文隔离**

   - 每个用户只看到自己的宠物
   - 基于会话的对话记忆
   - 每个会话ID的上下文缓存

## 故障排除

### 未从ID令牌中检索到电子邮件

该代理包含回退逻辑,用于在ID令牌中不存在的情况下从SCIM2/Me端点检索电子邮件:

Fallback to SCIM2/Me endpoint

scim_url = f"{base_url}/scim2/Me" scim_resp = await client.get( scim_url, headers={"Authorization": f"Bearer {access_token}"} )


### 令牌验证失败

检查以下内容:

- JWKS URL正确且可访问
- 发卡机构URL完全匹配(包括租户)
- 客户端ID正确
- 令牌尚未过期

### 连接问题

- 确保MCP服务器正在上运行 `http://localhost:8000`
- 验证代理服务器是否正在上运行 `http://localhost:8080`
- 检查本地端口的防火墙设置

## 高级配置

### 自定义端口配置

修改相应文件中的端口设置:

**MCP服务器** (`main.py`):

mcp.run(transport="streamable-http", port=8000)


**代理服务器** (`agent.py`):

site = web.TCPSite(runner, 'localhost', 8080)


### 添加新工具

要添加新的MCP工具:

1. 在中定义工具 `main.py`:

@mcp.tool() async def my_new_tool(param: str) -> dict: """Tool description""" # Implementation return {"result": "data"}


2. 代理将自动发现并使用新工具。

## 贡献

欢迎投稿!请确保:

- 代码遵循PEP 8风格指南
- 所有新工具都包括适当的身份验证检查
- 文档已针对新功能进行了更新

## 许可证

本项目按原样提供,用于演示目的。

______________________________________________________________________

**由Asgardeo提供技术支持** -现代应用程序的企业级身份和访问管理。

工具与能力

工具数量

6

资源数量

0

提示词数量

0

能力标签

AI宠物助手Python本地部署多宠物管理安全认证实时聊天兽医预约

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

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

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

先想清楚的地方

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

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

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

同类对比

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

MCP World · 本页

6stdio有1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

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

常见问题

5 条

MCP Authendication example 怎么安装?

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

MCP Authendication example 怎么在 Claude Desktop、Cursor 里配置?

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

MCP Authendication example 收费吗?

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

MCP Authendication example 需要 API Key 吗?

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

MCP Authendication example 支持哪些客户端?

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

来源信息

继续浏览同类 MCP