8 Agent Skills and my first MCP server published to npm
Description and use
The article details an automated workflow for publishing eight agent skills and an MCP server to npm, leveraging semantic‑release for versioning and npm CLI for OIDC‑based publishing, along with GitHub Actions for CI.
Problem
Repetitive manual re‑solving of the same problems and difficulty publishing npm packages with OIDC trusted publishing.
Outcome
Eight reusable Agent Skills and an MCP server are now publishable, installable, and versioned automatically. The publishing process is fully CI‑driven, uses OIDC for trusted publishing, and eliminates manual steps after the initial bootstrap.
Workflow
- Create a skills repository with a skills/ directory split into external/, local/, and general/ categories.
- Write each skill’s SKILL.md with a decision guide, progressive disclosure, trigger‑eval, and plain ASCII content.
- Publish the skills package to npm using
npx skills addcommands for each skill. - Set up two GitHub Actions workflows: pr-test-mcp-servers.yml to lint, typecheck, build, and test on PRs; build-publish-mcp-servers.yml to version with semantic‑release and publish via npm CLI with OIDC when the version changes.
- Handle four gotchas: manual first publish, correct bin path, proper npmrc configuration, and ensuring provenance signing.
- Use
npm publish --provenanceafter semantic‑release updates the local version. - Verify the published version matches the local version before publishing.
Evidence
This is the part that cost me more than ten CI commits to get right.
The split that solved it: semantic-release handles versioning; the npm CLI handles publishing through OIDC.
- Record date: 2026-09-12T02:01:34.398Z