release-announcer-mcp
This server prepares release announcements for public GitHub repositories by fetching repository details, checking publication readiness, and generating tailored announcement drafts for multiple platforms.
Fetch repository info: Retrieve metadata (description, topics, license, stars), latest release notes, README content (up to 12,000 characters), and root file list.
Check publish readiness: Run a pre-publication checklist covering LICENSE (MIT expected), README quality, GitHub Release, topics (≥3), description, and
.gitignore. Returns pass/warn/fail statuses with fix suggestions.Build announcement brief: Compile a writing brief from the fetched data and generate draft copy for:
X/Twitter (Japanese + English, ~160 chars)
Reddit post (English)
GitHub profile README table row
awesome-mcp list PR entry (entry text, PR title/body)
MCP directory listings (descriptions, tags)
All generated content is draft-only for human review — the server never posts automatically.
Provides tools for fetching public GitHub repository information (metadata, README, latest release, file list), checking pre-publication readiness (license, README, release, topics, description, .gitignore), and generating multi-target announcement briefs (X post, Reddit, GitHub profile README row, awesome-mcp PR, directory listings).
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., "@release-announcer-mcp Build the announcement kit for h-kazuki-pixel/jp-dates-mcp-server"
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.
release-announcer-mcp
An MCP server that turns a GitHub repository into ready-to-review release announcements — and checks that the repo is actually ready to ship.
Point it at any public repo and ask Claude for an "announcement kit". You get drafts for:
X/Twitter post (short, link included, in two languages)
Reddit post (understated "I built a thing" tone — draft only, never auto-posted)
GitHub profile README table row
awesome-list entry + pull request text
MCP directory listing (short/long description + tags)
Plus a publish-readiness checklist: LICENSE, README quality, Release, Topics, About description, .gitignore — each with a concrete fix suggestion when missing.
No API key required. Works with any public GitHub repository.
Why
If you ship open-source tools on a regular cadence, the release itself is the easy part. The repetitive part is everything after: writing the announcement, adapting it per platform, updating your profile, submitting to directories. This server gathers the facts (README, release notes, metadata) and hands your LLM a strict writing brief, so every announcement is accurate, consistent, and takes minutes instead of an hour.
By design, this tool generates drafts only. It never posts anywhere. You review, then you post.
Related MCP server: GitHub Releases MCP Server
Tools
Tool | What it does |
| Fetch repo metadata, latest release, README, and root files |
| Run the pre-publication checklist (pass/warn/fail with fixes) |
| Build a complete writing brief for any subset of announcement targets |
Setup
Requires Node.js 18+.
git clone https://github.com/h-kazuki-pixel/release-announcer-mcp.git
cd release-announcer-mcp
npm install
npm run buildAdd to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"release-announcer": {
"command": "node",
"args": ["/absolute/path/to/release-announcer-mcp/dist/index.js"]
}
}
}claude_desktop_config.json is at:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
GitHub API rate limit
Unauthenticated GitHub API requests are capped at 60 per hour per IP address, and building one announcement kit makes several of them. A token raises the cap to 5,000 per hour.
Put the token in the env block of the config file. Do not export it in your shell — Claude Desktop starts MCP servers without inheriting the shell environment, so an exported variable never reaches this server.
{
"mcpServers": {
"release-announcer": {
"command": "node",
"args": ["/absolute/path/to/release-announcer-mcp/dist/index.js"],
"env": { "GITHUB_TOKEN": "ghp_..." }
}
}
}The token needs no scopes. This server only reads public repositories.
Docker (optional)
The repository ships a Dockerfile (Node 20 slim, multi-stage build) for running the server in a container. The Claude Desktop setup above does not need it.
docker build -t release-announcer-mcp .Usage
Just ask Claude, for example:
"Build the announcement kit for h-kazuki-pixel/jp-dates-mcp-server"
"Is my-org/my-repo ready to publish? Run the checklist."
"Draft only the X post and the awesome-list entry for owner/repo."
Example output (checklist)
# Publish readiness: owner/repo
**6/8 checks passed**
- ✅ LICENSE file — MIT License detected.
- ✅ README — README found.
- ⚠️ README: setup instructions — No obvious setup section. Add installation steps.
- ✅ README: usage examples — Usage/example content detected.
- ❌ GitHub Release — No release found. Create one: Releases → 'Draft a new release' → tag v1.0.0.
- ✅ Topics (discovery tags) — 4 topics set.
- ✅ About description — Description set.
- ✅ .gitignore — .gitignore found.Development
npm run build # compile TypeScript
npm test # run integration tests (uses a local mock of the GitHub API)License
MIT
日本語
GitHubリポジトリを指定するだけで、リリース告知に必要な文章一式のドラフトと、公開前チェックリストを生成するMCPサーバーです。
できること
X(Twitter)告知文(2言語・リンク付き・短文)
Reddit投稿の下書き(宣伝色を抑えた文体。自動投稿は一切しません)
GitHubプロフィールREADMEの作品表の行
awesomeリスト登録用のエントリ+PR文
MCPディレクトリ(mcp.so等)登録用の説明文+タグ案
公開前チェックリスト: LICENSE / READMEの充実度 / Release作成 / Topics / About欄 / .gitignore を自動判定し、不足があれば直し方を提示
APIキー不要。公開リポジトリならどれでも使えます。
セットアップ
Node.js 18以上が必要です。
git clone https://github.com/h-kazuki-pixel/release-announcer-mcp.git
cd release-announcer-mcp
npm install
npm run buildClaude Desktopの設定ファイル(claude_desktop_config.json)に追加:
{
"mcpServers": {
"release-announcer": {
"command": "node",
"args": ["/absolute/path/to/release-announcer-mcp/dist/index.js"]
}
}
}claude_desktop_config.json の場所:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
GitHub APIのレート上限
未認証のGitHub APIはIPアドレスあたり1時間60リクエストに制限されており、告知セットを1回作るだけで複数回叩きます。トークンを設定すると1時間5,000リクエストに上がります。
トークンは設定ファイルの env ブロックに書いてください。シェルで export しても届きません。 Claude Desktop はMCPサーバーを、シェルの環境変数を引き継がない形で起動するためです。
{
"mcpServers": {
"release-announcer": {
"command": "node",
"args": ["/absolute/path/to/release-announcer-mcp/dist/index.js"],
"env": { "GITHUB_TOKEN": "ghp_..." }
}
}
}トークンに権限(スコープ)の付与は不要です。このサーバーは公開リポジトリの読み取りしか行いません。
Docker(任意)
このリポジトリには Dockerfile(Node 20 slim・マルチステージ構成)が同梱されています。コンテナで動かしたい場合に使います。上のClaude Desktopの手順では不要です。
docker build -t release-announcer-mcp .使い方
Claudeにこう頼むだけです:
「h-kazuki-pixel/jp-dates-mcp-server の告知セットを作って」
「owner/repo は公開準備できてる?チェックリストを実行して」
設計方針
このツールが生成するのは下書きのみです。SNSへの自動投稿機能は意図的に持たせていません。最終確認と投稿は必ず人間が行います。
ライセンス
MIT
Available Tools
3 toolsbuild_announcement_briefBuild announcement briefARead-onlyIdempotent
Gather a repository's facts (README, latest release notes, metadata) and return a complete writing brief: source material plus strict per-target writing instructions. The calling LLM then writes the final draft texts from this brief.
Targets available:
x_post: X/Twitter announcement (Japanese + English, ~160 chars)
reddit_draft: understated Reddit post draft (English, title + body)
profile_readme_row: GitHub profile README table row
awesome_mcp_pr: awesome-mcp list entry + PR title/body
directory_listing: MCP directory (mcp.so etc.) descriptions + tags
Args:
owner (string): GitHub user/org name
repo (string): repository name
targets (string[], optional): subset of targets; defaults to all five
Returns: a Markdown brief. After calling this tool, write the requested draft texts following the brief's rules exactly. All output is draft-only for human review — never post anywhere automatically.
Inputs: repo (required), owner (required), targets.
check_publish_readinessCheck publish readinessARead-onlyIdempotent
Run a pre-publication checklist against a public GitHub repository and report pass/warn/fail per item.
Checks: LICENSE present (MIT expected), README present with setup instructions and usage examples, GitHub Release created, 3+ Topics set, About description set, .gitignore present.
Args:
owner (string): GitHub user/org name
repo (string): repository name
Returns: a Markdown checklist report plus structured JSON ({ repo, passed, total, items: [{id, label, status, detail}] }). Each failing item includes a concrete fix suggestion.
Inputs: repo (required), owner (required).
fetch_repo_infoFetch repository infoARead-onlyIdempotent
Fetch public information about a GitHub repository: description, topics, license, stars, latest release (tag + notes), README content, and root file list.
Use this when you need raw facts about a repository before writing about it or checking it.
Args:
owner (string): GitHub user/org name
repo (string): repository name
Returns: structured JSON with repo metadata, latestRelease (or null), readme text (truncated at 12000 chars), and rootFiles.
Errors: returns a clear message for unknown repos (404) and API rate limits (retry later or set GITHUB_TOKEN env var).
Inputs: repo (required), owner (required).
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 has a clearly distinct purpose: fetch_repo_info retrieves raw repo data, check_publish_readiness runs a checklist, and build_announcement_brief creates a writing brief. There is no overlap in functionality.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., fetch_repo_info, check_publish_readiness, build_announcement_brief). The naming is predictable and uniform.
With only 3 tools, the server is at the lower bound of the typical 3-15 range. While the domain is specific, the tool set feels slightly thin for a release announcer, missing tools for actual posting or scheduling.
The tools cover fetching, readiness checking, and brief creation, but lack tools for final draft generation or posting. Important lifecycle steps like creating releases or publishing announcements are absent, leading to significant gaps.
Maintenance
Related MCP Connectors
Generate changelogs, release emails, help-center articles, banners, and social posts from commits.
Create, update, and publish changelog entries on your Patchlog changelog from any MCP client.
Manage repositories, users, releases, and automate GitHub workflows
Release intelligence for AI coding tools: releases, typed changes, breaking changes, cadence.
Related MCP Servers
- FlicenseBqualityDmaintenanceGenerates comprehensive and formatted release notes from GitHub repositories, efficiently organizing commits by type and including detailed statistics using smart API usage.33-
- AlicenseBqualityDmaintenanceProvides tools for accessing, comparing, and analyzing GitHub repository releases with rich formatting and detailed information.517 npm3ISC
- AlicenseNot gradedqualityDmaintenanceScans repositories to produce a readiness score and actionable fixes across positioning, tryability, community, MCP, and monetization, plus generates launch assets and sponsor-tier ideas.19 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables automated semantic release notes, PR tagging, and changelog verification by integrating GitHub, GitLab, and Jira MCP servers.-