aws-samples/sample-sop-mcp

GitHub: aws-samples/sample-sop-mcp

一个将可重复的多步骤流程转化为标准作业程序的 MCP Server,让 AI Agent 逐步门控执行并确保每一步输出可审计。

Stars: 3 | Forks: 0

# sample-sop-mcp [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/aws-samples/sample-sop-mcp/actions/workflows/ci.yml) [![License: MIT-0](https://img.shields.io/badge/License-MIT--0-blue.svg)](LICENSE) 一个 MCP server,它会一次一步地将过程交接给你的 AI 助手,并要求其在继续下一步之前生成具体的输出。你可以使用自然语言与你的 agent 交流 —— Kiro, Cursor, Claude Desktop, Strands agent 或任何 MCP client —— 它会在底层为你调用 SOP 工具。 ## ✨ 功能 - **🗣️ 自然语言驱动** — 要求你的 agent 运行或编写 SOP;你无需手动调用工具 - **👣 逐步执行** — 每一步都必须被执行并产生输出,然后 agent 才能继续下一步 - **✅ 门控与可审计** — RFC 2119 级别 (MUST, SHOULD, MAY) 逐步交付,每一步都以上一步为门控前提,且进度保持明确 - **📦 开箱即用** — 首次启动时即植入四个可直接运行的 SOP - **✍️ 引导式编写** — 内置指南会对你进行访谈,起草、lint 并发布新的 SOP - **🔌 处处可用** — 支持一键安装至 Kiro, Cursor 和 VS Code;也支持为任何 MCP client 进行手动配置 ## 🤔 什么是 SOP? Standard Operating Procedure(标准作业程序)是一个 markdown 文档,用于记录可重复的、多步骤的过程 —— 代码审查、新员工入职、发布版本。LLM 功能强大,但在多步骤工作中表现难以预测:它们会跳过步骤,只做总结而不执行,并且会忘记进行到哪一步。sop-mcp 使这种行为变得可预测 —— 过程逐步送达,执行受到门控,进度清晰明确。

sop-mcp

## 🚀 快速开始 ### 1. 安装 一键添加 server,或粘贴以下配置。 | Kiro | Cursor | VS Code | | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | [![Add to Kiro](https://kiro.dev/images/add-to-kiro.svg)](https://kiro.dev/launch/mcp/add?name=sop-mcp&config=%7B%22command%22%3A%20%22uvx%22%2C%20%22args%22%3A%20%5B%22--from%22%2C%20%22git%252Bhttps%3A%2F%2Fgithub.com%2Faws-samples%2Fsample-sop-mcp%22%2C%20%22sop-mcp%22%5D%7D) | [![Install MCP Server](https://cursor.com/deeplink/mcp-install-light.svg)](https://cursor.com/en/install-mcp?name=sop-mcp&config=eyJjb21tYW5kIjogInV2eCIsICJhcmdzIjogWyItLWZyb20iLCAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9hd3Mtc2FtcGxlcy9zYW1wbGUtc29wLW1jcCIsICJzb3AtbWNwIl19) | [![Install on VS Code](https://img.shields.io/badge/Install_on-VS_Code-007ACC?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect/mcp/install?name=sop-mcp&config=%7B%22type%22%3A%20%22stdio%22%2C%20%22command%22%3A%20%22uvx%22%2C%20%22args%22%3A%20%5B%22--from%22%2C%20%22git%2Bhttps%3A%2F%2Fgithub.com%2Faws-samples%2Fsample-sop-mcp%22%2C%20%22sop-mcp%22%5D%7D) | ``` { "mcpServers": { "sop-mcp": { "command": "uvx", "args": ["--from", "git+https://github.com/aws-samples/sample-sop-mcp", "sop-mcp"] } } } ``` `uvx` 会直接从这个 repo 获取并运行 server —— 无需 clone 或构建。首次运行时,它会将四个[内置 SOP](#-bundled-sops) 植入你的存储目录。`SOP_STORAGE_DIR` 是可选的(参见[存储](#-storage))。 ### 2. 验证安装 重启你的 MCP client,然后让你的 agent 列出可用的 SOP: 你应该能看到内置的 SOP —— `sop_creation_guide`、`code_review_process` 等。如果没有出现,请检查你的 MCP client 的 server 日志以排查错误。 ### 3. 运行 SOP 只需告诉你的 agent。它会发现可用的 SOP,启动你指定的那个,并逐步完成它 —— 在进入下一步之前执行每一步所描述的工作。 你始终保持在对话中:审查每一步的输出、回答问题,或者在执行过程中进行纠正。 ### 4. 编写 SOP 要求 agent 运行内置的编写指南。它会对你进行访谈,起草 SOP,使用 linter 进行验证,并发布它 —— 所有这些都通过对话完成。 通过 lint 检查意味着可以顺利发布,因此你的 SOP 可以立即运行:*"运行 my_release_process。"* ## 🔄 工作原理

How sop-mcp works — a step-gated sequence

以 Mermaid 序列图展示的相同流程 ``` sequenceDiagram actor User participant Agent as AI Agent (MCP client) participant SOP as sop-mcp server participant Store as SOP storage (~/.sop_mcp) User->>Agent: "Run the code review SOP" Agent->>SOP: list_resources SOP->>Store: scan *.sop.md Store-->>SOP: SOP names SOP-->>Agent: available SOPs (sop://...) Agent->>SOP: run_sop(sop_name, current_step=0) SOP->>Store: read SOP markdown SOP-->>Agent: Step 1 of N + execution rules Agent->>Agent: execute step 1 (do the work) Agent->>SOP: run_sop(current_step=1, step_output="...") Note over Agent,SOP: required — step_output gates the next step opt human in the loop Agent-->>User: optionally show progress / ask input end SOP-->>Agent: Step 2 of N Note over Agent,SOP: repeat until the final step SOP-->>Agent: "SOP execution complete." Agent-->>User: done ```
每一步都要求 agent 去*执行* —— 而不仅仅是阅读。它必须在继续下一步之前产生该步骤预期的输出,这正是使运行过程可审计的原因。作为人在回路(human in the loop)中的一员,你可以看到每一步的结果,并随时进行干预。 ## 🧩 Agent SOP 与 Skills 的对比 这里的 SOP 使用 [Agent SOP](https://github.com/strands-agents/agent-sop) 格式 —— 便携的 markdown 工作流(参数化,并带有 RFC 2119 `MUST`/`SHOULD`/`MAY` 约束),用于指导 agent 完成多步骤过程。[Agent Skill](https://agentskills.io) *同样*是指导 agent 的 markdown,因此两者看起来很相似 —— 真正的区别在于**指令是如何传达给 agent 的**: - **作为 Skill** — 整个 playbook 会一次性加载到 context 中,由 agent 自主引导,因此它可以提前读取、跳过、批处理或总结。非常适合领域知识和灵活的任务。(Agent SOP 甚至可以导出为 Skills 格式。) - **通过 sop-mcp** — 相同的 SOP 会*一次一步*地分配。agent 只能看到当前步骤,并且必须在下一步释放之前报告其输出。它无法提前查看或跳过 —— 这正是使多步骤运行保持一致性和可审计性的关键。 | | 作为 Skill | 通过 sop-mcp 运行 | | ----------------- | -------------------------------- | -------------------------------------------------- | | 交付 | 一次性交付整个 playbook | 一次一步 | | 顺序 | agent 自律 | 门控 — 必须提供输出才能继续 | | 进度状态 | 无 | 被追踪且明确 | | 提前查看 / 跳过 | 可能 | 不可能 | | 形式 | 静态 markdown 文件 | 运行中的 server + 工具 (lint / publish / feedback) | | 最适用于 | 领域参考,灵活的任务 | 需要一致性和审计的多步骤流程 | (另外,这个 repo 还提供了一个常规的 skill —— [`sop-mcp-usage`](skills/sop-mcp-usage/SKILL.md) —— 用于教导 agent *如何*驱动该 server。) ## 📦 内置 SOP Server 附带四个 SOP —— 按名称要求你的 agent 运行任意一个: | SOP | 功能 | | --------------------------- | --------------------------------------------------------------------------- | | `sop_creation_guide` | 包含 RFC 2119 要求的 7 步引导式新 SOP 编写指南 | | `code_review_process` | 标准代码审查工作流 — 准备、审查、处理反馈、合并 | | `employee_onboarding_setup` | 新员工 IT 设置 — 别名、电子邮件、硬件选择 | | `user_onboarding_process` | 配置身份、应用访问权限和欢迎包 | ## 🛠️ 工具 agent 会代表你调用这些工具 —— 你无需直接调用它们。 | 工具 | 用途 | | --------------------- | -------------------------------------------------------------------------------------- | | `list_resources` | 发现可用的 SOP(内置于每个 MCP client) | | `read_resource` | 在执行前读取 SOP 的完整内容 | | `run_sop` | 逐步执行 SOP | | `lint_sop` | 根据 `publish_sop` 执行的相同规则验证草稿 SOP,但不进行写入 | | `publish_sop` | 创建或更新 SOP | | `submit_sop_feedback` | 记录改进建议 | 完整参数参考:[docs/mcp-reference.md](docs/mcp-reference.md) ## 💾 存储 首次运行时,server 会将内置 SOP 植入你的存储目录 —— 默认为 `~/.sop_mcp`,或者设置 `SOP_STORAGE_DIR` 将其指向其他位置。内置 SOP 仅在该目录中还没有任何 SOP 时才会被复制,因此你编写的任何内容都不会被覆盖。 要使用自定义位置,请在 server 配置中添加 `SOP_STORAGE_DIR` 环境变量: ``` { "mcpServers": { "sop-mcp": { "command": "uvx", "args": ["--from", "git+https://github.com/aws-samples/sample-sop-mcp", "sop-mcp"], "env": { "SOP_STORAGE_DIR": "/path/to/your/sops" } } } } ``` ## 📚 文档 | 受众 | 资源 | | ---------- | --------------------------------------------------------------------- | | AI 工具 | [`llms.txt`](llms.txt) — 自动发现的 server 描述 | | 用户 | [`skills/sop-mcp-usage/`](skills/sop-mcp-usage/SKILL.md) — 如何使用 | | 开发者 | [`CONTRIBUTING.md`](CONTRIBUTING.md) — 构建、测试、设计决策 | | 参考 | [`docs/mcp-reference.md`](docs/mcp-reference.md) — 完整的工具 schema | ## 💻 开发 ``` uv sync # install dependencies uv run pytest # run tests uv run ruff check src/ tests/ # lint uv run sop-mcp # start server locally uv run python scripts/generate_docs.py # regenerate docs ``` ## 🔐 安全 有关安全策略、漏洞报告流程和安全模型文档,请参阅 [SECURITY.md](SECURITY.md)。 更多信息请参阅 [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications)。 ## 许可证 本库采用 MIT-0 许可证授权。详见 LICENSE 文件。
标签:AI代理, MCP, SOC Prime, 工作流引擎, 开发工具, 标准作业程序(SOP), 流程自动化, 逆向工具, 防御加固