mcp-dev-workflow
Generates branch names, validates commit messages, and drafts pull request bodies following conventions, designed to automate the Jira issue to PR lifecycle.
Click on "Deploy 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., "@mcp-dev-workflow generate a branch name for feature ABC-123: Add login"
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.
mcp-dev-workflow
An MCP server that gives AI assistants (Claude, Cursor, …) a set of deterministic, convention-enforcing tools to standardize the development workflow from issue to pull request.
These are the kind of tools an assistant calls to do something precise — generate a branch name, validate a commit, draft a PR body — rather than free-form generation. Same input, same output, every time.
Public, runnable distillation of an AI-agent workflow I built to automate the Jira issue → PR lifecycle.
Tools
Tool | What it does |
| Turn |
| Validate & normalize a Conventional Commit; returns |
| Turn a list of commits (and optional changed files) into a Markdown PR body: summary, changes grouped by type, and a checklist. |
Every tool exposes a JSON Schema for both its input and its output (structured content), so capable clients get typed results, not just text.
Related MCP server: DevFlow MCP Server
Install
The server runs over stdio and needs no install — point your MCP client at it
via npx.
Claude Desktop
Edit claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/,
Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"dev-workflow": {
"command": "npx",
"args": ["-y", "@sergiorodas/mcp-dev-workflow"]
}
}
}Cursor
Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"dev-workflow": {
"command": "npx",
"args": ["-y", "@sergiorodas/mcp-dev-workflow"]
}
}
}Restart the client and the three tools appear. Requires Node 18+.
Tool reference
branch_name
Generate a git branch name from a change type, ticket id and title.
Param | Type | Default | Notes |
| enum | — |
|
| string | — | Ticket id, e.g. |
| string | — | Short title, slugified (lowercased, accents stripped). |
| string |
| Joins id and slug, and words within the slug. |
| number | — | Optional cap; the slug is truncated to fit. |
// in: { "type": "feat", "id": "ABC-123", "title": "Add login" }
// out: "feat/ABC-123-add-login"commit_message
Validate and normalize a Conventional Commit (type(scope): subject).
Param | Type | Default | Notes |
| string | — | Commit message; the first line is the header. |
| string[] | the 11 types above | Override the accepted types. |
| number |
| Max subject length. |
| boolean |
| Make |
Checks the header format, the type, subject length, a trailing period, and hints
at non-imperative mood. Returns { valid, normalized, errors, warnings, parsed }.
// in: { "message": "feat(auth): added login." }
// out: {
// "valid": true,
// "normalized": "feat(auth): added login",
// "warnings": [
// "Subject should not end with a period.",
// "Use the imperative mood in the subject (e.g. 'add' instead of 'added'/'adds')."
// ],
// "parsed": { "type": "feat", "scope": "auth", "breaking": false, "subject": "added login" }
// }pr_checklist
Build a Markdown PR body from a list of commits.
Param | Type | Default | Notes |
| string[] | — | Commit messages (or just their headers). |
| string[] |
| Optional file list to include. |
| string | — | Optional |
Groups commits by conventional type, detects breaking changes (! or a
BREAKING CHANGE: footer), and emits a tests/docs/breaking-changes checklist.
## Summary
<!-- Describe what this PR does and why. -->
2 commits across 2 areas.
## Changes
### Features
- add login **(auth)**
### Fixes
- handle null user
## Checklist
- [ ] Tests added or updated
- [ ] Documentation updated
- [x] No breaking changes
- [ ] Self-reviewed the diffDevelopment
This project dogfoods the conventions it preaches.
npm install
npm run dev # run the server from source (tsx)
npm run typecheck # tsc --noEmit
npm test # vitest
npm run build # tsup -> dist/Architecture: pure logic lives in src/lib/ as plain,
unit-tested functions with no MCP coupling; src/tools/ wraps
each one in an MCP tool definition with a zod schema;
src/index.ts registers them on the stdio server.
License
MIT © Sergio Rodas
Available Tools
3 toolsbranch_nameBranch nameA
Generate a convention-following git branch name from a change type, ticket id and title. Example: {type:'feat', id:'ABC-123', title:'Add login'} => feat/ABC-123-add-login.
Inputs: id (required), type (required), title (required), maxLength, +1 more. Returns: id, slug, type, branch
commit_messageCommit messageA
Validate and normalize a Conventional Commit message (type(scope): subject). Returns { valid, normalized, errors, warnings, parsed } and flags type, length and imperative-mood issues.
Inputs: message (required), allowedTypes, requireScope, maxSubjectLength. Returns: valid, errors, parsed, warnings, +1 more
pr_checklistPR checklistA
Build a Markdown pull-request body from a list of commits (and optional changed files): a summary, a change list grouped by conventional type, and a checklist (tests, docs, breaking changes).
Inputs: commits (required), title, changedFiles. Returns: body, breaking
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool targets a distinct stage of the development workflow: branch name generation, commit message validation/normalization, and PR checklist construction. There is no overlap in purpose, so an agent can easily select the right tool based on the task.
All tool names follow the same lowercase_with_underscore pattern and are noun phrases indicating the artifact they handle: branch_name, commit_message, pr_checklist. This consistent convention makes the API predictable and easy to navigate.
With only three tools, the server is tightly scoped to a specific development workflow without unnecessary clutter. Each tool serves a clear, non-redundant purpose within that scope, making the count appropriate for the server's stated function.
The tools cover the essential lifecycle of a conventional development workflow: creating a branch, validating commit messages, and assembling a pull request. A minor gap is the lack of a tool to generate a commit message from a diff, but the validation tool provides sufficient coverage for enforcing conventions.
Maintenance
Related MCP Connectors
Zero-log MCP server with 49 tools for AI guardrails, secret scanning, MCP linting & EU compliance.
491MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server that provides AI assistants with comprehensive GitHub developer tooling including PR analysis, code review, changelog generation, dependency auditing, commit summarization, and refactoring suggestions.7 npmISC
- AlicenseBqualityBmaintenanceMCP server that integrates DevFlow with AI code assistants to enforce structured development workflows including planning, task tracking, and code review gates.6533 npm1MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that adds engineering discipline to AI-assisted development, enforcing evidence-gated TDD, security review, backup strategy, and deployment generation to turn AI-generated code into production-ready software.5 npm11MIT
- AlicenseAqualityDmaintenanceMCP server for developer workflow automation — smart commits, secret scanning, PR descriptions, and more.5MIT