Token导航 LogoToken导航TokenDH.com
mcpsecuritydemo logo
AI代理stdio官方级别未说明来源级核验

mcpsecuritydemo

MCP Server

一个专注于安全的演示项目,展示如何构建和运行MCP服务器,并通过内置的MCP客户端与之交互,适用于开发人员培训和研讨会。

工具数

1

提示词数

0

GitHub Stars

0

资源数

0
安全Python开发工具

安装说明

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

作者 / 组织

raphgm

提供方

raphgm

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

python3 -m venv venv

详细介绍

🛡️ MCP安全迎宾器——演示项目

一个简单的、以安全为重点的演示,展示如何构建和运行 模型上下文协议(MCP) 服务器,并使用内置的MCP客户端与之交互。 此演示专为研讨会、培训课程和开发人员入职培训而设计。

______________________________________________________________________

📌 这个演示教了什么

该项目展示了 安全工具调用 使用MCP:

✔️ 参与者学到了什么

  • MCP服务器的工作原理
  • 如何安全地验证用户输入
  • 如何使用STDIO传输运行服务器
  • 如何使用内置的MCP客户端调用工具
  • “默认安全”验证如何防止滥用

✔️ 为什么MCP安全很重要

MCP允许开发人员安全地向LLM公开工具。 但是 人工智能模型可能会被欺骗发送恶意输入,因此工具必须:

  • 验证每个输入
  • 拒绝可疑模式
  • 只返回安全内容

此演示显示 安全输入和不安全输入之间的区别.

______________________________________________________________________

⚙️ 项目结构

mcpdemo/
│
├── server.py       # MCP server with input validation
├── client.py       # Python MCP client calling the server
├── requirements.txt
└── README.md

______________________________________________________________________

🚀 分步设置指南

1.️⃣ 创建项目文件夹

mkdir mcpdemo
cd mcpdemo

______________________________________________________________________

2.️⃣ 创建Python虚拟环境(Mac)

为什么? venv保持依赖关系隔离,因此全局系统不受影响。

python3 -m venv venv
source venv/bin/activate

______________________________________________________________________

3.️⃣ 创建 requirements.txt

为什么? 因此,环境可以安装服务器和客户端所需的确切软件包。

touch requirements.txt

在里面加上这个:

fastmcp==2.13.1

安装所有内容:

pip install -r requirements.txt

______________________________________________________________________

4.️⃣ 创建MCP安全迎宾服务器(server.py)

为什么? 此文件公开了一个名为 问候,验证名称,并演示安全的错误处理。

from fastmcp import FastMCP, tool

app = FastMCP("safe-greeter")

def is_valid_name(name: str) -> bool:
    return name.replace(" ", "").isalpha()

@tool
def greet(name: str):
    if not is_valid_name(name):
        return {"error": "Invalid name — only letters and spaces allowed."}
    return {"message": f"Hello, {name}!"}

if __name__ == "__main__":
    app.run()

🔐 为什么这很重要

is_valid_name() 过滤器防止:

  • 代码注入
  • 提示注入
  • Script标签
  • 类似SQL的有效载荷
  • Shell 命令

这展示了MCP的 输入级安全.

______________________________________________________________________

5.️⃣ 创建MCP客户端(client.py)

为什么? 模拟人工智能模型或外部程序如何调用您的MCP服务器。

import asyncio
from fastmcp.client import Client

async def main():
    async with Client(
        transport="python3 server.py"
    ) as client:
        resp = await client.call_tool("greet", {"name": "Raphael"})
        print("Valid input:", resp)

        resp = await client.call_tool("greet", {"name": "Raphael123!!"})
        print("Bad input:", resp)

asyncio.run(main())

______________________________________________________________________

6.️⃣ 运行演示

启动客户端(自动启动服务器)

python3 client.py

预期输出

Valid input: {"message": "Hello, Raphael!"}

Bad input: {"error": "Invalid name — only letters and spaces allowed."}

您还将看到FastMCP启动:

FastMCP 2.13.1
Server: safe-greeter
Transport: STDIO

______________________________________________________________________

🧠 是什么让这成为一个好的MCP安全演示?

🔒 1.输入验证清晰

演示直观地显示了:

  • 良好的输入→ 接受
  • 输入错误→ 拒绝

非常适合现场解释。

🧪 2.易于修改

参与者可以尝试用以下方式打破它:

  • "Robert'); DROP TABLE Students;--"
  • "alert(1)"
  • "$(rm -rf ~)"

所有这些都将被安全地拒绝。

🚀 3.演示现实世界中MCP的使用

MCP工具正是这样集成到:

  • AI代理
  • ChatGPT自定义工具
  • 自动化系统
  • 保护管道

______________________________________________________________________

📚 其他学习想法

您可以通过以下方式扩展此演示:

  • 日志中间件
  • 速率限制
  • 基于角色的访问
  • 基于令牌的授权
  • 更多经过验证的工具(例如,电子邮件验证器、文件安全分析器)

______________________________________________________________________

🙌 鸣谢

为MCP安全研讨会创建 拉斐尔·加布·莫莫.

______________________________________________________________________

目录标签

目录标签

安全Python开发工具MCP协议本地部署安全验证AI安全输入过滤

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP