Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions .claude/skills/release/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
name: release
description: Create a new GitHub MCP release with proper .mcpb bundle. Use when the user wants to cut a release, publish a new version, or update the mcpb bundle.
disable-model-invocation: true
argument-hint: [version-bump: patch|minor|major]
allowed-tools: Read, Bash(npm *), Bash(git *), Bash(gh *)
---

# Release Process for GitHub MCP

Create a release with a proper `.mcpb` bundle for Claude Desktop.

## Context

- The `.mcpb` format is a zip archive created by `mcpb pack` (from `@anthropic-ai/mcpb`)
- `manifest.json` defines the bundle metadata and defaults to `--preset core` (~109 tools)
- `.mcpbignore` controls what's excluded from the bundle
- The release workflow (`.github/workflows/release.yml`) handles CI builds automatically

## Steps

### 1. Determine version bump

Use `$ARGUMENTS` or default to `patch`. Valid: `patch`, `minor`, `major`.

### 2. Create release branch

```bash
gh issue create --title "Release v<new-version>" --body "Version bump for release."
git checkout -b <issue-num>-release-v<new-version>
```

### 3. Bump version

```bash
npm version <patch|minor|major> --no-git-tag-version
```

This updates `package.json` and `package-lock.json`.

### 4. Commit, push, PR, merge

```bash
git add package.json package-lock.json
git commit -m "chore: bump version to <new-version> (#<issue>)"
git push -u origin <branch>
gh pr create --title "chore: release v<new-version>" --body "Closes #<issue>"
gh pr merge <pr-num> --squash --delete-branch
```

### 5. Tag and push

```bash
git checkout main && git pull
git tag v<new-version>
git push origin v<new-version>
```

This triggers `.github/workflows/release.yml` which:
1. `npm ci` - install all deps
2. `npm run build` - compile TypeScript
3. `npm install -g @anthropic-ai/mcpb` - install bundle CLI
4. Updates `manifest.json` version from tag
5. `mcpb pack` - creates `github-mcp.mcpb`
6. Creates GitHub release with the `.mcpb` asset
7. `npm publish` - publishes to npm

### 6. Verify

```bash
gh run list --limit 1
gh run watch <run-id> --exit-status
gh release view v<new-version> --json assets
```

Confirm the release has `github-mcp.mcpb` as an asset.

## Important Notes

- The manifest.json hardcodes `--preset core` - the .mcpb only loads core tools (~109)
- `.mcpbignore` excludes src/, docs/, .git/, etc. from the bundle
- `npm ci --omit=dev` is NOT yet in the workflow - bundle is bloated (~23MB vs ideal ~3MB). See issue #66.
- Do NOT create tar.gz or zip archives - .mcpb is the only distribution format
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,13 @@ pnpm-lock.yaml
# GitHub OAuth App secrets (never commit)
.oauth-secrets
oauth-config.json
.claude/
.claude/*
!.claude/skills/
!.claude/CLAUDE.md
!.claude/hooks/
!.claude/validators/
!.claude/loggers/
!.claude/sop.json

# Local workflow state
.current-issue
1 change: 1 addition & 0 deletions docs/architecture.html
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@
<a href="guide.html">Guide</a>
<a href="architecture.html" class="active">Architecture</a>
<a href="user-story.html">User Stories</a>
<a href="roadmap.html">Roadmap</a>
<a href="https://github.com/ldraney/github-mcp">GitHub</a>
</div>
</nav>
Expand Down
1 change: 1 addition & 0 deletions docs/guide.html
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@
<a href="guide.html" class="active">Guide</a>
<a href="architecture.html">Architecture</a>
<a href="user-story.html">User Stories</a>
<a href="roadmap.html">Roadmap</a>
<a href="https://github.com/ldraney/github-mcp">GitHub</a>
</div>
</nav>
Expand Down
1 change: 1 addition & 0 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@
<a href="guide.html">Guide</a>
<a href="architecture.html">Architecture</a>
<a href="user-story.html">User Stories</a>
<a href="roadmap.html">Roadmap</a>
<a href="https://github.com/ldraney/github-mcp">GitHub</a>
</div>
</nav>
Expand Down
Loading