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

  • Change Review — understand AI-generated code changes before committing with narrative summaries, goal alignment, and attention guides
  • 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.

Change Review

After an AI assistant makes changes, ask it to review them before committing. DevNarrate presents a layered summary: narrative overview, goal grouping (known, inferred, unrecognized), and an attention guide highlighting what needs human review.

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.0a6.tar.gz (87.1 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.0a6-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: devnarrate-0.1.0a6.tar.gz
  • Upload date:
  • Size: 87.1 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.0a6.tar.gz
Algorithm Hash digest
SHA256 6b0c3223bb04af75c17475e7a651196fe2dab7dccf31190ac03b6f3994d317df
MD5 c29b6ed8f0dd8139ceec31c8335cf6e1
BLAKE2b-256 e3bf14601a13287b66292a1368ddaaaf23c20b21938953b756d9bc6a23e65a32

See more details on using hashes here.

Provenance

The following attestation bundles were made for devnarrate-0.1.0a6.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.0a6-py3-none-any.whl.

File metadata

  • Download URL: devnarrate-0.1.0a6-py3-none-any.whl
  • Upload date:
  • Size: 19.3 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.0a6-py3-none-any.whl
Algorithm Hash digest
SHA256 09498da6aa6e365ce7187fa7e2961f1d3cc3dfb8f24c2382e4d88270ffd08a70
MD5 15b1a17c13b98e46797a3a57c07f5cf4
BLAKE2b-256 d1fe1d2ee8840469c4b5a7a0ab892815f183f02543cb5643431b1d00d850d8fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for devnarrate-0.1.0a6-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