Enterprise SDLC MCP
This MCP server provides programmatic access to a catalog of build-time SDLC agent roles and skill checklists for AI-assisted software development, along with project manifest integration and review launching.
List agents:
list_agentsreturns all agent role definitions (e.g.,product-analyst,code-reviewer) with metadata, including permissions and optional manifest-resolvedwrite_pathsfor CI/CD enforcement.Get agent:
get_agentfetches a fully resolved markdown definition for a specific agent, substituting{{project.*}}placeholders using an optional project manifest.List skills:
list_skillsreturns all SDLC skill checklists (e.g.,pr-code-review,architecture-review) withapplies_whentags for filtering.Get skill:
get_skillreturns the resolved markdown checklist for a specific skill, with placeholders filled from the manifest.Project overlay skills:
list_project_skillsandget_project_skillmanage domain-specific skills stored in the project’s.skills/directory.Project manifest:
get_project_manifestreturns the parsedsdlc.project.yamlused for placeholder resolution;validate_manifest(may not be exposed in all versions) checks for missing core/conditional keys.Launch reviews: Prompts like
independent_code_review,architecture_review, andlaunch_rolestart subagent review sessions for any agent/skill pair.Resources: Resources under
enterprise-sdlc://expose the catalog manifest, individual agents, and skills.CI/CD integration: Agent
write_pathscan be resolved against a manifest to enforce that PR changes stay within allowed modification paths.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Enterprise SDLC MCPreview PR #42 using the code reviewer agent"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Enterprise SDLC MCP
Reusable build-time SDLC agent roles and skills, served over the Model Context Protocol (MCP), for any GitHub-first, AI-assisted software project.
This is build-time tooling for how software gets delivered — agent role definitions (Product Analyst, Solution Architect, Code Reviewer, etc.) and generic review checklists (PR review, architecture review, IAM least-privilege, eval-scenario design, ...). It is not a runtime dependency of any product; consuming repos only need it while an AI coding agent is doing SDLC work.
Origin
This package was extracted (with git history) from support-ticket-triage-assistant, where it was first built and used as the reference implementation. It now also serves supportrouter-aws. Extracting it removed a fragile cross-repo coupling where a second project pointed directly at the first project's virtualenv and folder path.
Related MCP server: speckitmcp
What's in the catalog
9 agents:
product-analyst,solution-architect,implementation-planner,test-eval-designer,code-reviewer,refactor-reviewer,documentation-agent,release-manager,dependency-upgrade-agent.29 skills: generic SDLC checklists (
pr-code-review,architecture-review,github-backlog-creation,release-readiness-review,application-security-review,dependency-supply-chain-review,cicd-pipeline-review,api-contract-review,incident-postmortem-review, ...) plus stack-specific technical checklists (cdk-stack-review,cloud-infra-review,iam-least-privilege-review,bedrock-guardrails-review,dynamodb-data-model-review,fastapi-service-review,frontend-accessibility-review,llm-as-judge-rubric-design,eval-scenario-design,synthetic-data-design, ...).
See enterprise_sdlc_mcp/catalog/manifest.yaml for the full index.
Every skill declares an applies_when tag so a consuming project can tell which ones are actually relevant to it, independent of the fixed used_by agent-role list:
Tag | Meaning |
| Generic SDLC guidance — relevant to any project regardless of stack. |
| Only relevant if the project exposes an API surface (REST/GraphQL/RPC), independent of framework. |
| Only relevant if the project has a frontend/UI surface. |
| Only relevant if the project provisions cloud/infra resources (any provider). |
| Only relevant if the product itself is LLM-backed at runtime (not just built with an AI coding agent). |
| Only relevant once that specific technology has been adopted — see the skill's own file for its "applies only if/when adopted" note. |
list_skills() returns applies_when for each entry so tooling (or an agent) can filter to what matters for a given project.
Every agent also declares a machine-readable permissions block — a structured companion to the prose "Code-Modify Permission" section in its own markdown — with a code_modify tier (none / scoped / conditional) and a write_paths allowlist. list_agents() returns this so tooling (a pre-merge hook, a CI gate) can check a PR's actually-changed files against what the authoring role was supposed to touch, instead of relying on someone reading prose. Pass manifest_path to list_agents() to get write_paths resolved against a real project instead of raw {{project.*}} placeholders.
Catalog markdown uses {{project.*}} placeholders resolved at serve time from each consuming repo's own sdlc.project.yaml manifest — deterministic string substitution, no LLM involved. See enterprise_sdlc_mcp/catalog/manifest_keys.yaml for the full, tested reference of every key the catalog can use (which keys are required for any project vs. only needed for a specific stack-tagged skill).
Installing into a consuming project
This is designed to be installed editable, from a local sibling checkout, into each consuming project's own virtualenv — never referenced across repos by path.
# from the consuming project's own repo, with its own .venv active
git clone https://github.com/raghuram-chittibomma/enterprise-sdlc-mcp.git ../enterprise-sdlc-mcp
pip install -e ../enterprise-sdlc-mcpStarting a brand-new project? Copy templates/new-project/ into the repo root instead of building this by hand — it ships a filled-out sdlc.project.yaml, AGENTS.md, .cursor/mcp.json, the docs/00_project–docs/03_operations skeleton every core doc key points at, a .skills/ overlay stub, and .github/ PR/issue templates + a CI workflow. It's the same folder structure support-ticket-triage-assistant and supportrouter-aws already converged on by hand, now codified so a new repo gets it for free. See templates/new-project/README.md for the checklist.
Adding this to an existing repo instead? Add an sdlc.project.yaml manifest at the consuming repo's root (see tests/fixtures/sdlc.project.yaml for the shape) and enable the server in the consuming repo's .cursor/mcp.json:
{
"mcpServers": {
"enterprise-sdlc": {
"command": "C:\\absolute\\path\\to\\consuming-project\\.venv\\Scripts\\python.exe",
"args": ["-m", "enterprise_sdlc_mcp.server"],
"env": {
"SDLC_PROJECT_MANIFEST": "C:\\absolute\\path\\to\\consuming-project\\sdlc.project.yaml"
}
}
}
}Use absolute paths for both command and SDLC_PROJECT_MANIFEST. A relative command (e.g. .venv/Scripts/python.exe) is not reliably resolved against the workspace root by Cursor on Windows — it can silently fall back to the global interpreter on PATH, which won't have this package installed and fails with ModuleNotFoundError. Absolute paths avoid that ambiguity entirely. (On Linux/macOS use .venv/bin/python; the same relative-path caveat may not apply there, but absolute paths are still the safer default.)
No PYTHONPATH tricks are needed once the package is pip-installed into that project's own venv — just point command at that venv's own interpreter.
Already have this installed somewhere and just want to pick up a new version? See ROLLOUT.md for the upgrade checklist instead of repeating first-time setup.
Project manifest reference
sdlc.project.yaml keys used by the core (always-tier) agents/skills — define these regardless of stack:
display_name, repo_root, docs.architecture, docs.data_model, docs.test_strategy, docs.product_brief, docs.orchestrator_brief, docs.project_charter, docs.release_notes, docs.runbook, paths.source, paths.tests, paths.evals, paths.project_skills, milestone.current, extensions.
A handful of keys are conditional — only needed if you invoke the specific stack-tagged skill that reads them (e.g. paths.infra for cdk-stack-review, docs.eval_strategy for llm-as-judge-rubric-design). See enterprise_sdlc_mcp/catalog/manifest_keys.yaml for the complete, tested list with descriptions and exactly which skill each conditional key belongs to.
An unresolved placeholder — a missing manifest key referenced by a skill you actually call — is a real gap: it leaks literal {{project.x}} text into the resolved output instead of failing loudly. Call the validate_manifest tool against your own sdlc.project.yaml to check which core/conditional keys are missing before that happens. tests/test_manifest_keys.py separately guards against catalog changes introducing an undocumented key.
MCP surface
Tool | Description |
| Catalog agent IDs, titles, source file, and |
| Resolved agent role markdown for a project |
| Catalog skill IDs, titles, and |
| Resolved skill checklist for a project |
| Domain skills from the project's own overlay path |
| Read a project-local overlay skill file |
| Parsed project manifest |
| Report which core/conditional |
Prompt | Use |
| Launch a Code Reviewer subagent with resolved role + |
| Launch a Solution Architect / Refactor Reviewer review pass |
| Generic: launch any agent id with any comma-separated list of skill ids and free-text context — use this instead of adding a new hardcoded prompt function per pairing |
Resources are also exposed under enterprise-sdlc://catalog/manifest, enterprise-sdlc://agents/{id}, and enterprise-sdlc://skills/{id}.
Hooks
MCP has no concept of hooks — a server can't register lifecycle interceptors the way it registers tools/prompts/resources (see .cursor/hooks.json for what Cursor's hooks actually are: local, beforeShellExecution/afterFileEdit/etc.-triggered scripts, distributed via version control, MDM, or an Enterprise team dashboard — never via MCP).
This repo ships one project-level hook, in .cursor/hooks.json (and mirrored into templates/new-project/.cursor/): beforeShellExecution flags gh pr merge and asks for confirmation that the required independent review (get_agent("code-reviewer") + get_skill("pr-code-review")) actually happened, since that step is otherwise only enforced by whoever remembers to read AGENTS.md/this README. It's a reminder, not a hard block — it can't verify the review actually ran, only ask.
That's deliberately the only hook shipped here. Broader safety hooks (destructive-git guard, dangerous-shell-command guard, secret-staging guard) are a good idea but belong at the user level (~/.cursor/hooks.json), not per-project — they're personal safety nets that should apply across every repo you touch, not something each consuming project should have to opt into separately.
Development
pip install -e ".[dev]"
ruff check .
pytestChangelog
0.7.0
Added the first Cursor hook to this repo, after establishing (see "Hooks" section above) that MCP and hooks are separate mechanisms — a catalog server can't push hook definitions to a client, so this had to ship as an actual .cursor/hooks.json, not new MCP server code.
Added
.cursor/hooks.json+.cursor/hooks/pr_merge_gate.py: abeforeShellExecutionhook that asks for confirmation beforegh pr mergeruns, reminding whoever's merging that the independent-review requirement (get_agent("code-reviewer")+get_skill("pr-code-review")) should already be satisfied. Mirrored intotemplates/new-project/.cursor/so new consuming repos get it for free.Added
tests/test_hooks.py, which runs both copies of the hook script as real subprocesses (matching Cursor's own JSON-over-stdin/stdout contract) and checkshooks.jsonpoints at a script that actually exists.Also fixed two blank-rendering list items introduced in the 0.6.0 scaffold docs (an ordered/bulleted list item whose entire content was an HTML comment rendered as an empty list marker on GitHub) in
AGENTS.md,PROJECT_CHARTER.md, andAI_ORCHESTRATOR_BRIEF.md.
0.6.0
Closed the "new project scaffolding" gap: nothing previously codified how a brand-new consuming repo's folder structure should look, so validate_manifest could report a manifest as fully valid while every docs.* path it declared pointed at a file that was never created.
Added
templates/new-project/— a starter kit a new repo copies in wholesale: a filled-outsdlc.project.yaml(core keys pre-filled, conditional keys commented out with guidance),AGENTS.md,.cursor/mcp.json, thedocs/00_project–docs/03_operationsskeleton (one starter file per coredocs.*key, plus an ADR convention note underdocs/01_architecture/DECISIONS/), a.skills/project-overlay stub, and.github/templates (PR template,story/feature_task/bug_reportissue templates matching thegithub-backlog-creationskill's Story→Task hierarchy, and a ruff+pytest CI workflow).This codifies, rather than invents, the convention: it matches the folder structure
support-ticket-triage-assistantandsupportrouter-awsalready converged on by hand — the difference is a third project no longer has to reverse-engineer it from an existing consumer.Added
tests/test_new_project_template.py, which fails CI if the shipped template ever drifts frommanifest_keys.yaml's core key contract, or if adocs.*path in the template manifest stops pointing at a real file in the scaffold.Updated the "Installing into a consuming project" section to point brand-new projects at the scaffold before the manual first-time-setup steps.
0.5.0
Addressed external review feedback on the two highest-priority remaining gaps: the core PR review skill had no actual review rigor, and code-modify permissions existed only as prose.
Rewrote
pr-code-review.mdfrom a 6-item process-compliance checklist into a substantive correctness review: a Blocker/Major/Minor severity model, a mandatory evidence rule (cite file+line, quote the offending code — an unsupported claim isn't a finding), a correctness checklist (edge cases, error handling, concurrency, resource cleanup, external-call failure handling), and an explicit## Output Formatwith an always-rendered "None." path so a clean PR is stated as a real outcome, not implied by silence. The prior process checklist is retained as its own section.Updated
code-reviewer.md's Outputs/Allowed Actions to match: findings are severity-tagged with cited evidence, and a verdict (Approve/Request Changes) is always explicit.Added a structured
permissionsblock (code_modify:none/scoped/conditional, plus awrite_pathsallowlist) to every agent inmanifest.yaml, alongside — not replacing — each agent's existing prose "Code-Modify Permission" section.list_agents()now returns it, and can resolvewrite_pathsagainst a real project manifest when one is passed in, so a CI gate or pre-merge hook can allowlist a PR's changed files against what the authoring role is actually meant to touch.Added
test_every_agent_declares_well_formed_permissionstotests/test_catalog_consistency.py, enforcing thecode_modify/write_pathsshape (e.g.nonemust have an empty allowlist;scoped/conditionalmust have a non-empty one).Deliberately did not extend the severity/evidence/output-format convention to the other 15+ review-style skills yet — scoped to the flagged highest-priority file for now; worth revisiting as a separate pass.
0.4.0
Rounds out the tightening roadmap's P2 items plus the two previously-unscheduled gap items.
Added
dependency-upgrade-agent— a 9th agent role that plans and executes dependency/runtime version upgrades as their own isolated, tracked workflow (distinct fromrefactor-reviewer, which is structure-focused, and fromdependency-supply-chain-review, which is a review checklist rather than an execution role).Added
incident-postmortem-review(blameless postmortems, root cause vs. contributing factors, tracked follow-ups),frontend-accessibility-review(keyboard operability, alt text, contrast, screen-reader-perceivable state), andcloud-infra-review(a vendor-neutral infra baseline above the AWS-onlycdk-stack-review, which is now also taggedinfra).Added a
validate_manifesttool that reports which core/conditional{{project.*}}keys a project's own manifest is missing, instead of only discovering the gap when a placeholder leaks into a live prompt.Added a generic
launch_roleprompt (agent id + comma-separated skill ids + free-text context) so new agent/skill pairings don't require new hardcoded prompt functions inserver.py. The two existing convenience prompts are unchanged.Added
tests/test_catalog_consistency.py, which fails CI if a skill'smanifest.yamlused_bylist and its own markdown "Used by:" line ever drift apart, or ifused_byreferences an agent id that doesn't exist.Added
frontendandinfraapplies_whentags.Added
ROLLOUT.md— a version-agnostic checklist for upgrading a consuming repo'senterprise-sdlc-mcpinstall (or onboarding a new one), since that step had never been written down anywhere before now.
0.3.0
Closed the biggest coverage gaps identified in the tightening review — areas relevant to virtually any consuming project, unlike the AWS/LLM-specific skills already in the catalog.
Added
application-security-review— cloud/stack-agnostic secrets, input validation, authn/authz, and error-leakage checklist (complements the AWS-onlyiam-least-privilege-review/bedrock-guardrails-review).Added
dependency-supply-chain-review— lockfile pinning, CVE triage, license compliance, and Dependabot/Renovate PR review. No skill covered this before.Added
cicd-pipeline-review— vendor-neutral pipeline health checklist (required checks, secrets in CI, caching, flaky-check handling), independent ofcdk-stack-review's AWS-only infra focus.Added
api-contract-review— a generic REST/GraphQL contract checklist decoupled from any framework;fastapi-service-reviewis now tagged as its FastAPI-specific complement (applies_when: [fastapi, api]).All four are used by the existing Solution Architect and Code Reviewer agents (plus Release Manager for
cicd-pipeline-review) — no new agent role was added.Added the
apiapplies_whentag for skills that only apply when a project exposes an API surface.
0.2.0
A tightening pass focused on keeping the catalog genuinely reusable across unrelated projects, not just its two current consumers. No agent/skill ids, file paths, or manifest keys were removed or renamed — existing consuming repos are unaffected by upgrading.
Removed origin-project-specific details (support-ticket-triage domain language, hardcoded
ADR-004/ADR-005references) fromdynamodb-data-model-review,iam-least-privilege-review,eval-scenario-design,architecture-review,synthetic-data-design,observability-dashboard-review,bedrock-guardrails-review,cdk-stack-review,llm-as-judge-rubric-design, andprompt-caching-reviewso they read as genuinely generic (or genuinely generic-to-their-stack) guidance instead of one project's architecture presented as a universal rule.Genericized "Main Orchestrator" — previously an undefined, assumed-to-exist actor referenced across 7 agent/skill files — to "the coordinating agent (or human driving the session)".
Added an
applies_whentag to every skill inmanifest.yaml(always, or a stack tag likeaws/dynamodb/bedrock/langgraph/rag/fastapi/postgresql/llm-product), now returned bylist_skills().Documented the full
{{project.*}}placeholder contract incatalog/manifest_keys.yaml(required vs. conditional keys, and which skill needs each conditional one).Expanded
tests/fixtures/sdlc.project.yamlto define every documented key, and addedtests/test_manifest_keys.py, which fails CI if a catalog file ever references an undocumented placeholder or if any catalog file fails to resolve cleanly against the fixture manifest.
License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceMCP server that equips AI agents with dev workflow tools including GitHub project management, conventional commits, visual regression testing, Jira/Confluence integration, and a persistent memory knowledge graph.Last updated13MIT
- Alicense-qualityDmaintenanceMCP server that integrates GitHub Spec-Kit with AI coding agents to manage Spec-Driven Development workflows, including specification authoring, planning, task generation, and consistency analysis.Last updated1MIT
- Alicense-qualityAmaintenanceExposes a governed, provenance-grounded autonomous delivery pipeline as an MCP server, enabling AI coding assistants like Claude Code or Codex to initiate requirements-to-PR workflows with human approval gates and full audit.Last updated7MIT
- Flicense-qualityBmaintenanceMCP server for AI DevTool workflow, exposing tools and resources for code review, repository chat, and repository operations.Last updated1
Related MCP Connectors
Hosted MCP for creating, checking, deploying, and hosting static sites for AI agents.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/raghuram-chittibomma/enterprise-sdlc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server