oast-mcp

使用说明(Markdown 格式)

  • 项目简介

    • oast-mcp 是一个完整的 MCP 服务器实现,聚焦在为 AI 客户端提供标准化的上下文信息与功能。它实现了对资源与工具的注册与执行、以及 OAST 回调和代理管理相关的工具集合,通过 MCP SSE 服务对接客户端。
  • 主要功能点

    • MCP 服务端:提供基于 SSE 的 JSON-RPC 通信,支持多租户隔离、令牌鉴权、以及对 Revocation 列表的检查。
    • OAST 工具集:包含会话管理(创建、列出、关闭)、事件查询、等待事件、产生回调载荷等工具,提供端到端的回调测试能力。
    • 代理管理工具:实现两阶段代理加载器/代理程序的生成与分发、任务调度与状态跟踪、以及租户隔离的访问控制。
    • 安全与审计:基于 JWT/TSIG 的鉴权、权限校验、以及结构化审计日志。
    • 本地化部署与扩展:内置 SQLite 作为存储层,支持多租户并发与回收,具备插件化的工具注册能力。
  • 安装步骤

    • 环境准备:需要 Go 语言环境,必要的构建工具与依赖(如 git、Make 等)。
    • 构建与打包
      • 使用仓库提供的构建目标进行编译打包(例如 make build-all),生成 oast-mcp 服务二进制。
    • 部署
      • 将生成的二进制、配置文件和所需的证书、密钥等部署到目标服务器,确保网络可达性(客户端能通过 HTTPS/SSE 连接到 MCP 服务)。
    • 证书与 DNS
      • 按 README 中的示例配置 DNS、证书与回调端点,确保域名可解析并且 TLS 证书可签发。
    • 产出与令牌
      • 使用工具生成 JWT 令牌(sub/tenant、scope、ttl 等),并将 BearerToken 配置到 MCP 客户端以连接服务器。
    • 加载与代理
      • 如需使用代理/加载器,需要在 bin_dir 配置正确的 loader-</> 与 agent-</> 二进制文件,确保服务端能分发加载器与代理程序。
  • 服务器配置(MCP 客户端需要的配置信息,用于与 MCP 服务器建立连接;客户端不需要此信息,仅供运维了解) 说明:以下为示例配置(JSON 形式,非代码块)。字段解释在每项后给出。 { "server": { "name": "oast-mcp", "command": "./bin/oast-mcp", "args": ["serve", "--config", "/etc/oast-mcp/config.yml"] }, "notes": "该配置描述了客户端如何启动并连接到 MCP 服务器的启动命令与参数。MCP 客户端在运行时需要知道服务器的地址、鉴权令牌及会话上下文等信息,但具体令牌与域名请由运维通过令牌管理工具生成和分发。" }

  • 基本使用方法

    • 启动方式
      • 使用提供的二进制启动命令启动服务,确保配置文件正确指向域名、端口、数据库、以及代理二进制位置等。
    • 客户端对接
      • MCP 客户端通过 Authorization: Bearer <token> 连接到服务器的 SSE 端点,发送初始注册并接收工具列表与结果回传。
    • 常见操作流程
      • 运维/开发者根据需要生成租户令牌,启动 MCP 服务端,随后 AI 客户端以带有 Bearer Token 的请求连接 SSE,开始创建会话、发起 payload、查询事件、调度任务等。
    • 监控与维护
      • 使用日志对话、审计日志与内置的清理任务对话,定期清理过期会话、事件和授权撤销记录,确保系统长期稳定运行。
  • 使用的关键概念(简要)

    • 会话(Session):跨回调通道的一次性测试会话,包含 CorrelationID、DNS/HTTP/HTTPS 回调端点。
    • 事件(Event):DNS/HTTP 回调产生的观测数据,带有时间戳、来源、数据字段等。
    • 工具(Tools):MCP 中可调用的功能集合,如创建会话、列出会话、等待事件、生成载荷等。
    • 代理管理(Agent):两阶段代理的生成、调度与状态管理,用于实现 RCE 场景下的后续任务执行。
  • 关键词 多租户、回调测试、任务调度、审计日志、分发加载器

  • 分类 1

说明:以上信息基于仓库中实现的 MCP 服务器与工具集,以及 README 与代码中的部署与使用模式整理而成,重点在于描述 MCP 服务器的有效性、部署与使用要点,以及与客户端协作的方式。

服务器信息