Skip to main content
Glama
sdlc-workflow-mcp

sdlc-workflow-mcp

by Tingsum26

sdlc-workflow-mcp

A standalone stdio Model Context Protocol server that exposes a bounded, fictional-data slice of the SDLC workflow tools for local Copilot use.

Provenance: extracted from Tingsum26/sdlc-agent-platform at the seven-repo-split-baseline tag (commit bf48e15), source path apps/workflow-mcp. This repository is one slice of the seven-repository split described in the platform BOM (docs/platform-bom.yaml).

What this is

  • A TypeScript MCP server (stdio transport) that proxies a bounded set of workflow tools to a local Workflow Service over HTTP.

  • All fixtures are fictional (example.invalid, REPO_A, DEMO-123, EPIC-DEMO-1, fictional identities). There is no model client, no credentials, and no real company data in this slice.

Related MCP server: io.github.readyagentsdev/readyagents

What this is not (registered gap)

The full approved tool catalog in the platform BOM is larger than this slice. This repository registers only the subset implemented in the apps/workflow-mcp vertical slice at split time (workflow tasks, internal-readiness, epic/ticket/repo-task, change-request, and journey tools). Remaining catalog tools are tracked in the originating platform BOM and its migration map, not here.

Tool catalog

42 tools are registered, grouped below. Per-tool source endpoints and local-derivation fallbacks are documented in docs/tool-catalog.md.

workflow (task, ticket, epic, decision, artifact, and Jira-projection operations):

workflow_list_my_tasks, workflow_get_task_context, workflow_get_task_audit, workflow_claim_task, workflow_submit_artifact, workflow_request_approval, workflow_complete_task, workflow_get_identity, workflow_validate_pod_roster, workflow_import_pod_roster, workflow_get_integration_diagnostics, workflow_analyze_journey, workflow_get_next_internal_validation, workflow_epic_create, workflow_epic_activate, workflow_epic_attach_ticket, workflow_ticket_advance, workflow_ticket_add_repo_task, advance_repo_task, workflow_epic_add_dependency, workflow_epic_create_change_request, workflow_epic_approve_change_request, workflow_task_skip, workflow_epic_resume, workflow_epic_join, workflow_get_related_artifacts, workflow_submit_decision, workflow_assign_work, workflow_report_blocker, workflow_record_manual_e2e, workflow_record_accessibility_result, workflow_record_tagging_result, workflow_prepare_jira_projection.

onboarding-context (repository/journey onboarding, context scan, graphs, freshness, staleness):

workflow_get_freshness, workflow_onboard_repository, workflow_onboard_journey, workflow_sync_onboarding_artifact, workflow_scan_repository_context, workflow_analyze_http_dependencies, workflow_get_repository_graph, workflow_get_journey_graph, workflow_mark_context_stale.

Prerequisites

  • Node.js >= 20.19.0

  • pnpm

Build and test

pnpm install
pnpm build
pnpm test

Starting the stdio server

The server requires a Workflow Service URL and speaks MCP over stdio:

pnpm install
pnpm build
WORKFLOW_SERVICE_URL=http://127.0.0.1:8080 node dist/index.js

Environment variables:

Variable

Required

Description

WORKFLOW_SERVICE_URL

yes

Base URL of the local Workflow Service (e.g. http://127.0.0.1:8080).

WORKFLOW_DEMO_USER

no

Demo identity; allowed only when the service host is loopback.

On startup failure or missing configuration, the server writes a structured JSON diagnostic to stderr and exits with code 2.

Layout

  • src/ — MCP server, API client, diagnostics, and tool registration.

  • test/ — vitest suite covering tool discovery, correlation IDs, audit visibility, safe error mapping, cancellation, and stderr redaction.

Available Tools

42 tools
advance_repo_taskC

Advance a repo task through planning, pull request, and merge with an exact version.

Inputs: target (required), repoTaskId (required), expectedVersion (required).

workflow_analyze_http_dependenciesC
Read-only

Analyze cross-service HTTP dependencies from a journey manifest.

Inputs: manifest (required).

workflow_analyze_journeyC
Read-only

Run deterministic cross-repository Journey contract and evidence-gap analysis.

Inputs: manifest (required).

workflow_assign_workC

Assign a task to a bound identity with a declared actor role.

Inputs: taskId (required), actorRole (required), assigneeId (required).

workflow_claim_taskB

Claim a task with a bounded lease before local Copilot reasoning begins.

Inputs: taskId (required), expectedVersion (required), leaseMinutes.

workflow_complete_taskC

Confirm the current local result and advance it to its next persisted gate.

Inputs: taskId (required), expectedVersion (required).

workflow_epic_activateC

Activate a CREATED epic before attaching tickets.

Inputs: epicId (required), expectedVersion (required).

workflow_epic_add_dependencyC

Record a REQUIRES_BEFORE dependency between two tickets of one epic.

Inputs: epicId (required), toTicketId (required), fromTicketId (required).

workflow_epic_approve_change_requestC

Approve a change request as BUSINESS_OWNER or TECHNICAL_OWNER; both roles are required.

Inputs: actorRole (required), changeRequestId (required), expectedVersion (required).

workflow_epic_attach_ticketC

Attach a channel ticket (API/WEB/IOS/ANDROID) to an active epic.

Inputs: epicId (required), channel (required), ticketId (required).

workflow_epic_createC

Create a fictional Epic workflow aggregate.

Inputs: title (required), epicId (required), journeyId (required).

workflow_epic_create_change_requestC

Create an emergency change request against an epic.

Inputs: epicId (required), reason (required), urgency (required), description (required), +1 more.

workflow_epic_joinC

Join an epic as an active participant with a declared role.

Inputs: epicId (required), actorRole (required).

workflow_epic_resumeA
Read-only

Read persisted epic state, open tasks, next actions, and the audit trail after a shutdown.

Inputs: epicId (required).

workflow_get_freshnessC
Read-only

Read the freshness (staleness) of journey and repository context.

Inputs: journeyId.

workflow_get_identityB
Read-only

Read the bound enterprise identity. GitHub membership is not required for non-coding Scrum Masters.

Inputs: no named parameters.

workflow_get_integration_diagnosticsB
Read-only

Read evidence-labelled Jira, Confluence, GHES, Jenkins, and Splunk diagnostics with observation time.

Inputs: no named parameters.

workflow_get_journey_graphB
Read-only

Build a deterministic journey graph (repositories, screens, http edges) from a manifest.

Inputs: journeyId (required).

workflow_get_next_internal_validationC
Read-only

Read the next company-network validation action; it never claims simulated evidence is real.

Inputs: no named parameters.

workflow_get_repository_graphC
Read-only

Build a deterministic repository dependency graph from a journey manifest.

Inputs: journeyId (required).

workflow_get_task_auditB
Read-only

Read the valid task audit stream. Compensated and invalidated events are excluded by Workflow Service.

Inputs: taskId (required).

workflow_get_task_contextB
Read-only

Read the persisted task state before starting or resuming local Copilot work.

Inputs: taskId (required).

workflow_import_pod_rosterB

Persist a validated Pod roster only after explicit human confirmation.

Inputs: confirmed (required), journeyId (required), memberships (required), expectedRevision (required).

workflow_list_my_tasksB
Read-only

List persisted workflow tasks visible to the current user.

Inputs: no named parameters.

workflow_mark_context_staleA

Mark journey or repository context as stale to force re-onboarding.

Inputs: no named parameters.

workflow_onboard_journeyC

Onboard a journey into the local workflow context from its manifest.

Inputs: journeyId (required), manifest.

workflow_onboard_repositoryC

Onboard a repository into the local workflow context.

Inputs: repositoryAlias (required), journeyId, repositoryUrl.

workflow_prepare_jira_projectionB
Read-only

Prepare a local Jira projection from persisted tickets without calling Jira.

Inputs: epicId (required), targetBoard.

workflow_record_accessibility_resultC

Record a manual or automated WCAG accessibility check result for a task.

Inputs: result (required), taskId (required), evidenceNotes (required), wcagLevel.

workflow_record_manual_e2eC

Record a manual end-to-end verification result without fabricating automation evidence.

Inputs: result (required), taskId (required), executedBy (required), evidenceNotes (required).

workflow_record_tagging_resultC

Record a bounded content-tagging or taxonomy classification result for a task.

Inputs: tags (required), taskId (required), source.

workflow_report_blockerC

Report a blocker against a ticket with a typed reason and bounded description.

Inputs: ticketId (required), blockerType (required), description (required).

workflow_request_approvalC

Record a human approval for an exact artifact and task version.

Inputs: taskId (required), artifactId (required), artifactVersion (required), expectedTaskVersion (required).

workflow_scan_repository_contextC
Read-only

Scan and summarize repository context for onboarding or graph building.

Inputs: journeyId (required).

workflow_submit_artifactC

Persist a structured, human-readable workflow artifact produced by local Copilot.

Inputs: type (required), taskId (required), sections (required), artifactId (required), +1 more.

workflow_submit_decisionC

Persist a bounded architectural or product decision (ADR-style) for a journey.

Inputs: title (required), chosen (required), context (required), options (required), +4 more.

workflow_sync_onboarding_artifactC

Sync an onboarding artifact (e.g. CONTEXT.md) to the workflow service.

Inputs: content (required), artifactType (required), journeyId, repositoryAlias.

workflow_task_skipC

Skip a stage with a persisted attestation (reason, discussed-with, actor role).

Inputs: reason (required), taskId (required), actorRole (required), expectedVersion (required), +1 more.

workflow_ticket_add_repo_taskC

Create a repo-level implementation task under a ticket.

Inputs: ticketId (required), baseCommit (required), repositoryAlias (required).

workflow_ticket_advanceC

Advance a ticket along its delivery status machine with an exact version.

Inputs: target (required), ticketId (required), expectedVersion (required).

workflow_validate_pod_rosterC
Read-only

Validate a bounded Pod roster without persisting it.

Inputs: journeyId (required), memberships (required), expectedRevision (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 42 tools

    Disambiguation3/5

    While most tools have distinct verbs and resources, there is overlap among the many graph/onboarding/analysis tools (e.g., workflow_get_repository_graph, workflow_get_journey_graph, workflow_analyze_journey, workflow_analyze_http_dependencies) and between workflow_ticket_advance and advance_repo_task. Descriptions help clarify, but the sheer number of similar read/analysis operations could still lead to misselection.

    Naming Consistency3/5

    All names use snake_case, but the ordering is inconsistent: some follow workflow_<entity>_<action> (workflow_epic_create) while others follow workflow_<action>_<object> (workflow_get_task_context). One tool (advance_repo_task) also lacks the workflow_ prefix, making the convention mixed though still readable.

    Tool Count2/5

    42 tools far exceeds the 3-15 sweet spot and the rubric's 25+ threshold for 'too many,' making the surface heavy even for a complex SDLC domain. While each tool may have a distinct purpose, the volume increases cognitive load and selection risk.

    Completeness4/5

    The set covers a broad SDLC workflow lifecycle: epic/ticket/task creation, advancement, approvals, artifacts, decisions, blockers, onboarding, graphs, diagnostics, and identity. Some gaps exist (e.g., no explicit list/get for epics or tickets beyond task context), but core workflows are well-supported.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers