diff --git a/.claude-plugin/icon.png b/.claude-plugin/icon.png new file mode 100644 index 0000000..e9cab23 Binary files /dev/null and b/.claude-plugin/icon.png differ diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index c2c9f0a..83ddb5d 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,5 +1,6 @@ { "name": "github-seo-skill", + "description": "Agent Skill for getting open-source GitHub repos found: audit, search-ready README, pre-publish secret scan and MCP registry submissions.", "owner": { "name": "Devkind", "url": "https://devkind.com.au" diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index f8ea555..fb779a1 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,5 +1,6 @@ { "name": "github-seo-skill", + "displayName": "GitHub SEO Skill", "description": "Agent Skill for GitHub SEO: repo audit, search-ready README, pre-publish secret scan, launch order and MCP registry submissions.", "version": "0.1.0", "author": { diff --git a/README.md b/README.md index ecd96ff..81fba51 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,14 @@ python3 skills/github-seo/scripts/check_repo_seo.py owner/repo It prints `PASS`, `WARN` or `FAIL` per check and exits non-zero on any `FAIL`. The social preview image cannot be read or set through the CLI, so it is listed as a manual step. +## Network access and data + +This repo collects no data and runs no server. The audit script only calls the GitHub CLI (`gh`) +you have logged in, using read-only requests. When the skill guides an MCP server submission, it +tells you to look up a server on the Official MCP Registry +(`https://registry.modelcontextprotocol.io`), and the publishing steps use the `mcp-publisher` +tool, which sends your server metadata to that registry. Nothing is sent unless you run those steps. + ## How the advice is labelled GitHub does not publish how its search ranks repositories, so every claim in the skill carries a label: diff --git a/assets/icon.svg b/assets/icon.svg new file mode 100644 index 0000000..6546089 --- /dev/null +++ b/assets/icon.svg @@ -0,0 +1,6 @@ + + + + SEO + GITHUB + diff --git a/skills/github-seo/references/mcp-install-and-metadata.md b/skills/github-seo/references/mcp-install-and-metadata.md index 7f97761..d85fbb7 100644 --- a/skills/github-seo/references/mcp-install-and-metadata.md +++ b/skills/github-seo/references/mcp-install-and-metadata.md @@ -48,10 +48,11 @@ Order: make the repo public first, push the image second, publish third. The `se - `mcp-publisher login github` is an interactive device-code flow. The repo owner runs it. - Org namespace gotcha [verified, 2026-11-02, observed from a real run]: the device flow grants only the user's personal namespace. Publishing `io.github./` returned 403 with - "You have permission to publish: io.github./*". The fix that worked: - `mcp-publisher login github --token "$(gh auth token)"`, where the `gh` token has the - `read:org` scope and the user is an org Owner or admin. The token is never printed or pasted. - Alternative: the GitHub Actions OIDC route (section 7). Never paste a PAT into a chat. + "You have permission to publish: io.github./*". The fix that worked was logging in with + a GitHub token that has the `read:org` scope, as a user who is an org Owner or admin. Run + `mcp-publisher login --help` for the token option, and supply the token yourself so it is never + printed or pasted. Alternative: the GitHub Actions OIDC route (section 7). + Never paste a token into a chat. - `mcp-publisher` has no `validate` command [verified, 2026-11-02]. Its commands are `init`, `login`, `logout`, `publish` and `status`. The registry validates on publish, and the 100 char description limit is enforced by the schema.