HoneyMCP 蜜罐式上下文服务中间件

使用说明(Markdown 格式)

  • 项目简介

    • HoneyMCP 是一个面向 Model Context Protocol (MCP) 的后端中间件,旨在为 LLM 客户端提供可上下文化的资源访问、工具执行与提示模板渲染能力,同时注入“鬼工具”(ghost tools)进行攻击检测与监控。它通过拦截工具调用、生成攻击指纹、并将事件写入日志存储,提升对数据泄露与提示注入等攻击的可观测性。
    • 核心能力包括:资源与数据访问管理、注册与执行工具、定义与渲染 Prompt 模板、以及基于 LLM 的动态 ghost tools 生成。服务器与客户端通过 JSON-RPC 风格的请求/响应进行通信,并且支持多种传输协议(如 stdio、SSE、WebSocket)。
  • 主要功能点

    • 资源与数据访问能力的托管与管理
    • Ghost Tools(鬼工具)的注册、拦截与指纹记录
    • 动态 ghost tool 生成(LLM 驱动)与静态工具组合
    • Prompt 模板的渲染与装配
    • Attack Fingerprint 级攻击指纹与事件日志的存储与 dashboard 展示
    • 多传输协议支持(stdio、SSE 等)以及仪表盘与 API 的集成
    • ToolGen 等工具,用自然语言描述生成新的鬼工具
    • 配置、日志与仪表盘的完备集成(CLI、配置文件、REST API)
  • 安装步骤

    • 安装并配置 Python 运行环境(建议 Python 3.11+)
    • 安装 HoneyMCP:pip install honeymcp
    • 初始化配置(CLI):honeymcp init
    • 如需使用动态 ghost tools,需要提供 LLM 相关凭据(.env.honeymcp),并按需配置 llm_provider(如 openai、watsonx 等)
  • 服务器配置(供 MCP 客户端参考,JSON 形式,包含 server name、command、args 等,帮助客户端了解如何启动 MCP 服务器。MCP 客户端本身不需要直接执行代码)

    • 示例 1:stdio 传输(适用于 Claude Desktop 等)
      • server_name: "HoneyMCP-Demo"
      • transport: "stdio"
      • command: "uv"
      • args: ["run", "python", "examples/demo_server.py"]
      • env: {"MCP_TRANSPORT": "stdio"}
    • 示例 2:可选的 SSE/HTTP 传输(适用于 Web/CLAUDE 直连场景)
      • server_name: "HoneyMCP-Demo"
      • transport: "sse"
      • command: "uv"
      • args: ["run", "python", "examples/demo_server.py"]
      • env: {"MCP_TRANSPORT": "sse"}
  • 基本使用方法

    • 将 HoneyMCP 挂接到现有的 FastMCP 服务器:
        1. 启动一个 FastMCP 服务器并实现你的真实工具
        1. 在服务器初始化后,使用一个一行调用将 HoneyMCP 注入为中间件:mcp = honeypot(mcp)
        1. 启动服务器,蜜罐工具会随同真实工具一起暴露给客户端,并在被触发时记录攻击指纹、日志并返回伪造的响应
    • 动态工具生成与静态工具配置:
      • 动态工具:LLM 驱动,默认开启,生成域相关的 ghost tools
      • 静态工具:预配置的常用 ghost tools,可快速上线
    • 事件日志与仪表盘:
      • 攻击指纹会被写入本地存储(默认 ~/.honeymcp/events/),可以通过仪表盘实时查看攻击事件
    • 配置与扩展:
      • 通过 honeymcp.yaml(及可选的 .env.honeymcp)配置、启用/禁用动态工具、仪表盘、Webhook 等
    • 兼容性与测试:
      • 提供多种测试用例、示例服务器(examples/demo_server.py、examples/demo_server_dynamic.py)以及CI 测试用例,确保核心流程的正确性
  • 需要注意的要点

    • 本项目包含完整的服务器拦截、攻击指纹记录与仪表盘展示能力,而不仅仅是客户端调用的演示
    • 动态 ghost tools 功能需要正确配置 LLM 提供商的凭据,否则会回落到静态工具模式
    • 日志与事件存储路径可通过配置进行定制与持久化

服务器信息