Skip to main content

MCP server for developer workflow automation — smart commits, secret scanning, PR descriptions, and more.

Project description

DevNarrate

GitHub Repo Release

MCP server for developer workflow automation — smart commits, secret scanning, PR descriptions, and more.

Features

  • Smart Commit Messages with user approval
  • Secret Scanning — detect API keys, tokens, passwords, and private keys before they reach your repo (25+ detectors via detect-secrets)
  • PR Descriptions driven by customizable templates
  • GitHub & GitLab support for PR flows
  • Token-aware diff handling with automatic pagination
  • Safety-first workflow by requiring staged changes

Installation (PyPI)

pip install devnarrate

# Install pre-release builds
pip install --pre devnarrate

Register the MCP server

Use the Python interpreter from the environment where you ran pip install (e.g. /path/to/venv/bin/python). Capture it once and reuse:

PYTHON_BIN=$(python -c 'import sys; print(sys.executable)')

# Claude Code (global scope)
claude mcp add --scope user DevNarrate -- "$PYTHON_BIN" -m devnarrate.server

# Claude Code (project scope)
claude mcp add DevNarrate -- "$PYTHON_BIN" -m devnarrate.server
  • Cursor (~/.cursor/mcp.json):
{
  "mcpServers": {
    "DevNarrate": {
      "command": "/path/to/venv/bin/python",
      "args": ["-m", "devnarrate.server"]
    }
  }
}

Restart Cursor after editing the config.

Usage

Commit Messages

DevNarrate works entirely off staged changes:

git add <file1> <file2>
# stage everything tracked:
git add -u

Then ask Claude (or Cursor):

Generate a commit message for my changes

DevNarrate summarizes the diff, proposes a conventional commit, and waits for approval before committing.

Secret Scanning

Secret scanning runs automatically when you ask for a commit message. DevNarrate scans staged diffs for API keys, tokens, passwords, and private keys. If secrets are found, you're warned before committing. Suppress false positives with an inline # pragma: allowlist secret comment.

PR Descriptions

  1. Ask Claude: "Create a PR to main from my current branch"
  2. Choose a template if you have custom ones in .devnarrate/pr-templates/
  3. Review the generated PR description and approve to let DevNarrate call gh or glab

Example template (.devnarrate/pr-templates/feature.md):

## Summary
[What does this PR do?]

## Changes
-
-

## Testing
[How to test]

## Related Issues
[Links]

If no custom template exists, DevNarrate uses a sensible default.

Platform Requirements

  • Commits: only needs git
  • GitHub PRs: install gh and run gh auth login
  • GitLab PRs: install glab and run glab auth login

Links

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

devnarrate-0.1.0a5.tar.gz (74.2 kB view details)

Uploaded Source

Built Distribution

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

devnarrate-0.1.0a5-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file devnarrate-0.1.0a5.tar.gz.

File metadata

  • Download URL: devnarrate-0.1.0a5.tar.gz
  • Upload date:
  • Size: 74.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devnarrate-0.1.0a5.tar.gz
Algorithm Hash digest
SHA256 05c8f66173fefb82571959e9be7883735eed19defd40b1c4d498f504e7f72c64
MD5 5481d9ac983bce9727b14d97bf95d510
BLAKE2b-256 8d43f0ae6595ad93259d449c3654c1714549d1b8af9dd1ee4b71505d24cde4c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for devnarrate-0.1.0a5.tar.gz:

Publisher: publish.yml on kmandana/DevNarrate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devnarrate-0.1.0a5-py3-none-any.whl.

File metadata

  • Download URL: devnarrate-0.1.0a5-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for devnarrate-0.1.0a5-py3-none-any.whl
Algorithm Hash digest
SHA256 c282482c962dcc9d55c13565cf8974263ac177fcb725abfbd9da55b21122e783
MD5 9fdaadde6a1ccc10ffaa87bfc5150b1c
BLAKE2b-256 40d30e7f40abeccc1990abd45ad001f4b5455df7f27487a01c1e3a8118b28582

See more details on using hashes here.

Provenance

The following attestation bundles were made for devnarrate-0.1.0a5-py3-none-any.whl:

Publisher: publish.yml on kmandana/DevNarrate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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