Skip to main content

An MCP server for guiding users through Standard Operating Procedures

Project description

sop-mcp

PyPI Python License

An MCP server that guides AI agents through Standard Operating Procedures (SOPs) step by step, using RFC 2119 requirement levels. Instead of dumping an entire procedure on the agent (which it will summarize or skip), sop-mcp feeds one step at a time and forces actual execution.

Quick Install

Kiro Cursor VS Code
Add to Kiro Install MCP Server Install on VS Code

Or add manually to any MCP client:

{
  "mcpServers": {
    "sop-mcp": {
      "command": "uvx",
      "args": ["sop-mcp"]
    }
  }
}

Why?

Agents tend to summarize or skip steps when given a full procedure. Feeding steps one at a time forces actual execution. Each SOP becomes a dedicated MCP tool (run_<sop_name>) that the agent discovers naturally in its tool list.

How It Works

Agent calls run_sop_creation_guide()        → gets step 1 + instruction to execute
Agent executes step 1 actions
Agent calls run_sop_creation_guide(current_step=1)  → gets step 2
  ... repeats ...
Agent calls run_sop_creation_guide(current_step=8)  → is_complete: true

Every response includes an instruction field that tells the agent to act, not just read.

Tools

Tool Description
explain_sop List all available SOPs, or get details about a specific one
publish_sop Publish a new or updated SOP with automatic semver bumping
submit_sop_feedback Submit improvement feedback for a specific SOP
run_<sop_name> Step-by-step execution of an SOP (one tool per SOP, registered dynamically)

Creating SOPs

The built-in run_sop_creation_guide tool walks agents through the full authoring process:

  1. Prepare — gather process info, identify stakeholders, collect existing docs
  2. Structure — define metadata, scope, parameters, and document skeleton
  3. Document — write detailed step-by-step instructions with decision points
  4. Apply RFC 2119 — classify each action as MUST, SHOULD, or MAY
  5. Enrich — add troubleshooting, best practices, examples, and references
  6. Review — validate with SMEs and end users, run through the checklist
  7. Finalize — incorporate feedback, publish via publish_sop, notify stakeholders
  8. Maintain — schedule reviews, collect feedback, keep the SOP current

After publishing, restart the server to register the new run_<sop_name> tool.

Storage Configuration

By default, SOPs are stored in the bundled src/sops/ directory (ephemeral — data may be lost if the package cache refreshes).

To persist SOPs, set SOP_STORAGE_DIR:

{
  "mcpServers": {
    "sop-mcp": {
      "command": "uvx",
      "args": ["sop-mcp"],
      "env": {
        "SOP_STORAGE_DIR": "/path/to/my/sops"
      }
    }
  }
}

Bundled SOPs are automatically seeded into the custom directory on first run.

Writing an SOP

Every SOP markdown file must include:

  • A level-1 heading (# Title)
  • A **Document ID**: field (lowercase, underscores, min 3 words)
  • A **Version:** field (semver)
  • An ## Overview section
  • One or more ### Step N: sections

Use RFC 2119 keywords (MUST, SHOULD, MAY) to define requirement levels.

Publishing

Call publish_sop with the full markdown content and a change_type:

Type Effect Example
major Breaking change 1.2.0 → 2.0.0
minor New feature 1.2.0 → 1.3.0
patch Bugfix 1.2.0 → 1.2.1

New SOPs always start at v1.0.0.

SOP Naming Convention

Element Format Example
Folder name lowercase, underscores sop_creation_guide
Document ID same as folder name sop_creation_guide
Tool name run_ + folder name run_sop_creation_guide
Version file v + semver v1.0.0.md

Development

Requires Python 3.10+ and uv.

uv sync              # install dependencies
uv run pytest        # run tests
uv run sop-mcp       # start server locally

Architecture

sequenceDiagram
    participant Agent as AI Agent<br/>(Claude/Kiro)
    participant Server as sop-mcp<br/>Server
    participant Storage as Storage Backend<br/>(configurable)

    Note over Agent,Storage: Initialize
    Agent->>Server: run_sop_creation_guide()
    Server->>Storage: Load latest version
    Storage-->>Server: SOP content
    Server-->>Agent: Step 1 + overview + instruction

    Note over Agent,Storage: Execute Steps
    loop For each step
        Agent->>Agent: Execute step actions
        Agent->>Server: run_sop_creation_guide(current_step=N)
        Server-->>Agent: Step N+1 + instruction
    end

    Note over Agent,Storage: Complete
    Agent->>Server: run_sop_creation_guide(current_step=last)
    Server-->>Agent: is_complete: true

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sop_mcp-0.3.0.tar.gz (102.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sop_mcp-0.3.0-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file sop_mcp-0.3.0.tar.gz.

File metadata

  • Download URL: sop_mcp-0.3.0.tar.gz
  • Upload date:
  • Size: 102.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sop_mcp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 5aacab0b0baa2a92741cea3e58cb6e492b3f1a87c214f6ee14bbb14bcd9591d6
MD5 f2a7d425fec309d20586199a475e1ef3
BLAKE2b-256 c2101b7f8ad360ce20a82b018d16016d47b383c0e66041ec86647634d26b1a77

See more details on using hashes here.

Provenance

The following attestation bundles were made for sop_mcp-0.3.0.tar.gz:

Publisher: publish.yml on ValueArchitectsAI/sop-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sop_mcp-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: sop_mcp-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sop_mcp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 404eb25d3b27ae287cb1a33ebe215425d34170afcd293f768c5f43f39322a61e
MD5 eaf6ad8f6a99101dd3d778d7d7a29db4
BLAKE2b-256 ffefbb60ebd93e5b8109260636781514e0c5c68a9aacd2eb3526e4b8de011e75

See more details on using hashes here.

Provenance

The following attestation bundles were made for sop_mcp-0.3.0-py3-none-any.whl:

Publisher: publish.yml on ValueArchitectsAI/sop-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page