安全MCP服务器框架
这个项目是什么?
每个人都想用MCP建造,但没有人关心API成本。..
这是一个安全、易于使用的服务器,可以让Claude或GPT等AI助手安全地访问您的工具、脚本和API。它充当人工智能和您宝贵资源之间的专业“保安”,因此您始终处于控制之中。
______________________________________________________________________
为什么人们需要这个?
之前:
- 许多AI/自动化工具可以运行你的代码,但任何人都可以连接,而且没有内置真正的安全检查。
- 大多数开放的MCP服务器就像街上的自动售货机:它们允许任何人按下按钮、破坏东西或快速花钱。没有登录,没有限制,没有日志,也没有安全网。
由此引发的问题:
- 人们(或机器人)可能会向你的工具发送垃圾邮件,堆积大笔账单,或者破坏重要的东西。
- 没有办法看到谁做了什么,什么时候,为什么——所以如果出了什么问题,你就无法追踪。
- 任何找到您服务器的人都可以执行敏感操作(删除文件、更改配置)。
______________________________________________________________________
安全MCP服务器是如何解决这个问题的?
此项目添加了多个强安全层:
| 安全层 | 它做什么 | 它是如何工作的 |
|---|---|---|
| 认证 | 仅允许具有正确用户名和密码的人进入 | 使用安全密码哈希(bcrypt)并在登录后颁发令牌 |
| 授权 | 将管理员与普通用户分开 | 在允许用户调用敏感工具之前检查用户角色 |
| 速率限制 | 阻止垃圾邮件和滥用 | 每个用户每小时60个请求后自动阻止工具 |
| 输入验证 | 阻止危险命令运行 | 代码检查所有输入,阻止危险短语(如“删除文件”) |
| 审计日志 | 记录谁在何时做了什么 | 每个工具的使用、错误和被阻止的操作都会写入安全日志 |
| 沙盒 | 以隔离模式运行工具 | 防止工具访问文件、系统或其他有风险的资源 |
| 令牌检查 | 要求每个操作都有一个有效的访问令牌 | 阻止任何试图在没有真实令牌的情况下进行操作的用户或机器人 |
简言之:
- 只有合适的人才能使用合适的工具。
- 每次尝试(好的或坏的)都会被记录下来。
- 速率限制可以防止垃圾邮件、成本超支和意外的无限循环。
- 即使有人尝试了一些有风险的东西,工具也会在一个安全的沙箱中运行,无法触及您的系统文件。
______________________________________________________________________
与基本的MCP服务器相比,它如何保护您?
| 基本MCP服务器 | 安全MCP服务器 | |
|---|---|---|
| 需要登录 | ❌ 否(对所有人开放) | ✅ 是(用户名和密码) |
| 管理员权限 | ❌ 否 | ✅ 是(只有管理员看到敏感信息) |
| 垃圾邮件防护 | ❌ 否 | ✅ 是(费率限制) |
| 阻塞危险 | ❌ 否 | ✅ 是(输入检查和沙盒) |
| 活动日志 | ❌ 否 | ✅ 是(审计记录) |
| 知道谁做了什么❌ 否 | ✅ 是的 | |
| 商业安全 | ❌ 否 | ✅ 是的 |
______________________________________________________________________
哪些技术使这成为可能?
- Python 3.9+:易于阅读,开发速度快。
- FastMCP和MCP SDK:处理AI和服务器之间的消息,因此任何使用MCP的AI应用程序都可以连接。
- passlib+bcrypt:保护密码安全,这样就没有人可以窃取它们。
- 巨蟒何塞(JWT):制作证明每个用户身份的“身份证”(令牌)。
- SQLAlchemy+SQLite:简单地保存用户、日志和工具数据;对于大型团队来说,很容易升级到PostgreSQL。
- 斯特洛格与普罗米修斯:简单、可搜索的日志和图表,查看您的系统运行情况。
- psutil:允许您监视自己服务器的CPU/内存使用情况。
- pydantic,python dotenv:使用环境变量和设置的干净、安全的方法。
______________________________________________________________________
请求的典型生命周期(各层如何保护您)
- 用户登录 使用用户名和密码→ 获得安全令牌。
- 每当他们做任何事情时 令牌 检查(如出示身份证)。
- 在任何工具运行之前,服务器都会进行双重检查:
- 你可以这样做吗?(管理员与普通用户) - 这个工具你用了太多次了吗?(速率限制) - 你的请求安全吗?(输入检查) - 你在你允许的记忆范围内吗?(上下文)
- 如果一切顺利,该工具将在 沙盒 (安全区),所以没有危险可以逃脱。
- 每次尝试(成功或被阻止)都会被写入 审计日志 为了实现完全的可追溯性。
- 如果有人行为可疑,他们将被阻止,管理员可以查看日志中的所有内容。
______________________________________________________________________
可用工具
| 工具 | 说明 |
|---|---|
| 回声 | 回显文本及其字符长度 |
| 计算器 | 安全地计算数学表达式(2 ** 10, math.sqrt(144)等等) |
| 文本处理器 | 大写、小写、title_case、反转、word_count、char_count、strip |
| secure_hash | 生成MD5/SHA-1/SHA-256/SHA-512哈希值 |
| uuid_generator | 生成UUID v1或v4 |
| datetime_info | ISO、可读、时间戳、仅日期或仅时间格式的当前日期/时间 |
| jsonformat | 漂亮的打印和验证JSON字符串 |
| base64_codec | 对Base64字符串进行编码或解码 |
______________________________________________________________________
使用此MCP服务器
任何人现在都可以通过两种方式开始使用此服务器。
选项A:FastMCP云(托管,零设置)
服务器已部署并在FastMCP Cloud上运行:
https://secure-mcp-server.fastmcp.app/mcp注: 此服务器托管在 莽夫 FastMCP Cloud上的组织。 要连接,您需要成为该组织的成员。
如何加入:
- 首选 fastmcp.cloud 并使用您的 GitHub 账户
- 接受邀请后,您可以立即连接。
从克劳德桌面连接 --将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"secure-mcp-server": {
"url": "https://secure-mcp-server.fastmcp.app/mcp"
}
}
}从游标连接 --将此添加到您的光标MCP设置中:
{
"mcpServers": {
"secure-mcp-server": {
"url": "https://secure-mcp-server.fastmcp.app/mcp"
}
}
}______________________________________________________________________
选项B:Docker(自托管,无需帐户)
从DockerHub中提取图像并自己运行——没有注册,也没有组织邀请。
docker pull dushyantzz/secure-mcp-server:latest运行MCP服务器:
docker run -d -p 8000:8000 \
-e SECRET_KEY=change-me-to-a-strong-secret \
dushyantzz/secure-mcp-server:latest您的MCP服务器现在正在运行 http://localhost:8000/mcp.
请运行FastAPI REST服务器:
docker run -d -p 8000:8000 \
-e SECRET_KEY=change-me-to-a-strong-secret \
-e MODE=api \
dushyantzz/secure-mcp-server:latestREST API文档将在 http://localhost:8000/docs.
连接任何MCP客户端 到 http://localhost:8000/mcp --与上述JSON配置相同,只需交换URL即可。
使用docker编写 (包括PostgreSQL、Redis、Prometheus、Grafana):
git clone https://github.com/dushyantzz/secure-mcp-server-framework.git
cd secure-mcp-server-framework
docker-compose up______________________________________________________________________
选项C:从源代码运行
git clone https://github.com/dushyantzz/secure-mcp-server-framework.git
cd secure-mcp-server-framework
# Install dependencies
pip install -r requirements.txt
# Copy and edit environment config
cp .env.example .env
# Run the MCP server
fastmcp run server.py --transport streamable-http --port 8000
# Or run the FastAPI REST server
uvicorn mcp_server.main:app --host 0.0.0.0 --port 8000______________________________________________________________________
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
SECRET_KEY | 是 | -- | JWT令牌签名的密钥 |
MODE | 没有 | mcp | Docker模式: mcp (MCP服务器)或 api (FastAPI REST服务器) |
DATABASE_URL | 没有 | sqlite+aiosqlite:///./secure_mcp.db | 数据库连接字符串 |
DEBUG | 没有 | false | 启用调试模式和API文档 |
LOG_LEVEL | 没有 | INFO | 日志记录级别 |
RATE_LIMIT_RPM | 没有 | 60 | 每位用户每分钟的最大请求数 |
看 .env.example 查看完整列表。
______________________________________________________________________
总之
- 安全MCP服务器 为您提供MCP服务器的所有功能
- 加 企业级安全和日志
- 它增加了一名专业保安,而不仅仅是一个开放的门户
- 非常适合任何想要安全地使用人工智能运行真实工作流程或工具的人
