Skip to main content

AI-powered DevOps knowledge base with practices, templates, and automation tools

Project description

DevOps Practices - MCP Server

CI/CD Pipeline License: MIT Version MCP Server

Purpose: Centralized DevOps practices and standards for infrastructure projects.

Type: Model Context Protocol (MCP) Server for Claude Code

Version: 1.3.0


What This Provides

This MCP server provides shared DevOps practices that are common across infrastructure projects:

Available Practices (11)

  1. Air-Gapped Workflow - Working across laptop, CloudShell, bastion, and EKS
  2. Documentation Standards - HOW/WHAT/WHY structure, naming conventions
  3. Session Continuity - State tracking, handoff protocols
  4. Task Tracking - TRACKER.md, CURRENT-STATE.md, PENDING-CHANGES.md
  5. Git Practices - Using git mv, commit conventions, backup protocols, GitLab Flow
  6. Efficiency Guidelines - When to script vs copy-paste, batching commands
  7. Standard Workflow - Common operational patterns and workflows
  8. Runbook Documentation โญ - Mandatory session log standards and requirements
  9. Configuration Management โญ - Config organization, placeholders, environment isolation
  10. README Maintenance โญ - Directory documentation standards and best practices
  11. Issue Tracking ๐Ÿ†• - In-repository Jira-like issue tracking system (Advanced)

Available Templates (7)

  1. TRACKER.md - Task tracking template (milestones)
  2. CURRENT-STATE.md - Session handoff template
  3. CLAUDE.md - Simplified project instructions template
  4. RUNBOOK.md โญ - Session log template with all required sections
  5. ISSUE.md ๐Ÿ†• - Individual issue template (Advanced)
  6. ISSUES.md ๐Ÿ†• - Issue index template with stats dashboard (Advanced)
  7. issues/README.md ๐Ÿ†• - How to use the issue system (Advanced)

Architecture

devops-practices-mcp/
โ”œโ”€โ”€ README.md                    # This file
โ”œโ”€โ”€ mcp-server.py                # MCP server implementation
โ”œโ”€โ”€ requirements.txt             # Python dependencies
โ”œโ”€โ”€ .gitlab-ci.yml               # GitLab CI/CD pipeline
โ”œโ”€โ”€ health-check.sh              # Health validation script
โ”œโ”€โ”€ practices/                   # Shared practice documents (11 files)
โ”‚   โ”œโ”€โ”€ air-gapped-workflow.md
โ”‚   โ”œโ”€โ”€ documentation-standards.md
โ”‚   โ”œโ”€โ”€ session-continuity.md
โ”‚   โ”œโ”€โ”€ task-tracking.md
โ”‚   โ”œโ”€โ”€ git-practices.md
โ”‚   โ”œโ”€โ”€ efficiency-guidelines.md
โ”‚   โ”œโ”€โ”€ standard-workflow.md
โ”‚   โ”œโ”€โ”€ runbook-documentation.md
โ”‚   โ”œโ”€โ”€ configuration-management.md
โ”‚   โ”œโ”€โ”€ readme-maintenance.md
โ”‚   โ””โ”€โ”€ issue-tracking.md        # ๐Ÿ†• Advanced: In-repo issue tracking
โ”œโ”€โ”€ templates/                   # File templates (7 files)
โ”‚   โ”œโ”€โ”€ TRACKER-template.md
โ”‚   โ”œโ”€โ”€ CURRENT-STATE-template.md
โ”‚   โ”œโ”€โ”€ CLAUDE-template.md
โ”‚   โ”œโ”€โ”€ RUNBOOK-template.md
โ”‚   โ”œโ”€โ”€ ISSUE-TEMPLATE.md        # ๐Ÿ†• Individual issue template
โ”‚   โ”œโ”€โ”€ ISSUES.md                # ๐Ÿ†• Issue index with dashboard
โ”‚   โ””โ”€โ”€ issues-README.md         # ๐Ÿ†• Issue system guide
โ”œโ”€โ”€ tools/                       # Automation tools ๐Ÿ†•
โ”‚   โ””โ”€โ”€ issue-manager.sh         # CLI for managing issues
โ””โ”€โ”€ config/                      # MCP configuration
    โ””โ”€โ”€ mcp-config.json          # Server configuration

MCP Tools

The MCP server provides 5 tools for Claude to query practices and templates:

Tool Description Example
list_practices List all available practices Returns list of 10 practices
get_practice Get practice content by name get_practice("task-tracking")
list_templates List all available templates Returns list of 4 templates
get_template Get template content by name get_template("TRACKER-template")
render_template Render template with variable substitution render_template("TRACKER-template", {"PROJECT_NAME": "my-project"})

Template Variable Substitution

Templates support ${VARIABLE} placeholders that are automatically substituted:

Auto-provided variables:

  • ${DATE} - Current date (YYYY-MM-DD format)
  • ${TIMESTAMP} - UTC timestamp (YYYYMMDDTHHMMz format)
  • ${USER} - Current system user
  • ${YEAR} - Current year

Custom variables: Pass any additional variables when rendering:

render_template("RUNBOOK-template", {
    "SESSION_NUMBER": "1",
    "TITLE": "Kafka Deployment",
    "CLUSTER_NAME": "example-eks-uat",
    "OBJECTIVE_DESCRIPTION": "Deploy Kafka cluster to UAT"
})

All ${...} placeholders in the template are replaced with provided values.


CI/CD Pipeline

This repository includes a GitLab CI/CD pipeline (.gitlab-ci.yml) that automatically validates changes:

Pipeline Jobs

On every merge request and commit to main/develop:

  1. health-check - Runs the comprehensive health check script
  2. python-validation - Validates Python syntax and dependencies
  3. practice-validation - Ensures all practice files exist
  4. template-validation - Ensures templates contain variable placeholders
  5. link-checker - Checks documentation cross-references

Benefits

  • โœ… Prevents breaking changes from reaching main branch
  • โœ… Catches missing files or syntax errors automatically
  • โœ… Ensures consistent quality standards
  • โœ… No manual validation needed

Pipeline Status

Check pipeline status in GitLab:

  • Green checkmark โœ… - All checks passed, safe to merge
  • Red X โŒ - Checks failed, review errors before merging

Documentation

Quick Reference

  • PRACTICE-INDEX.md - Quick lookup guide for which practice to use when
    • Organized by task type (deploying, documenting, troubleshooting, etc.)
    • Common scenarios with recommended practices
    • Practice dependencies and relationships

Migration Guide

  • MIGRATION-GUIDE.md - Roll out MCP to existing projects
    • Step-by-step migration from monolithic CLAUDE.md
    • Configuration setup for Claude Desktop/Code
    • Testing and validation procedures
    • Rollback plan if needed

Version History

  • CHANGELOG.md - Complete version history and upgrade guides
    • Version 1.0.0 (2026-02-13): 10 practices, 4 templates, health check tool
    • Version 0.1.0 (2026-02-13): Initial release

Health Check

  • health-check.sh - Validate MCP server before deployment
    • 14 comprehensive checks (directory structure, files, Python environment, loading tests)
    • Colored output with pass/fail counts
    • Exit codes: 0 (healthy), 1 (unhealthy)

Usage:

cd devops-practices-mcp
bash health-check.sh

How Projects Use This

Project CLAUDE.md Structure

Each project has a simplified CLAUDE.md:

# Claude AI Assistant - [Project Name]

## MCP Service Integration
**Shared Practices**: `devops-practices` MCP server

Claude has access to shared DevOps practices via MCP:
- Air-gapped workflow
- Documentation standards
- Session continuity protocols
- Task tracking guidelines
- Git best practices
- Efficiency guidelines

## Project-Specific: [Project Details]
[Only project-specific instructions here]

Benefits

  • DRY: Shared practices written once, used everywhere
  • Consistency: All projects follow same standards
  • Maintainability: Update once, all projects benefit
  • Discoverability: Claude can query practices when needed

Installation & Setup

Recommended Location: ~/.mcp-servers/devops-practices/

This keeps MCP servers organized and makes configuration easier. All examples below use this location.

1. Clone Repository

# Clone to recommended location
git clone <repo-url> ~/.mcp-servers/devops-practices
cd ~/.mcp-servers/devops-practices

2. Install Dependencies

Using uv (recommended - 10-100x faster):

# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install dependencies
uv pip install -r requirements.txt

Or using traditional pip:

pip install -r requirements.txt

Why uv?

  • 10-100x faster than pip
  • Better dependency resolution
  • Built in Rust for performance
  • Drop-in replacement for pip

3. Configure MCP Server

Edit ~/.config/claude/config.json (or wherever Claude config lives):

{
  "mcpServers": {
    "devops-practices": {
      "command": "python",
      "args": ["/home/<username>/.mcp-servers/devops-practices/mcp-server.py"],
      "env": {}
    }
  }
}

Note: Replace <username> with your actual username, or use the full absolute path.

3. Restart Claude Code

# Restart Claude Code to load the MCP server

4. Test Connection

Ask Claude: "Can you list the available DevOps practices?"

Claude should be able to query the MCP server and list practices.


Real-World Use Cases

1. Multi-Environment Kafka Deployment

Scenario: Deploying Kafka across dev โ†’ test โ†’ uat โ†’ prod

Without MCP:

  • Duplicate 580-line CLAUDE.md in each project
  • Repeat same issues on each environment (12 hours total)
  • No standardized approach across teams

With MCP:

  • Claude queries get_practice("configuration-management") for installation SOPs
  • Copies dev runbook for test environment (56% time savings)
  • All teams follow same standards automatically

Result: 5.25 hours vs 12 hours (56% faster)

2. Standardized Git Workflow

Scenario: Team needs consistent branching strategy

Without MCP:

  • Each project has different branching approach
  • New team members confused about workflow
  • Git practices documented differently everywhere

With MCP:

  • Claude queries get_practice("git-practices")
  • Everyone gets same 200+ line GitLab Flow documentation
  • Single source of truth for git standards

Result: Consistent workflow across all 15 projects

3. Air-Gapped Infrastructure Deployment

Scenario: Deploying to secure environment without internet

Without MCP:

  • Re-explain workflow every session
  • Copy-paste commands from old runbooks
  • Inconsistent file transfer procedures

With MCP:

  • Claude queries get_practice("air-gapped-workflow")
  • Gets step-by-step: Laptop โ†’ S3 โ†’ Bastion โ†’ Target
  • Consistent process every time

Result: Zero security incidents, predictable deployments

4. Project Documentation Setup

Scenario: Starting new infrastructure project

Without MCP:

  • Create CLAUDE.md from scratch (2 hours)
  • Copy-paste from old projects (inconsistent)
  • Miss important practices

With MCP:

User: "Create project structure for monitoring-stack project"
Claude: [Queries MCP for templates]
Claude: Creates TRACKER.md, CURRENT-STATE.md, RUNBOOK.md
        All following latest standards

Result: 15 minutes vs 2 hours (88% faster)

5. Issue Tracking for Complex Projects

Scenario: Managing 50+ work items across 3-month project

Without MCP:

  • Use external Jira (access issues, overhead)
  • Or track in scattered markdown files
  • No consistent format

With MCP:

  • Claude queries get_template("ISSUES")
  • Creates in-repo issue tracking with dashboard
  • Uses tools/issue-manager.sh for CLI management

Result: Git-based tracking, no external dependencies


Usage Examples

For Claude

When working on your projects:

Query Practice:

User: "What's the air-gapped workflow for file transfers?"
Claude: [Queries MCP: get_practice("air-gapped-workflow")]
Claude: [Receives markdown content]
Claude: "Here's the air-gapped workflow..."

Get Template (Raw):

User: "Show me the TRACKER template"
Claude: [Queries MCP: get_template("TRACKER-template")]
Claude: [Receives template with ${VARIABLES}]
Claude: "Here's the template..."

Render Template (With Variables):

User: "Create a TRACKER.md for my kafka-deployment project"
Claude: [Queries MCP: render_template("TRACKER-template", {
    "PROJECT_NAME": "kafka-deployment",
    "DATE": "2026-02-14",
    "PHASE_NAME": "UAT Deployment"
})]
Claude: [Receives rendered template with all variables substituted]
Claude: [Creates TRACKER.md with actual values]

For Uttam Jaiswal

Update a Practice:

cd devops-practices-mcp
vim practices/documentation-standards.md
# Make changes
git add practices/documentation-standards.md
git commit -m "Update documentation standards: add new RUNBOOKS guidelines"
git push
# All projects using this MCP server now get updated standards

Branching Strategy

This repository uses GitLab Flow with semantic versioning to ensure stability for dependent projects.

Branch Structure

main            โ† Production releases only (v1.0.0, v1.1.0, etc.)
  โ†‘
develop         โ† Active development, integration branch
  โ†‘
feature/*       โ† New practices, templates
release/*       โ† Version preparation (v1.2.0)
hotfix/*        โ† Critical production fixes

Branch Types

Branch Purpose Created From Merges To
main Production releases (tagged) - -
develop Active development main main (via release)
feature/* New functionality develop develop
release/* Version preparation develop main + develop
hotfix/* Critical fixes main main + develop

Why GitLab Flow?

  • โœ… Stability: main always contains tested, production-ready code
  • โœ… Safety: Changes go through develop before reaching production
  • โœ… Testing: CI/CD validates all changes before merge
  • โœ… Versioning: Clear semantic version releases (v1.0.0, v1.1.0, etc.)
  • โœ… Traceability: Full history of what changed and when

Quick Workflows

Add New Practice/Template:

git checkout develop
git checkout -b feature/add-security-practice
# Make changes, commit
git push origin feature/add-security-practice
# Create MR โ†’ develop

Create Release:

git checkout develop
git checkout -b release/v1.2.0
# Update CHANGELOG.md, version numbers
# Create MR โ†’ main
# Tag release: git tag v1.2.0
# Merge back to develop

Critical Hotfix:

git checkout main
git checkout -b hotfix/critical-bug
# Fix, commit, push
# Create MR โ†’ main (fast-track)
# Also merge to develop

Full Documentation: See CONTRIBUTING.md and git-practices.md


Governance

Who Maintains This

  • Owner: Uttam Jaiswal Lead
  • Contributors: DevOps Engineers
  • Review Process: PR required for changes

Update Protocol

For New Practices/Templates:

  1. Create feature branch from develop
  2. Update practice or template files
  3. Run health check: bash health-check.sh
  4. Update documentation (README.md, PRACTICE-INDEX.md)
  5. Create MR with description โ†’ develop
  6. Code review by team
  7. Merge to develop after CI/CD passes

For Releases:

  1. Create release branch from develop: release/v1.x.0
  2. Update CHANGELOG.md and version numbers
  3. Create MR โ†’ main
  4. Tag release after merge: git tag v1.x.0
  5. Merge release back to develop
  6. Announce to team (affects all dependent projects)

For Critical Fixes:

  1. Create hotfix branch from main: hotfix/issue-name
  2. Fix issue and test thoroughly
  3. Create MR โ†’ main (fast-track approval)
  4. Tag hotfix release: git tag v1.x.1
  5. Merge to develop to keep in sync
  6. Announce urgent fix to team

See: CONTRIBUTING.md for detailed workflows

Versioning

  • Major version (2.0): Breaking changes to structure
  • Minor version (1.1): New practices added
  • Patch version (1.0.1): Clarifications, fixes

Projects Using This MCP Server

Project Purpose Location
kafka-deployment Apache Kafka deployment Example project
observability-stack Observability stack Example project
network-infra Network infrastructure Example project

Development

See CONTRIBUTING.md for detailed contribution workflow, branching strategy, and code review process.

Adding a New Practice

  1. Create markdown file in practices/
  2. Use clear structure with examples
  3. Update mcp-server.py if needed
  4. Test with Claude
  5. Update this README (practice count)
  6. Update PRACTICE-INDEX.md (add to scenario lists)
  7. Update CHANGELOG.md (document the addition)
  8. Run health check: bash health-check.sh

Adding a New Template

  1. Create template file in templates/
  2. Use placeholders: ${PROJECT_NAME}, ${DATE}, etc. (see auto-provided variables in MCP Tools section)
  3. No code changes needed - render_template handles all ${...} substitutions automatically
  4. Test template: render_template("your-template", {"VAR": "value"})
  5. Update this README (template count)
  6. Update CHANGELOG.md (document the addition)
  7. Run health check: bash health-check.sh

Making Changes

  • Before release: Run health check to validate all files
  • After changes: Update CHANGELOG.md with version bump
  • Breaking changes: Update MIGRATION-GUIDE.md with migration notes
  • New features: Update PRACTICE-INDEX.md with usage scenarios

Troubleshooting

Claude Can't Access MCP Server

  1. Check MCP server is running: ps aux | grep mcp-server.py
  2. Check Claude config: ~/.config/claude/config.json
  3. Check file paths are absolute
  4. Restart Claude Code

Practice File Not Found

  1. Verify file exists: ls practices/
  2. Check filename matches exactly (case-sensitive)
  3. Check MCP server logs

Template Substitution Failing

  1. Verify placeholder syntax: ${VARIABLE}
  2. Check template file encoding (UTF-8)
  3. Review mcp-server.py logs

License

MIT License - Free to use and modify


Maintained By: Uttam Jaiswal Last Updated: 2026-02-17 Version: 1.3.0

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

devops_practices_mcp-1.3.0.tar.gz (65.1 kB view details)

Uploaded Source

Built Distribution

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

devops_practices_mcp-1.3.0-py3-none-any.whl (81.0 kB view details)

Uploaded Python 3

File details

Details for the file devops_practices_mcp-1.3.0.tar.gz.

File metadata

  • Download URL: devops_practices_mcp-1.3.0.tar.gz
  • Upload date:
  • Size: 65.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for devops_practices_mcp-1.3.0.tar.gz
Algorithm Hash digest
SHA256 0b8bb19f135d50fb859e26fa9670cc8a7a18d65b242c975c031f2f3b23306e45
MD5 a3c65edbde7a583d82c61a6476391af4
BLAKE2b-256 eb76b7ce2ba079792f2086ee5719bd6dcc8406f076befd0503dca2f3136d9705

See more details on using hashes here.

File details

Details for the file devops_practices_mcp-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: devops_practices_mcp-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 81.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for devops_practices_mcp-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5119cf8a69822df9dd7c309d3d45584e5e54dd8f7605c0b781dbaa6a43650ef5
MD5 2d8c68b9e0ae038d61873367964500d6
BLAKE2b-256 a66f0d1981229cfa42c97e07d0b42c8fa59b9082f1338f174d261643b935f72d

See more details on using hashes here.

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