Three small things in docs/modelcontextprotocol-io/quickstart.mdx break the copy-paste path for a first-time publisher. Each has a one-line fix.
1. The clone command uses SSH, in a tutorial that never establishes SSH
git clone --depth 1 git@github.com:modelcontextprotocol/quickstart-resources.git
quickstart-resources is public, and the only authentication this tutorial sets up is the browser device flow in Step 5. A reader who has a GitHub account but no SSH key registered — which the prerequisites explicitly allow, they ask for "a GitHub account" and nothing more — hits Permission denied (publickey) on the very first command, before they have learned anything about the registry.
-git clone --depth 1 git@github.com:modelcontextprotocol/quickstart-resources.git
+git clone --depth 1 https://github.com/modelcontextprotocol/quickstart-resources.git
2. Step 2 re-enters a directory the reader is already in
The prerequisites block ends with cd weather-server-typescript. Step 2 then opens with:
# Navigate to project directory
cd weather-server-typescript
Pasted in sequence, that is cd: weather-server-typescript: No such file or directory, and the reader is left wondering whether they lost the directory. The line is only correct for someone who brought their own server and skipped the prerequisites block — the opposite of who the numbered path is written for. Dropping it (or moving it into the bring-your-own note) resolves it.
3. The mcp-publisher init sample output contradicts the state the tutorial just created
The prerequisites have the reader edit package.json to "version": "1.0.1", and Step 2 publishes that version to npm. Step 4 then shows init generating:
"version": "1.0.0",
...
"version": "1.0.0",
followed by a diff bumping both back to 1.0.1.
Since the surrounding prose says init generates the template "with some information derived from your project", a reader reasonably expects 1.0.1 in that output and is then unsure whether they mis-edited something, or whether init ignores the version deliberately. Either the sample output predates the 1.0.1 edit, or init genuinely does not read version from package.json — in which case one sentence saying so would turn a confusing diff into an obvious one.
Minor: the Homebrew tab in Step 3 is unlabeled
The CodeGroup labels its first two tabs macOS/Linux and Windows, but the third (```bash, brew install mcp-publisher) has no title, so it renders as bash beside them. A macOS reader sees two tabs that both apply and no signal which is preferred.
Checked while writing this, all correct, so no action needed on them:
- every release asset name matches the
mcp-publisher_$(uname -s)_$(uname -m) URL pattern in Step 3, on the current v1.8.1 release, including both Windows architectures;
weather-server-typescript is still present in quickstart-resources;
/v0.1/servers?search= in Step 6 resolves and returns the expected {"servers":[...]} shape.
Happy to open a PR with 1, 2 and 4 if that is easier than patching them yourselves — 3 needs someone who knows what init is supposed to do with version.
Three small things in
docs/modelcontextprotocol-io/quickstart.mdxbreak the copy-paste path for a first-time publisher. Each has a one-line fix.1. The clone command uses SSH, in a tutorial that never establishes SSH
quickstart-resourcesis public, and the only authentication this tutorial sets up is the browser device flow in Step 5. A reader who has a GitHub account but no SSH key registered — which the prerequisites explicitly allow, they ask for "a GitHub account" and nothing more — hitsPermission denied (publickey)on the very first command, before they have learned anything about the registry.2. Step 2 re-enters a directory the reader is already in
The prerequisites block ends with
cd weather-server-typescript. Step 2 then opens with:Pasted in sequence, that is
cd: weather-server-typescript: No such file or directory, and the reader is left wondering whether they lost the directory. The line is only correct for someone who brought their own server and skipped the prerequisites block — the opposite of who the numbered path is written for. Dropping it (or moving it into the bring-your-own note) resolves it.3. The
mcp-publisher initsample output contradicts the state the tutorial just createdThe prerequisites have the reader edit
package.jsonto"version": "1.0.1", and Step 2 publishes that version to npm. Step 4 then showsinitgenerating:followed by a diff bumping both back to
1.0.1.Since the surrounding prose says
initgenerates the template "with some information derived from your project", a reader reasonably expects1.0.1in that output and is then unsure whether they mis-edited something, or whetherinitignores the version deliberately. Either the sample output predates the1.0.1edit, orinitgenuinely does not readversionfrompackage.json— in which case one sentence saying so would turn a confusing diff into an obvious one.Minor: the Homebrew tab in Step 3 is unlabeled
The
CodeGrouplabels its first two tabsmacOS/LinuxandWindows, but the third (```bash,brew install mcp-publisher) has no title, so it renders asbashbeside them. A macOS reader sees two tabs that both apply and no signal which is preferred.Checked while writing this, all correct, so no action needed on them:
mcp-publisher_$(uname -s)_$(uname -m)URL pattern in Step 3, on the currentv1.8.1release, including both Windows architectures;weather-server-typescriptis still present inquickstart-resources;/v0.1/servers?search=in Step 6 resolves and returns the expected{"servers":[...]}shape.Happy to open a PR with 1, 2 and 4 if that is easier than patching them yourselves — 3 needs someone who knows what
initis supposed to do withversion.