Token导航 LogoToken导航

MCP Server · 安全风控

Base MCP Oauth

一个为MCP服务器添加OAuth 2.0认证的Python库,支持最小化配置和自定义用户验证。

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

快速开始

作者 / 组织
mruwnik
提供方
mruwnik

工具数量

1

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

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

分类

安全风控

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

pip install -e .

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

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

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

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

MCP OAuth 服务器

一个Python库,可为MCP服务器添加OAuth 2.0认证,且设置简便。

安装

pip install -e .
# or
uv pip install -e .

快速入门

1. 决定如何存储用户信息

例如,制作一个 users.txt 文件类似:

alice:cows
bob:dogs

2. 创建您的MCP服务器

from mcp_base import create_oauth_server

def check_user(username: str, password: str) -> int:
  with open("users.txt") as f:
    for i, line in enumerate(f.readlines()):
      if line == f"{username}:{password}":
        return i

# Create server with defaults
mcp = create_oauth_server("my-app", check_user)

# Add your tools
@mcp.tool()
def echo(message: str) -> str:
    """Echo back the input message."""
    return f"Echo: {message}"

# Run the server
if __name__ == "__main__":
    mcp.run(transport="streamable-http")

3. 运行它

python your_server.py

就是这么简单!您的MCP服务器现在已运行OAuth认证 http://localhost:3000。

用户配置

OAuth 需要一系列复杂的流程,但很多时候你可能只需要用户名和密码。这 这就是这个库的用途。你可以根据自己的需求来设计用户验证的方式,并提供 一个函数,如果用户和密码组合有效,则返回该有效用户的ID;如果无效,则返回None 错误。库会为你处理其余部分。

登录界面

OAuth流程要求您验证通过该流程的用户是否为有效用户。 系统默认提供一个HTML登录页面,要求输入用户名和密码。 如果您想对此进行自定义,您可以提供自己的HTML代码来使用,通过 the login_template 参数,或者提供一个自定义处理程序来处理传入的请求。

登录模板

登录模板是一段HTML代码。它将显示给用户,以便用户输入凭据。 默认处理程序期望一个包含(某元素)的表单 state 对于OAuth相关内容的值,以及一个 username 并且 password 使用用户凭据。以下宏将在HTML中被替换(通过使用一个非常简单的 字符串替换,所以请确保使用这些确切的字符串):

  • {state} - OAuth状态,如在GET URL或POST表单数据中提供
  • {username} - 如果提供了无效密码,您可以使用此功能来保留用户名
  • {app_name} - 您的应用名称,如提供给(某方/平台等)的名称 create_oauth_server
  • {error_message} - 验证过程中发生的任何异常

自定义登录处理程序

OAuth流程需要 /oauth/login 通过GET请求被调用,并随后进行重定向 将流程引导至适当的终端以继续进行。第一部分是硬编码的,而重定向部分 当任何客户端初始化流程时,会提供这个(信息)。话虽如此,你可以控制这一过程如何进行。

要使用您自己的处理程序,请提供一个具有以下签名的函数给 login_handler 的 create_oauth_server 呼叫;打电话

from starlette.requests import Request
from starlette.responses import HTMLResponse, RedirectResponse

async def login_handler(request: Request, complete_user_checker: Callable[[str, str, str], str]) -> HTMLResponse | RedirectResponse:
  (...)

request 这是Starlette请求。 complete_user_checker 是一个接收OAuth的函数 状态、用户名和密码,如果正确则返回重定向URL,否则抛出ValueError异常(如果任何一项不匹配) 是错误的。

基本上,你从请求中提取状态(request.query_params.get("state")), 提取 随意设置用户名和密码,然后执行:

try:
  redirect_url = complete_user_checker(state, username, password)
  return RedirectResponse(url=redirect_url, status_code=302)
except ValueError as e:
  # handle the error

自定义配置

from mcp_base import create_oauth_server, ServerConfig

config = ServerConfig(
    host="localhost",
    port=8000,
    db_path="my_auth.db",
    supported_scopes=["read", "write", "admin"],
    required_scopes=["read"],
    debug=True,
)

mcp = create_oauth_server("my-app", config=config)

示例

见 示例/ 完整示例目录:

  • simple_server.py - 基本用法
  • custom_server.py - 自定义配置
  • file_credentials_server.py - 用户在……中定义 users.txt

部署

如果你想通过Nginx代理运行,那么以下方法应该能解决问题:

server {
    server_name ;

    # Basic security headers
    add_header X-Frame-Options DENY always;
    add_header X-Content-Type-Options nosniff always;
    add_header X-XSS-Protection "1; mode=block" always;

    # Rate limiting (optional)
    # limit_req zone=api burst=20 nodelay;

    # Handle MCP endpoint redirect internally

    # Proxy everything to your memory app
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # Timeouts
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

哪里 ` 应替换为您实际的域名,并且 http://localhost:3000` 到;向;朝 无论你在哪里运行你的MCP服务器。

测试

手动测试MCP(可能指某种系统或组件,如“多控制器协议”等,具体需根据上下文确定)相关内容并非易事,因此你可能需要类似这样的工具或方法 MCP检查员 在你真正(做某事)之前 尝试使用包含各种元素的模型。

工具与能力

工具数量

1

资源数量

0

提示词数量

0

能力标签

OAuth认证Python本地部署Python库用户验证服务器安全

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

典型使用场景

资产与漏洞排查

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

日志审计

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

合规检查

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

选择建议

值得选的地方

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

先想清楚的地方

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

更适合

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

不太适合

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

同类对比

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

MCP World · 本页

1stdio有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 条

Base MCP Oauth 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Base MCP Oauth 怎么在 Claude Desktop、Cursor 里配置?

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

Base MCP Oauth 收费吗?

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

Base MCP Oauth 需要 API Key 吗?

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

Base MCP Oauth 支持哪些客户端?

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

来源信息

继续浏览同类 MCP