Skillsmith

io.github.smith-horn由 GitHub 帳號 smith-horn 發布v0.8.0更新於 Oct 25, 2026

Share agent skills across your team, scan them for risk, and track what's actually used.

概覽

AI 產生的概覽

Skillsmith 是一個本機 MCP 伺服器,連接依團隊劃分的代理技能登錄庫,讓助理搜尋、安裝、驗證、掃描並追蹤技能。

可以做什麼
搜尋、檢視和比較登錄庫中的技能,可依分類、信任等級和評分篩選,並取得情境化推薦與依專案情境的建議。在本機安裝、解除安裝和建立技能索引,檢查已安裝技能是否過時、版本漂移或名稱衝突。驗證技能並準備發佈,用最新安全規則重新掃描已安裝技能。稽核、重新命名和編輯已安裝技能,先預覽再執行且可復原,也能修復清單項目。付費層級可管理團隊工作區、共用、私有登錄庫發佈與核准、SSO 與角色設定、稽核日誌、用量分析和 API 金鑰。
適用情境
適合多個團隊都在發佈代理技能、需要釐清哪個版本裝在何處、技能是否被安全掃描標記、哪些技能已過時無人維護的情況。個人使用者想在助理內搜尋和安裝技能時也適用。
執行需求
以本機程序執行,透過 npx 或全域安裝的 npm 套件啟動,需要 Node.js 22.22 或更新版本。SKILLSMITH_API_KEY 環境變數中的 API 金鑰為選用:未設定時伺服器使用內建公開金鑰,依共用的社群速率限制。更高配額和用量追蹤需要帳號和金鑰。Cursor 使用者可能需要已安裝執行檔的路徑和 SKILLSMITH_CLIENT 變數。
安裝前請注意
伺服器會變更本機檔案:安裝和解除安裝技能、套用重新命名和文字編輯、修復清單,不過編輯會先預覽且可復原。它維護本機 SQLite 快取,並可將已安裝技能清單推送到儀表板。付費層級需要付費(個人、依使用者的團隊、企業)。不要把 API 金鑰貼到聊天中,應在用戶端設定裡設定。公開索引中的技能只做自動評分,未被標記不等於已獲核准。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Skillsmith,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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
json
{  "mcpServers": {    "@skillsmith/mcp-server": {      "command": "npx",      "args": ["-y", "@skillsmith/mcp-server"],      "env": {        "SKILLSMITH_API_KEY": "sk_live_..."      }    }  }}

Restart Claude Code after editing settings.json.

Cursor — ~/.cursor/mcp.json
json
{  "mcpServers": {    "@skillsmith/mcp-server": {      "command": "<paste output of: which skillsmith-mcp (macOS/Linux) or where skillsmith-mcp (Windows)>",      "env": {        "SKILLSMITH_API_KEY": "sk_live_...",        "SKILLSMITH_CLIENT": "cursor"      }    }  }}

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)
json
{  "mcpServers": {    "@skillsmith/mcp-server": {      "command": "npx",      "args": ["-y", "@skillsmith/mcp-server"],      "env": {        "SKILLSMITH_API_KEY": "sk_live_..."      }    }  }}

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
json
{  "mcpServers": {    "@skillsmith/mcp-server": {      "command": "npx",      "args": ["-y", "@skillsmith/mcp-server"],      "env": {        "SKILLSMITH_API_KEY": "${env:SKILLSMITH_API_KEY}"      }    }  }}

Supports ${env:VAR} interpolation; export SKILLSMITH_API_KEY in your shell instead of inlining the secret.

Codex CLI — ~/.codex/config.toml (TOML, not JSON)
toml
[mcp_servers.@skillsmith/mcp-server]command = "npx"args = ["-y", "@skillsmith/mcp-server"]
[mcp_servers.@skillsmith/mcp-server.env]SKILLSMITH_API_KEY = "sk_live_..."

Codex reads ~/.agents/skills. When installing via CLI, pass --client agents.

Cross-agent (open standard) — ~/.agents/mcp.json
json
{  "mcpServers": {    "@skillsmith/mcp-server": {      "command": "npx",      "args": ["-y", "@skillsmith/mcp-server"],      "env": {        "SKILLSMITH_API_KEY": "sk_live_..."      }    }  }}

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):

bash
npm install -g @skillsmith/cliskillsmith login

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.

TierMonthly quotaPer-minute limitCost
No API key (MCP default)Community rate, shared public key30/min per endpoint, shared across all keyless clientsFree
Community10030/minFree
Individual1,000200/min$9.99/mo
Team10,000300/min$25/user/mo
EnterpriseUnlimited600/minContact Sales

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_QUOTA is 'true'. The MCP server's own monthly quota counts only skill_suggest and the tier-gated tools, and hard-blocks them by default (SKILLSMITH_ENFORCE_MCP_QUOTA=false turns 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:

bash
# From the repository rootnpm run buildnode packages/cli/dist/index.js search "testing"

The four questions

Once more than one team is publishing skills, these are the questions that matter:

  1. Which team is this scoped to? Every skill in the registry is scoped to a team.
  2. Which version is installed here? Versions are immutable; skill_diff (Individual tier) and skill_outdated report drift for what's installed on the machine you run them from.
  3. 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).
  4. 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) and skill_outdated show 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)

ToolDescription
searchSearch skills with filters (query, category, trust tier, min score)
get_skillGet detailed skill information including install command
install_skillInstall a skill to your local environment
uninstall_skillRemove an installed skill
skill_recommendGet contextual skill recommendations
skill_suggestSuggest skills from your current project context (counts against your monthly quota)
skill_validateValidate a skill's structure and quality
skill_compareCompare two skills side-by-side
skill_outdatedCheck installed skills for staleness and dependency status
skill_rescanRe-scan an installed skill with the latest security patterns
skill_publishValidate a skill and prepare it for publishing
skill_recover_sourceRecover the GitHub source of locally installed skills (read-only)
index_localIndex skills from a local directory
inventory_pushPush this machine's installed-skill inventory to your dashboard (read-only; needs skillsmith login)
skill_inventory_auditCheck every installed client's skills for name collisions and get rename suggestions
apply_namespace_renameApply or revert a rename suggestion (previews first, changes files only when confirmed)
apply_recommended_editApply a suggested prose edit from an audit (previews first, changes files only when confirmed)
undo_applyUndo the most recent rename or edit from this session
apply_manifest_reconcileRepair a corrupted or ambiguous manifest entry

Individual

ToolDescription
skill_updatesCheck the registry for newer versions of installed skills
skill_diffSection-level diff between two versions of a skill
skill_pack_auditAudit a directory of skills for version drift and weak triggers

Team

ToolDescription
skill_auditCheck installed skills for known security advisories
team_workspaceCreate, list, get and delete team workspaces
share_skillAdd, remove or list skills in a team workspace
publish_privateHide a skill from your own search results on this machine (local only)
team_analytics_dashboardPer-user tool usage, top tools and daily trend
team_usage_reportWeekly or monthly usage summary with period comparison
compliance_reportGenerate SOC2, CycloneDX SBOM or JSON reports for your local skill inventory

Enterprise

ToolDescription
private_registry_publishPublish a skill version to your private registry for approval
private_registry_manageList, get, install, deprecate, approve or reject private registry skills
configure_ssoSet up SSO/SAML, including DNS domain verification
sso_settingsView the current SSO/SAML configuration
rbac_manageInspect and adjust what each team role can do
rbac_assign_roleAssign or revoke member roles, or list members
rbac_create_policyBulk-set or clear permission overrides for a role
audit_exportExport audit log events for a time range
audit_queryQuery audit logs with filters
siem_exportExport audit events to your SIEM
analytics_dashboardRecommendation accuracy, usage trends and team-wide aggregation
usage_reportFull usage report across all metrics
webhook_configureSigned webhooks for skill lifecycle events (preview)
api_key_manageCreate, list and revoke API keys (preview)

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):

text
┌─────────────────────────────────────────────────────┐│  MCP Client (Claude Code, Cursor, etc.)             ││  ┌─────────────────────────────────────────────────┐││  │  Skillsmith MCP Server                          │││  │  └── @skillsmith/mcp-server                     │││  │      ├── search, get_skill, skill_compare       │││  │      ├── install_skill, uninstall_skill         │││  │      ├── skill_recommend, skill_validate        │││  │      ├── skill_outdated, skill_diff, ...        │││  │      └── 43 tools across four tiers             │││  └─────────────────────────────────────────────────┘││                          │                          ││                          ▼                          ││  ┌─────────────────────────────────────────────────┐││  │  ~/.skillsmith/skills.db (SQLite + FTS5)        │││  │  ~/.claude/skills/ (installed skills)           │││  └─────────────────────────────────────────────────┘│└─────────────────────────────────────────────────────┘

Usage

Once configured, your MCP client can use Skillsmith tools:

text
"Search for testing skills"→ Uses search tool to find testing-related skills
"Show me details for community/jest-helper"→ Uses get_skill tool to retrieve full skill information
"Install the jest-helper skill"→ Uses install_skill tool to add it to ~/.claude/skills
"Compare jest-helper and vitest-helper"→ Uses skill_compare tool to show side-by-side comparison
"Are any of my installed skills out of date?"→ Uses skill_outdated tool to check for staleness and missing dependencies
"Do any of my skills clash with each other?"→ Uses skill_inventory_audit tool to find name collisions and suggest renames

CLI Usage (Development)

bash
# From the repository, after buildingnode packages/cli/dist/index.js search "testing" --tier verified --min-score 80node packages/cli/dist/index.js get community/jest-helpernode packages/cli/dist/index.js install community/jest-helper

Documentation

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

bash
# 1. Clone the repositorygit clone https://github.com/smith-horn/skillsmith.gitcd skillsmith
# 2. Create your local environment filecp .env.example .env
# 3. Start the development containerdocker compose --profile dev up -d
# 4. Install dependencies (first time only)docker exec -w /app skillsmith-dev-1 sh -c 'sh scripts/lib/node-modules-mount-gate.sh && npm install'
# 5. Build and testdocker exec skillsmith-dev-1 npm run builddocker exec skillsmith-dev-1 npm test

Running Commands in Docker

All npm commands should be run inside the Docker container:

CommandDocker Command
Builddocker exec skillsmith-dev-1 npm run build
Testdocker exec skillsmith-dev-1 npm test
Lintdocker exec skillsmith-dev-1 npm run lint
Typecheckdocker exec skillsmith-dev-1 npm run typecheck
Auditdocker exec skillsmith-dev-1 npm run audit:standards

Container Management

bash
# Start development containerdocker compose --profile dev up -d
# Check container statusdocker ps | grep skillsmith
# View container logsdocker logs skillsmith-dev-1
# Stop containerdocker compose --profile dev down
# Restart after Dockerfile changesdocker compose --profile dev downdocker compose --profile dev build --no-cachedocker compose --profile dev up -d

After Pulling Changes

When you pull changes that modify package.json or package-lock.json:

bash
docker exec -w /app skillsmith-dev-1 sh -c 'sh scripts/lib/node-modules-mount-gate.sh && npm install'docker exec skillsmith-dev-1 npm run build

Troubleshooting

Container won't start
bash
docker compose --profile dev downdocker volume rm skillsmith_node_modulesdocker compose --profile dev up -d

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):

bash
( cd <main-checkout-path> && sh scripts/lib/print-deps-refresh-advice.sh <main-checkout-path> )
Native module errors (ERR_DLOPEN_FAILED)

Native modules like better-sqlite3 and onnxruntime-node may need rebuilding:

bash
docker exec -w /app skillsmith-dev-1 sh -c 'sh scripts/lib/node-modules-mount-gate.sh && npm rebuild'
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):

bash
# Wrong - don't run locallynpm test
# Correct - run in Dockerdocker exec skillsmith-dev-1 npm test

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.

來源:README.md,提交 2930073

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

4
  1. v0.8.0最新Oct 12, 2026
  2. v0.7.19Oct 5, 2026
  3. v0.7.18Sep 30, 2026
  4. v0.7.16Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。