@myriadcodelabs/skills-mcp
v0.1.1
Published
A lightweight MCP server for exposing reusable skills from GitHub repositories
Maintainers
Readme
skills-mcp
A lightweight MCP server for exposing reusable agent skills stored in public GitHub repositories.
MCP tools
list_skillsread_skilllist_skill_resourcesread_skill_resource
MCP transport is stdio only.
Run
npx @myriadcodelabs/skills-mcpThe process also starts a loopback-only management UI at:
http://127.0.0.1:3218/The UI is only for local repository management; it is not an HTTP MCP transport. It is a small React interface built with standard shadcn/ui components.
To add a source, paste only the public GitHub repository URL, for example:
https://github.com/muhammadismailkhan0009/dev-skillsThe server derives its internal source identity automatically and uses the repository's default branch.
Skill names do not need to be globally unique. Every discovered skill also exposes a derived scope from its parent repository path. For example, two skills named feature-planning can remain distinct as backend/java and frontend/nextjs, while the canonical skill ID remains the exact machine identity.
Configuration
Repository configuration is persisted at:
~/.skills-mcp/sources.jsonOptional environment variables:
SKILLS_MCP_DATA_DIR— override the data directorySKILLS_MCP_UI_PORT— override the management UI port; use0for an ephemeral port
V1 supports public GitHub repositories only.
MCP client configuration
Example:
{
"mcpServers": {
"skills": {
"command": "npx",
"args": ["-y", "@myriadcodelabs/skills-mcp"]
}
}
}Development
npm install
npm run typecheck
npm test
npm run buildThe test suite follows behavior-driven scenarios for repository discovery, source lifecycle, MCP tool behavior, UI behavior, and the stdio CLI entrypoint.
See SPECIFICATIONS.md for the V1 scope.
Publishing and releases
Source repository:
https://github.com/muhammadismailkhan0009/skills-mcpnpm package:
@myriadcodelabs/skills-mcpThe repository includes:
.github/workflows/ci.yml— verifies pushes and pull requests.github/workflows/release.yml— creates GitHub Releases fromv*tags and publishes missing npm versions- npm trusted-publishing support through GitHub Actions OIDC
One-time GitHub setup
Create an empty public repository named skills-mcp under:
muhammadismailkhan0009The local repository already has this remote configured:
git remote -vThen push:
git push -u origin mainOne-time npm setup
The npm package is scoped as:
@myriadcodelabs/skills-mcpYou must own the @myriadcodelabs npm scope, either as your npm username or as an npm organization where you have publish permission. If you do not own that scope, change the package name before the first publish.
Authenticate locally:
npm login
npm whoamiThe first package version must be published manually because npm trusted publishing can only be configured after the package exists:
npm run release:check
npm publish --access publicConfigure npm trusted publishing
After the first npm publish, use either the npm website or the npm CLI to trust the GitHub Actions release workflow.
Using npm CLI requires npm 11.15.0 or newer:
npm install --global "npm@^11.15.0"
npm trust github @myriadcodelabs/skills-mcp \
--repo muhammadismailkhan0009/skills-mcp \
--file release.yml \
--allow-publishThe equivalent npm website configuration is:
- Provider: GitHub Actions
- GitHub user/organization:
muhammadismailkhan0009 - Repository:
skills-mcp - Workflow filename:
release.yml - Allow direct publish: enabled
No long-lived NPM_TOKEN GitHub secret is required.
First GitHub release
After the first npm version has been published and trusted publishing is configured:
git tag v0.1.0
git push origin v0.1.0The release workflow will:
- install dependencies
- run typecheck, tests, build, and npm package verification
- verify that tag
v0.1.0matches package version0.1.0 - detect that
@myriadcodelabs/[email protected]already exists on npm and skip duplicate publication - create the GitHub Release with generated release notes
Subsequent releases
Choose the appropriate semantic-version bump without creating the tag yet:
npm version patch --no-git-tag-version
# or:
npm version minor --no-git-tag-version
# or:
npm version major --no-git-tag-versionRun the full release checks before committing or tagging:
npm run release:checkThen commit the version bump and create the matching tag:
VERSION="$(node -p "require('./package.json').version")"
git add package.json package-lock.json
git commit -m "chore: release v$VERSION"
git tag "v$VERSION"
git push origin main --follow-tagsFor subsequent versions, the GitHub Actions release workflow creates the GitHub Release and publishes the new npm version automatically using OIDC trusted publishing.
