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 @@
+
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.