Token导航 LogoToken导航TokenDH.com
MCP Dev Test logo
安全风控stdio官方级别未说明来源级核验

MCP Dev Test

MCP Server

一个基于FastMCP v3和Okta OAuth/OIDC的安全认证服务器,提供JWT令牌验证、权限控制和多种工具(如数学计算、网络搜索和内容生成)的集成。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
安全认证内容生成Python

安装说明

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

作者 / 组织

VamshiAluwala

提供方

VamshiAluwala

最后核验

2026/5/17 20:23

运行时

Python

快速接入

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

命令预览

python3 -m venv venv-okta-mcp

详细介绍

安全的FastMCP+Okta OAuth服务器

采用Okta OAuth/OIDC保护的生产风格FastMCP v3服务器。\ 它通过Okta JWKS验证JWT访问令牌,强制作用域,应用自定义授权检查,并公开用于数学、网络搜索和内容生成的工具。

建筑

MCP Client / Agent
        |
        | OAuth Login
        v
Okta Authorization Server
        |
        | JWT Access Token
        v
FastMCP Server
        |
        +-- Token Verification (JWKS)
        +-- Scope Authorization
        +-- Identity Extraction
        |
        v
Tools
- Tavily Search
- Addition
- Subtraction
- Content Generator (LangChain)

项目结构

secure-mcp-okta/
|
|- main.py
|- config.py
|- requirements.txt
|- .env
|- README.md
|- auth/
|  |- __init__.py
|  |- okta_verifier.py
|  |- auth_checks.py
|- tools/
|  |- __init__.py
|  |- math_tools.py
|  |- search_tool.py
|  |- content_tool.py
|- services/
|  |- __init__.py
|  |- langchain_service.py
|- examples/
   |- client_example.py

已实现的功能

  • 使用JWKS进行Okta OAuth/OIDC JWT验证
  • 基于范围的授权
  • 敏感工具上已验证电子邮件的额外身份验证检查
  • 通过以下方式提取身份 whoami 工具
  • Tavily网络搜索工具
  • 加法和减法工具
  • LangChain驱动的文章生成工具

先决条件

  • Python 3.10+
  • 带有授权服务器的Okta租户(通常 default)
  • API访问管理在Okta启用
  • OpenAI API密钥
  • Tavilly API密钥

OCT设置

  1. 在Okta中为您的MCP客户端创建OAuth 2.0应用程序集成。
  2. 在授权服务器中,设置匹配的受众 OKTA_AUDIENCE.
  3. 添加您计划实施的范围,例如 api.
  4. 确保已发放的访问令牌包含预期的声明(email_verified, sub等等)。
  5. 确认发行人值如下:

https://your-company.okta.com/oauth2/default

  1. 创建或使用预先注册的客户端应用程序并注意 client_id (以及 client_secret 如果是机密客户)。
  2. 将重定向URI添加到Okta应用程序:

http://localhost:8765/callback

安装

python3 -m venv venv-okta-mcp
source venv-okta-mcp/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt

配置

更新 .env:

OPENAI_API_KEY=xxxxx
TAVILY_API_KEY=xxxxx

OKTA_DOMAIN=https://your-company.okta.com
OKTA_ISSUER=https://your-company.okta.com/oauth2/default
OKTA_AUDIENCE=api
REQUIRED_SCOPES=api
MCP_BASE_URL=http://localhost:8000
REQUIRE_VERIFIED_EMAIL_FOR_ADD=false
OKTA_CLIENT_ID=your_okta_client_id
OKTA_CLIENT_SECRET=optional_client_secret
OAUTH_CALLBACK_PORT=8765

REQUIRED_SCOPES 支持逗号分隔的值,例如:

REQUIRED_SCOPES=api,profile

运行服务器

python main.py

服务器终结点:

http://localhost:8000/mcp

暴露的工具

  • add(a: int, b: int):需要配置作用域(可选) email_verified=trueREQUIRE_VERIFIED_EMAIL_FOR_ADD=true)
  • subtract(a: int, b: int):需要配置作用域
  • tavily_search(query: str):需要配置作用域
  • generate_article(topic: str):需要配置作用域
  • whoami():需要配置作用域并返回令牌标识数据

客户电话示例

使用 examples/client_example.py:

python examples/client_example.py

客户端流:

  1. 从FastMCP中发现受保护的资源元数据。
  2. 解析Okta授权服务器元数据。
  3. 使用预先注册 OKTA_CLIENT_ID (无本地DCR回退)。
  4. 启动身份验证流并使用令牌调用MCP工具。

安全须知

  • JWT签名验证使用Okta JWKS({issuer}/v1/keys).
  • 令牌验证包括颁发者、受众、过期和所需范围。
  • 可选的自定义身份验证检查(require_verified_email)启用时阻止未经验证的电子邮件。
  • 身份可以通过令牌声明进行审核 whoami.

生产增强

  • 添加结构化审计日志:用户、工具、请求ID、延迟。
  • 添加速率限制(例如Redis+SlowAPI)。
  • 添加可观察性(开放遥测+普罗米修斯)。
  • 使用Okta组添加RBAC(admin, developer, viewer).
  • 为多租户部署添加租户感知策略检查。

故障排除

  • OKTA_ISSUER is required:set OKTA_ISSUER.env.
  • OKTA_AUDIENCE is required:set OKTA_AUDIENCE.env.
  • MCP_BASE_URL is required:set MCP_BASE_URL 到服务器公共URL(用于本地测试: http://localhost:8000).
  • Set OKTA_CLIENT_ID in .env:为示例客户端添加预先注册的Okta OAuth客户端ID。
  • TAVILY_API_KEY is required:set TAVILY_API_KEY.env.
  • 授权错误:确保令牌具有所需的范围 REQUIRED_SCOPES.
  • Email must be verified:set REQUIRE_VERIFIED_EMAIL_FOR_ADD=true 只有在您的访问令牌包含以下内容后 email_verified=true.
  • externally-managed-environment 使用pip:你的shell可以别名 pip 到Homebrew pip。使用 python -m pip ... 激活venv后,或运行 unalias pip.

目录标签

目录标签

安全认证内容生成Python本地部署工具集成OAuth/OIDCJWT验证

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP