
Skillsmith
io.github.smith-hornPublished by GitHub account smith-hornv0.8.0Updated Oct 25, 2026
Share agent skills across your team, scan them for risk, and track what's actually used.
Overview
Skillsmith is a local MCP server for a team-scoped registry of agent skills: search, install, validate, scan and track skills from your assistant.
- What you can do
- Search, inspect and compare skills in the registry, with filters for category, trust tier and score, plus contextual recommendations and suggestions from project context. Install, uninstall and index skills locally, and check installed skills for staleness, drift and name collisions. Validate and prepare skills for publishing, and re-scan installed skills against the latest security patterns. Audit, rename and edit installed skills, with previews and an undo step, and repair manifest entries. On paid tiers, manage team workspaces, sharing, private registry publishing and approvals, SSO and role settings, audit logs, usage analytics and API keys.
- When to use it
- Useful when several people or teams publish agent skills and you need to know which version is installed where, whether a skill was flagged by a security scan, and which skills are stale or unmaintained. Also handy for a solo user who wants to search and install skills from inside an assistant.
- Requirements
- Runs as a local process via npx or a globally installed npm package; Node.js 22.22 or newer. An API key in the SKILLSMITH_API_KEY environment variable is optional: without it the server uses a built-in public key at shared Community rate limits. Higher quotas and usage tracking need an account and key. Cursor users may need the installed binary path and the SKILLSMITH_CLIENT variable.
Installation
In SourceWeft
- Open Skillsmith in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Skillsmith
Shared skills, safe for production.
Once more than one team is publishing agent skills, the problem stops being finding them and starts being managing them. Which team is this scoped to? Which version is installed where? Has it been flagged by a security scan? What happens to the ones nobody maintains anymore?
Skillsmith is a registry for sharing, scanning, and tracking agent skills across teams. Skills are published to a registry scoped to your team and versioned immutably, so drift across installs is visible instead of silent. Flagged or suspicious skills are quarantined pending security review. Skills that go stale can be deprecated instead of quietly rotting in someone's repo.
Installation
Quick Setup (MCP)
Skillsmith is MCP-compatible — pick the snippet for your agent.
SMI-4580: snippets sourced from packages/cli/src/templates/mcp-server.template.snippets.ts so this README and the website docs cannot drift.
Claude Code — ~/.claude/settings.json
Restart Claude Code after editing settings.json.
Cursor — ~/.cursor/mcp.json
Cursor 2.4+ required, Node >=22.22 (Cursor's own bundled Node meets this). SKILLSMITH_CLIENT routes installs to ~/.cursor/skills instead of the default ~/.claude/skills.
Setup: run npm install -g @skillsmith/mcp-server, then run which skillsmith-mcp (macOS/Linux) or where skillsmith-mcp (Windows) and paste that path into command above — Cursor's bundled Node cannot resolve packages via npx (a real ENOENT on a missing Resources/app/resources/lib directory), so pointing directly at the installed binary is the only form confirmed to work inside Cursor. Prefer to try npx first anyway? Replace command with "npx" and add "args": ["-y", "@skillsmith/mcp-server"] — simpler, but may hit the same ENOENT, plus EBADENGINE or ENOTEMPTY on repeated installs. After saving: enable the server in Cursor's Settings → MCP panel and start a new chat — a correctly-configured entry still shows disconnected until toggled on there — then reload the window.
GitHub Copilot (VS Code) — .vscode/mcp.json (workspace)
VS Code 1.108+ required. Workspace-scoped (commit to repo if team-shared, or use user settings.json instead).
Windsurf — ~/.codeium/windsurf/mcp_config.json
Supports ${env:VAR} interpolation; export SKILLSMITH_API_KEY in your shell instead of inlining the secret.
Codex CLI — ~/.codex/config.toml (TOML, not JSON)
Codex reads ~/.agents/skills. When installing via CLI, pass --client agents.
Cross-agent (open standard) — ~/.agents/mcp.json
Read by any agent honouring the cross-agent skill convention.
After adding to your MCP client settings and restarting, you can search for skills immediately.
API Key Configuration (Optional)
For higher rate limits and usage tracking, authenticate with your API key.
Easiest — CLI login (interactive):
This opens skillsmith.app/account/cli-token in your browser. Generate a key, copy it, and paste it when prompted. The key is stored securely in your OS keyring.
MCP server config — add the key to your settings:
The per-client snippets above already include the env.SKILLSMITH_API_KEY slot — replace the sk_live_... placeholder with the value from skillsmith login.
Get your API key at skillsmith.app/account/cli-token.
Quota note: the monthly figure is a hard limit only where enforced. Edge functions hard-block on monthly quota for Community only, and only when
ENFORCE_COMMUNITY_QUOTAis'true'. The MCP server's own monthly quota counts onlyskill_suggestand the tier-gated tools, and hard-blocks them by default (SKILLSMITH_ENFORCE_MCP_QUOTA=falseturns that off).
The MCP server falls back to a built-in public key when none is set, so keyless MCP use is Community-rate and shares one 30/min bucket per edge endpoint (search, get, recommend, …) with every other keyless client. The 10-call trial (100/min per IP) applies to direct HTTP requests that do not successfully authenticate, including ones with a malformed or expired credential; normal keyless MCP requests authenticate with the built-in key and never reach it. When enabled, a per-IP daily budget can also apply to that shared key (ENFORCE_ANON_BUDGET; off by default).
Note: Never paste API keys in chat. Configure via settings.json only.
CLI Installation (Development)
The CLI is available for local development:
The four questions
Once more than one team is publishing skills, these are the questions that matter:
- Which team is this scoped to? Every skill in the registry is scoped to a team.
- Which version is installed here? Versions are immutable;
skill_diff(Individual tier) andskill_outdatedreport drift for what's installed on the machine you run them from. - Has it been flagged by the security scan? Skills pulled from the public index are scored automatically; flagged or suspicious ones are quarantined pending review — unflagged means it wasn't flagged, not that it was formally approved. Each skill carries one of eight trust tiers, from Official to Unverified (Security Guide).
- What happens to the ones nobody maintains? Stale skills can be deprecated instead of quietly rotting in someone's repo.
How it works
- Publish — skills are published to a registry scoped to your team, versioned immutably.
- Version — every publish creates a new immutable version; nothing is overwritten in place.
- Drift detection —
skill_diff(Individual tier) andskill_outdatedshow what's installed and where it has fallen behind, at the point you check. - Deprecate — skills that go stale can be deprecated instead of quietly rotting in someone's repo.
Scopes and permissions
Skills are scoped to your team's registry. Team owners and admins control who can publish and manage skills; members install and search.
Start solo
Search, install, and manage skills for yourself, free. When your team needs the same skill, the registry is already there.
MCP Tools
Skillsmith registers 43 tools. 19 of the 43 work on the free Community tier. Higher tiers add version tracking, team features and enterprise controls. Tools above your tier return an upgrade message. Pricing.
Community (free)
Individual
Team
Enterprise
The automatic session-start namespace audit is a Team and Enterprise feature. The audit and rename tools above can be run by hand on any tier.
Local-first by design. Skillsmith caches the registry in a local SQLite database at ~/.skillsmith/skills.db, shared across the MCP server, the CLI, and the VS Code extension. Search is FTS5 (SQLite's built-in keyword search) by default; semantic search is opt-in (SKILLSMITH_USE_HNSW=true) and runs over local ONNX embeddings (an open ML model format that runs on CPU — no API call). Inside the Local Skill Database walks through the schema, the FTS5 / HNSW search paths, and how sync (a Team+ tier feature) keeps the cache fresh.
Architecture
Skillsmith uses the Model Context Protocol (MCP):
Usage
Once configured, your MCP client can use Skillsmith tools:
CLI Usage (Development)
Documentation
- Security Guide - Understanding skill trust, safety, and protections
- 5-Minute Setup - Quick start guide
- Configuration Guide - Complete setup and usage
- Status - Live status and uptime history for Skillsmith's core services
Development
Skillsmith uses Docker-first development. All commands run inside Docker to ensure consistent native module support across all platforms.
Prerequisites
- Docker Desktop (v24+) or Docker Engine with Docker Compose
- Git (for cloning the repository)
- Node.js (optional, only for local tooling outside Docker)
Quick Start
Running Commands in Docker
All npm commands should be run inside the Docker container:
Container Management
After Pulling Changes
When you pull changes that modify package.json or package-lock.json:
Troubleshooting
Container won't start
The wipe does not block startup at the entrypoint's node_modules pre-check — the root volume re-seeds from the image, so that check passes rather than exiting (SMI-6674); later startup steps are a separate matter. What the wipe does leave is a mixed dependency state, so don't follow it with a bare install. Print and follow the ordered refresh sequence instead (ADR-158; SMI-6614):
Native module errors (ERR_DLOPEN_FAILED)
Native modules like better-sqlite3 and onnxruntime-node may need rebuilding:
Tests fail with shared library errors
If you see errors about ld-linux-aarch64.so.1 or similar, ensure you're running inside Docker (not locally):
Why Docker?
Skillsmith uses native Node.js modules (better-sqlite3, onnxruntime-node) that require glibc. Docker provides a consistent Debian-based environment with glibc, avoiding compatibility issues on systems using musl libc (like Alpine Linux).
See CLAUDE.md for full development workflow and skill configuration.
Tech Stack
- Runtime: Node.js >=22.22 (Docker with glibc)
- Protocol: MCP (Model Context Protocol)
- Database: SQLite with FTS5
- Embeddings: all-MiniLM-L6-v2 via onnxruntime-node
- Testing: Vitest
- CI/CD: GitHub Actions
License
Skillsmith is source-available under the Elastic License 2.0.
You CAN:
- Use Skillsmith for personal or internal business purposes
- Modify the source code for your own use
- Self-host for your team
- Contribute bug fixes and improvements
You CANNOT:
- Offer Skillsmith as a managed service to third parties
- Circumvent license key enforcement features
For the full license text, see the LICENSE file.
Author
Smith Horn Group Ltd
Skillsmith is not affiliated with Anthropic. Claude and Claude Code are trademarks of Anthropic.
Source: README.md at commit 2930073
Tools
0Version history
4- v0.8.0LatestOct 12, 2026
- v0.7.19Oct 5, 2026
- v0.7.18Sep 30, 2026
- v0.7.16Sep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.