Token导航 LogoToken导航

MCP Server · 安全风控

MCP Tool Kit

MCPToolKit是一个生产就绪的MCP服务器框架,支持水平扩展、多租户支持和委托OAuth认证,适用于需要与LLM客户端集成的生产环境。

stdio官方级别未说明来源级核验工具 0
PythonClaude安全Cursor

快速开始

作者 / 组织
timothywangdev
提供方
timothywangdev

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

12

仓库热度

收录来源

2 个

MCP World

选型结论

MCP Tool Kit 属于安全风控类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

安全风控

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

pip install mcp-python-sdk

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

上手步骤

  1. 1

    准备运行环境

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

  2. 2

    安装服务

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

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

MCPToolKit-生产就绪的MCP服务器框架

我们解决的问题

1.在生产中扩展MCP服务器

标准FastMCP框架在生产环境中面临着重大挑战:

  • 状态管理:传统的FastMCP服务器在内存中维护状态,这使得横向扩展变得困难
  • 无服务器限制:无服务器环境需要无状态架构,而FastMCP不是为此而设计的
  • 多租户支持:在同一服务器上运行多个租户需要复杂的会话管理

2.授权OAuth支持

管理MCP服务器的身份验证很复杂:

  • 工具级身份验证:用户只应在工具需要时进行身份验证
  • 第三方集成:为Notion、Slack等服务支持OAuth需要复杂的令牌管理
  • 安全:在维护安全性的同时管理多个身份验证流具有挑战性

我们的解决方案

MCPToolKit提供了一个生产就绪的框架,可以解决这些问题,同时保持与FastMCP的完全兼容性。其工作原理如下:

graph TD
    A[LLM Client
e.g. Claude, ChatGPT, Cursor] --> B[Load Balancer]
    B --> C[MCP Server Instance 1
with Redis State]
    B --> D[MCP Server Instance 2
with Redis State]
    B --> E[MCP Server Instance N
with Redis State]
    C --> F[Redis
Session State & OAuth Tokens]
    D --> F
    E --> F
    C --> H[MCP Authorization Server
OAuth 2.1 & PKCE]
    D --> H
    E --> H
    H --> G[OAuth Providers
Notion, Slack, etc.]
    style H fill:#f9f,stroke:#333,stroke-width:2px

此架构图说明了MCPToolKit如何启用生产就绪的MCP服务器:

  1. LLM客户 (例如,Claude、ChatGPT、Cursor)向MCP服务器发起请求。这些客户端可以是需要与MCP工具交互的任何应用程序。
  1. 负载均衡器 跨多个MCP服务器实例分发传入请求,实现横向扩展和高可用性。
  1. MCP服务器实例 (1到N)处理工具执行和资源访问。每个实例:

- 维护自己的Redis状态以实现会话持久性 - 可以独立处理请求 - 共享相同的代码库和配置 - 可根据需求水平扩展

  1. 雷迪斯 作为中央州立商店,提供:

- 跨服务器重启的会话状态持久性 - OAuth令牌存储和管理 - 服务器实例之间的共享状态 - 启用无状态服务器实例

  1. MCP授权服务器 (以粉红色突出显示)管理所有与OAuth相关的操作:

- 使用PKCE实现OAuth 2.1以实现安全身份验证 - 处理代币发行和刷新 - 管理同意流程 - 为所有服务器实例集中OAuth逻辑

  1. OAuth提供者 (例如,Notion、Slack)是用户可以进行身份验证的第三方服务。授权服务器安全地管理这些连接。

该架构实现了:

  • 通过无状态服务器实例实现真正的横向扩展
  • 集中式OAuth管理
  • 通过多个服务器实例实现高可用性
  • 安全令牌管理
  • 跨会话的一致用户体验

从FastMCP迁移

从FastMCP迁移到MCPToolKit很简单。以下是如何更新现有的FastMCP服务器:

# Before (FastMCP)
- from mcp.server.fastmcp import FastMCP
- 
- # Create an MCP server
- mcp = FastMCP("Demo")

# After (MCPToolKit)
+ from mcptoolkit import MCPToolKit
+ import os
+ 
+ # Create a production-ready MCP server
+ mcp = MCPToolKit(
+     name="Demo",
+     redis_url=os.environ["REDIS_URL"]  # Required: Set REDIS_URL in your environment
+ )

# Your tools and resources remain exactly the same
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

迁移只需要几个简单的更改:

  1. 更改导入语句
  2. 设置 REDIS_URL 环境变量(生产所需)
  3. 就是这样!您现有的所有工具、资源和提示将继续与以前完全一样工作

对于本地开发,您可以设置环境变量:

export REDIS_URL="redis://localhost:6379/0"

对于无服务器部署,您还需要更新部署配置:

# Before (FastMCP)
- # api/index.py
- from mcp.server.fastmcp import FastMCP
- 
- mcp = FastMCP("Demo")
- app = mcp.create_fastapi_app()

# After (MCPToolKit)
+ # api/index.py
+ from mcptoolkit.vercel import create_vercel_app
+ import os
+ 
+ app = create_vercel_app(
+     name="Demo",
+     redis_url=os.environ["REDIS_URL"]  # Required: Set REDIS_URL in your environment
+ )

主要特点:

  • Redis支持状态:会话状态在服务器重启和函数调用过程中持续存在
  • 无服务器就绪:专为Vercel、AWS Lambda和其他无服务器平台设计
  • 水平缩放:状态持久性实现了真正的水平扩展
  • 多租户支持:多个用户可以通过隔离会话连接到同一端点

2.授权OAuth支持

from mcptoolkit import MCPToolKit, requires_auth
from mcptoolkit.auth.providers import NotionProvider, SlackProvider

# Define default scopes for each provider
default_notion_scopes = [
    "read:database",
    "write:page",
    "read:page"
]

default_slack_scopes = [
    "channels:read",
    "chat:write",
    "reactions:write"
]

server = MCPToolKit(name="Auth Server")

@server.tool()
@requires_auth(provider=NotionProvider(
    scopes=default_notion_scopes,
    consent_required=True  # Require explicit user consent
))
def notion_search(query: str, ctx: Context) -> str:
    # Access authenticated Notion client with specific scopes
    notion = ctx.get_oauth_client("notion")
    return notion.search(query)

@server.tool()
@requires_auth(provider=SlackProvider(
    scopes=default_slack_scopes,
    consent_required=True
))
def slack_message(channel: str, message: str, ctx: Context) -> str:
    # Access authenticated Slack client with specific scopes
    slack = ctx.get_oauth_client("slack")
    return slack.post_message(channel, message)

主要特点:

  • 延迟身份验证:用户仅在工具需要时进行身份验证
  • 提供商支持:内置对常见提供商(Notion、Slack等)的支持
  • 许可证管理:自动令牌刷新和存储
  • 安全:安全的令牌存储和传输
  • 粒度范围:对OAuth权限进行细粒度控制
  • 同意管理:具有逻辑权限分组的用户友好同意屏幕
  • 循环中的人类:高风险行动的可选批准要求

OAuth流

MCPToolKit使用PKCE实现了安全的OAuth 2.1流:

  1. LLM客户端向MCP服务器发起请求
  2. 服务器返回401未经授权和重定向链接
  3. 用户登录OAuth提供者并授予请求的作用域
  4. 服务器向客户端返回身份验证码
  5. 客户端交换访问+刷新令牌的代码
  6. 令牌用于后续请求
  7. MCP服务器调用第三方服务

授权服务器架构

MCPToolKit支持授权服务器的两种部署模型:

  1. 嵌入式授权服务器

- MCP服务器同时充当身份提供者和依赖方 - 直接处理登录、同意和令牌发放 - 管理令牌生命周期、刷新逻辑和吊销 - 最适合独立应用程序

  1. 外部授权服务器

- MCP服务器充当依赖方 - 将OAuth流委托给外部服务(例如Stytch) - 专注于工具级访问控制 - 最适合与现有身份基础设施集成

两种型号都支持:

  • OAuth 2.1 与 PKCE
  • 动态客户端注册
  • 授权服务器元数据(RFC 8414)
  • 基于资源/操作的自定义范围
  • 最终用户同意管理
  • 每个提供者的粒度范围定义
  • 组织级可见性和控制
  • 隐含权限(用户只能授予他们拥有的权限)

同意和访问管理

MCPToolKit提供全面的同意和访问管理:

  • 组织级可见性:查看整个组织中授权的所有已连接应用程序
  • 精细权限:查看哪些成员已授予访问权限以及他们已授权的范围
  • 访问管理:随时撤销特定用户或应用程序的访问权限
  • 用户友好同意:在逻辑分组中显示RBAC权限
  • 隐含权限:用户只能给应用程序相同的权限
  • 循环中的人类:高风险行动需要人工批准

高风险行动保护

@server.tool()
@requires_auth(provider=NotionProvider(
    scopes=["delete:database"],
    human_approval_required=True  # Require explicit human approval
))
def delete_database(database_id: str, ctx: Context) -> str:
    # This action will require explicit human approval
    notion = ctx.get_oauth_client("notion")
    return notion.delete_database(database_id)

建筑

部署选项

Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mcp-server
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: mcp-server
        image: your-mcp-server
        env:
        - name: REDIS_URL
          valueFrom:
            secretKeyRef:
              name: redis-credentials
              key: url
无服务器(Vercel)
# api/index.py
from mcptoolkit.vercel import create_vercel_app

app = create_vercel_app(
    name="Serverless MCP",
    redis_url=os.environ.get("REDIS_URL")
)

快速开始

  1. 安装MCPToolKit:
pip install mcp-python-sdk
  1. 创建您的服务器:
from mcptoolkit import MCPToolKit, requires_auth

server = MCPToolKit(
    name="My Production Server",
    redis_url="redis://localhost:6379/0"
)

@server.tool()
def public_tool() -> str:
    return "This tool doesn't require auth"

@server.tool()
@requires_auth(provider="notion")
def notion_tool() -> str:
    return "This tool requires Notion auth"
  1. 部署到您喜欢的平台(Kubernetes、Vercel等)

需求

  • Python 3.9+
  • Redis实例(用于会话状态持久化)
  • OAuth提供者凭据(如果使用委托身份验证)

许可证

与MCP Python SDK相同。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

MCP服务器Python本地部署水平扩展OAuth认证多租户支持Redis状态管理

支持客户端

ClaudeCursor

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

典型使用场景

资产与漏洞排查

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

日志审计

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

合规检查

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

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

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

同类对比

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

MCP World · 本页

0stdio有2 个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 Tool Kit 怎么安装?

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

MCP Tool Kit 怎么在 Claude Desktop、Cursor 里配置?

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

MCP Tool Kit 收费吗?

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

MCP Tool Kit 需要 API Key 吗?

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

MCP Tool Kit 支持哪些客户端?

公开资料标注支持 Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP