An MCP server for guiding users through Standard Operating Procedures
Project description
sop-mcp
An MCP server that brings process automation to AI agents through Standard Operating Procedures.
LLMs are powerful but unpredictable when executing multi-step processes — they skip steps, summarize instead of act, and lose track of where they are. sop-mcp solves this by delivering procedures one step at a time, forcing the agent to execute each step and provide concrete output before advancing. This turns SOPs into a control mechanism that makes LLM behavior predictable and auditable.
The result: agents that follow processes the way humans do — step by step, with reasoning enforced at each level.
This approach aligns with Agent SOPs — a standardized markdown format for defining AI agent workflows using RFC 2119 requirement levels (MUST, SHOULD, MAY). sop-mcp adds the execution layer: an MCP server that delivers these procedures one step at a time and enforces completion before advancing.
Install
| Kiro | Cursor | VS Code |
|---|---|---|
Or add manually:
{
"mcpServers": {
"sop-mcp": {
"command": "uvx",
"args": ["sop-mcp"],
"env": { "SOP_STORAGE_DIR": "/path/to/your/sops" }
}
}
}
How It Works
Every session starts the same way — discover what's available, then execute.
list_resources() → catalog of sop:// URIs
run_sop(sop_name="sop_creation_guide") → Step 1 + instructions
run_sop(..., current_step=1, step_output="...") → Step 2
run_sop(..., current_step=2, step_output="...") → Step 3
...
run_sop(..., current_step=N, step_output="...") → Completion
Each response tells the agent to execute the step — not just read it.
Bundled SOPs
Four SOPs ship with the server so new users can try run_sop immediately:
| SOP | What it does |
|---|---|
sop_creation_guide |
Step-by-step guide for authoring new SOPs with RFC 2119 requirements |
code_review_process |
Standard code review workflow — prepare, review, address feedback, merge |
employee_onboarding_setup |
IT setup for a new hire — alias, email, hardware selection |
user_onboarding_process |
Provision identity, application access, and welcome package |
Storage default: ~/.sop_mcp (seeded from the bundled SOPs on first run). Override with SOP_STORAGE_DIR.
Tools
| Tool | Purpose |
|---|---|
list_resources |
Discover available SOPs (built in to every MCP client) |
read_resource |
Read an SOP's full content before executing it |
run_sop |
Execute an SOP step by step |
publish_sop |
Create or update an SOP |
submit_sop_feedback |
Record improvement suggestions |
Full parameter reference: docs/mcp-reference.md
Documentation
| Audience | Resource |
|---|---|
| AI tools | llms.txt — auto-discovered server description |
| Users | skills/sop-mcp-usage/ — how to use |
| Operators | skills/sop-mcp-configuration/ — install, configure, hooks |
| Developers | CONTRIBUTING.md — build, test, design decisions |
| Reference | docs/mcp-reference.md — full tool schemas |
Development
uv sync # install dependencies
uv run pytest # run tests
uv run sop-mcp # start server locally
uv run python scripts/generate_docs.py # regenerate docs
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sop_mcp-0.12.1.tar.gz.
File metadata
- Download URL: sop_mcp-0.12.1.tar.gz
- Upload date:
- Size: 192.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f406f0987293e632488ea6bc0a74669e20b610f577409bfe3e2e3ed7d843ccad
|
|
| MD5 |
2109afc8eb4c51acd4b09a9e377a6baa
|
|
| BLAKE2b-256 |
8e5fd02fbfe88ae7a0f43854fb33444863d22f76d0f41ed67314e685a9694195
|
Provenance
The following attestation bundles were made for sop_mcp-0.12.1.tar.gz:
Publisher:
publish.yml on ValueArchitectsAI/sop-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sop_mcp-0.12.1.tar.gz -
Subject digest:
f406f0987293e632488ea6bc0a74669e20b610f577409bfe3e2e3ed7d843ccad - Sigstore transparency entry: 1526958830
- Sigstore integration time:
-
Permalink:
ValueArchitectsAI/sop-mcp@c8baf33f2b967e1c34c5aa27fede0d496dd88cc0 -
Branch / Tag:
refs/tags/v0.12.1 - Owner: https://github.com/ValueArchitectsAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c8baf33f2b967e1c34c5aa27fede0d496dd88cc0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file sop_mcp-0.12.1-py3-none-any.whl.
File metadata
- Download URL: sop_mcp-0.12.1-py3-none-any.whl
- Upload date:
- Size: 69.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc1cf192e132f8acd3f6abfade551f4a75213e5e5bd42ee9275eccd20928704d
|
|
| MD5 |
98841ebe0420e93d3eb48a2aec78c83b
|
|
| BLAKE2b-256 |
3578a9b459808c25202c0cc9618756b0843493b6380bc5a6f1a28599337095a0
|
Provenance
The following attestation bundles were made for sop_mcp-0.12.1-py3-none-any.whl:
Publisher:
publish.yml on ValueArchitectsAI/sop-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sop_mcp-0.12.1-py3-none-any.whl -
Subject digest:
cc1cf192e132f8acd3f6abfade551f4a75213e5e5bd42ee9275eccd20928704d - Sigstore transparency entry: 1526958937
- Sigstore integration time:
-
Permalink:
ValueArchitectsAI/sop-mcp@c8baf33f2b967e1c34c5aa27fede0d496dd88cc0 -
Branch / Tag:
refs/tags/v0.12.1 - Owner: https://github.com/ValueArchitectsAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c8baf33f2b967e1c34c5aa27fede0d496dd88cc0 -
Trigger Event:
release
-
Statement type: