Skillsmith について
Skillsmithは、チームでエージェントスキルを共有、スキャン、追跡するレジストリです。不変バージョン、セキュリティ隔離、非推奨化により、導入先の差異やレビュー・保守が必要なスキルを管理できます。
主な機能
- 01チーム単位のスキルレジストリ
- 02不変のスキルバージョン
- 03インストール済みバージョンの差異確認
- 04セキュリティスキャンと隔離
- 05スキルの非推奨化とライフサイクル管理
活用シーン
- 01チーム内でスキルを共有
- 02インストール済みスキルの更新状況を確認
- 03レビュー対象としてフラグされたスキルを隔離
- 04保守されなくなったスキルを廃止
MCP 対応
MCPサーバーは、エージェントスキルの検索、詳細確認、インストール、検証、公開、管理ツールを提供します。チーム管理やセキュリティ機能は利用プランによって異なります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
43掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | number | いいえ | 返す結果の最大数(デフォルトは 10)。範囲外の値は拒否されず、有効範囲内に補正されます。 |
| query | string | いいえ | 検索クエリ — 意味的なマッチングではなく、文字列/語彙で一致します。最適な結果を得るには、複数の概念を含む語句ではなく、短い単一トピックの語(例:'testing')を使用してください |
| category | enum | いいえ | スキルカテゴリで絞り込みますdevelopment | testing | documentation | devops | database | security | productivity | integration | ai-ml | other |
| max_risk | number | いいえ | 最大リスクスコア(0~100、数値が低いほど安全) |
| min_score | number | いいえ | 最低品質スコア(0-100) |
| safe_only | boolean | いいえ | セキュリティスキャンに合格したスキルのみを表示します |
| trust_tier | enum | いいえ | 信頼レベルで絞り込みます(verified、curated、community、experimental、unknown)verified | curated | community | experimental | unknown |
| compatible_with | object | いいえ | IDE および/または LLM との互換性に基づいて順位付けします(優先度は下げますが、除外はしません) |
| compatible_with.ides | array | いいえ | IDE のスラッグ(例:["cursor", "claude-code"]) |
| compatible_with.llms | array | いいえ | LLM のスラッグ(例:["claude", "gpt-4o"]) |
| installable_only | boolean | いいえ | true の場合(デフォルト)、インストール可能なスキルのみを返します。install_skill で解決できない発見専用のレジストリ項目は除外されます。false を渡すと、発見専用の項目も含めます。 |
詳細
Skillsmith
共有スキルを、本番環境でも安全に。
複数のチームがエージェントスキルを公開するようになると、問題はスキルを見つけることから、管理することへと変わります。これはどのチームを対象にしていますか? どのバージョンがどこにインストールされていますか? セキュリティスキャンでフラグが付けられていますか? 誰も保守しなくなったスキルはどうなりますか?
Skillsmith は、チーム間でエージェントスキルを共有、スキャン、追跡するためのレジストリです。スキルはチームごとのレジストリに公開され、変更されないバージョンで管理されるため、インストール間の差異を気付かないままにせず、確認できます。フラグが付けられたスキルや疑わしいスキルは、セキュリティレビューが行われるまで隔離されます。古くなったスキルは、誰かのリポジトリでひっそりと放置されるのではなく、非推奨にできます。
インストール
クイックセットアップ(MCP)
Skillsmith は MCP 互換です。エージェントに合ったスニペットを選んでください。
SMI-4580: スニペットは packages/cli/src/templates/mcp-server.template.snippets.ts から取得しているため、この README とウェブサイトのドキュメントに差異が生じることはありません。
Claude Code — ~/.claude/settings.json
{
"mcpServers": {
"@skillsmith/mcp-server": {
"command": "npx",
"args": ["-y", "@skillsmith/mcp-server"],
"env": {
"SKILLSMITH_API_KEY": "sk_live_..."
}
}
}
}
設定を編集した後、Claude Code を再起動してください。
Cursor — ~/.cursor/mcp.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 以降が必要です。Node >=22.22 が必要です(Cursor にバンドルされている Node で要件を満たします)。SKILLSMITH_CLIENT を設定すると、インストール先がデフォルトの ~/.claude/skills ではなく ~/.cursor/skills になります。
セットアップ: npm install -g @skillsmith/mcp-server を実行し、続いて which skillsmith-mcp(macOS/Linux)または where skillsmith-mcp(Windows)を実行して、そのパスを上記の command に貼り付けます。Cursor にバンドルされている Node では npx 経由でパッケージを解決できないためです(Resources/app/resources/lib ディレクトリが存在しない場合、実際に ENOENT が発生します)。そのため、Cursor 内で動作することが確認されているのは、インストール済みバイナリを直接指定する方法だけです。それでもまず npx を試したい場合は、command を "npx" に置き換え、"args": ["-y", "@skillsmith/mcp-server"] を追加してください。より簡単ですが、同じ ENOENT に加え、インストールを繰り返すと EBADENGINE や ENOTEMPTY が発生する可能性があります。保存後、Cursor の「Settings → MCP」パネルでサーバーを有効にして、新しいチャットを開始してください。正しく設定されていても、そこで切り替えて有効にするまでは、エントリは未接続と表示されます。その後、ウィンドウを再読み込みしてください。
GitHub Copilot (VS Code) — .vscode/mcp.json(ワークスペース)
{
"mcpServers": {
"@skillsmith/mcp-server": {
"command": "npx",
"args": ["-y", "@skillsmith/mcp-server"],
"env": {
"SKILLSMITH_API_KEY": "sk_live_..."
}
}
}
}
VS Code 1.108 以降が必要です。ワークスペース単位の設定です(チームで共有する場合はリポジトリにコミットするか、代わりにユーザーの settings.json を使用してください)。
Windsurf — ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"@skillsmith/mcp-server": {
"command": "npx",
"args": ["-y", "@skillsmith/mcp-server"],
"env": {
"SKILLSMITH_API_KEY": "${env:SKILLSMITH_API_KEY}"
}
}
}
}
${env:VAR} の展開に対応しています。シークレットを設定に直接記述するのではなく、シェルで SKILLSMITH_API_KEY をエクスポートしてください。
Codex CLI — ~/.codex/config.toml(TOML、JSON ではありません)
[mcp_servers.@skillsmith/mcp-server]
command = "npx"
args = ["-y", "@skillsmith/mcp-server"]
[mcp_servers.@skillsmith/mcp-server.env]
SKILLSMITH_API_KEY = "sk_live_..."
Codex は ~/.agents/skills を読み込みます。CLI 経由でインストールする場合は、--client agents を指定してください。
エージェント横断(オープン標準) — ~/.agents/mcp.json
{
"mcpServers": {
"@skillsmith/mcp-server": {
"command": "npx",
"args": ["-y", "@skillsmith/mcp-server"],
"env": {
"SKILLSMITH_API_KEY": "sk_live_..."
}
}
}
}
エージェントスキルの横断的な規約に準拠するエージェントであれば、どれでも読み取れます。
MCP クライアントの設定に追加して再起動すれば、すぐにスキルを検索できます。
API キーの設定(任意)
レート制限の緩和と使用状況の追跡のため、API キーで認証できます。
最も簡単な方法 — CLI ログイン(対話形式):
npm install -g @skillsmith/cli
skillsmith login
ブラウザーで skillsmith.app/account/cli-token が開きます。キーを生成してコピーし、プロンプトが表示されたら貼り付けます。キーは OS のキーチェーンに安全に保存されます。
MCP サーバーの設定 — キーを設定に追加します:
上記のクライアント別スニペットには、すでに env.SKILLSMITH_API_KEY の欄が含まれています。sk_live_... のプレースホルダーを skillsmith login で取得した値に置き換えてください。
API キーは skillsmith.app/account/cli-token で取得できます。
| ティア | 月間クォータ | 1 分あたりの上限 | 費用 |
|---|---|---|---|
| API キーなし(MCP のデフォルト) | コミュニティレート、共有公開キー | エンドポイントごとに 30 回/分、すべてのキーなしクライアントで共有 | 無料 |
| Community | 100 | 30 回/分 | 無料 |
| Individual | 1,000 | 200 回/分 | $9.99/mo |
| Team | 10,000 | 300 回/分 | $25/user/mo |
| Enterprise | 無制限 | 600 回/分 | 営業担当にお問い合わせください |
クォータに関する注意: 月間の数値は、適用される場合にのみ厳格な上限となります。エッジ関数で月間クォータによるブロックが行われるのは Community のみで、
ENFORCE_COMMUNITY_QUOTAが'true'の場合に限られます。MCP サーバー独自の月間クォータの対象はskill_suggestとティアによって制限されるツールのみで、デフォルトではそれらを厳格にブロックします(SKILLSMITH_ENFORCE_MCP_QUOTA=falseにすると無効になります)。
キーが設定されていない場合、MCP サーバーは組み込みの公開キーにフォールバックします。そのため、キーなしの MCP 利用は Community レートとなり、他のすべてのキーなしクライアントと、エッジエンドポイント(search、get、recommend など)ごとの 30 回/分の枠を共有します。10 回の試用枠(IP あたり 100 回/分)は、認証に成功しない直接 HTTP リクエストに適用されます。これには、不正な形式または期限切れの認証情報を含むリクエストも含まれます。通常のキーなし MCP リクエストは組み込みキーで認証されるため、この枠の対象にはなりません。有効にした場合、共有キーには IP あたりの日次予算も適用されることがあります(ENFORCE_ANON_BUDGET。デフォルトでは無効)。
注: API キーをチャットに貼り付けないでください。必ず settings.json から設定してください。
CLI のインストール(開発用)
CLI はローカル開発で利用できます。
# From the repository root
npm run build
node packages/cli/dist/index.js search "testing"
重要な 4 つの質問
複数のチームがスキルを公開するようになると、重要なのは次の質問です。
- どのチームにスコープされていますか? レジストリ内のすべてのスキルは、いずれかのチームにスコープされています。
- ここにインストールされているのはどのバージョンですか? バージョンは不変です。
skill_diff(Individual ティア)とskill_outdatedは、実行元のマシンにインストールされているスキルの差分を報告します。 - セキュリティスキャンでフラグが付けられていますか? 公開インデックスから取得したスキルは自動的に評価されます。フラグ付きまたは疑わしいスキルは、レビューが完了するまで隔離されます。フラグが付いていないことは、正式に承認されたことを意味するのではなく、フラグが付けられていないことを意味します。各スキルには、Official から Unverified まで 8 段階の信頼ティアがあります(セキュリティガイド)。
- 誰もメンテナンスしていないスキルはどうなりますか? 古くなったスキルは、誰かのリポジトリでひっそりと放置されるのではなく、非推奨にできます。
仕組み
- 公開 — スキルはチームにスコープされたレジストリに、不変のバージョンとして公開されます。
- バージョン管理 — 公開するたびに新しい不変のバージョンが作成されます。既存のバージョンがその場で上書きされることはありません。
- 差分の検出 —
skill_diff(Individual ティア)とskill_outdatedにより、確認時点でインストールされている内容と、どこに遅れがあるかを把握できます。 - 非推奨化 — 古くなったスキルは、誰かのリポジトリでひっそりと放置されるのではなく、非推奨にできます。
スコープと権限
スキルはチームのレジストリにスコープされます。チームのオーナーと管理者は、スキルを公開・管理できるユーザーを制御します。メンバーはスキルをインストールして検索できます。
まずは個人で始める
自分用のスキルを無料で検索、インストール、管理できます。チームで同じスキルが必要になったときには、すでにレジストリが用意されています。
MCP ツール
Skillsmith には43個のツールが登録されています。43個のうち19個は、無料のCommunityティアで利用できます。上位ティアでは、バージョン追跡、チーム機能、エンタープライズ向けの制御機能が追加されます。ご利用のティアを超えるツールを呼び出すと、アップグレードを促すメッセージが返されます。料金。
Community(無料)
| ツール | 説明 |
|---|---|
search | フィルター(クエリ、カテゴリ、信頼度ティア、最小スコア)を指定してスキルを検索します |
get_skill | インストールコマンドなど、スキルの詳細情報を取得します |
install_skill | スキルをローカル環境にインストールします |
uninstall_skill | インストール済みのスキルを削除します |
skill_recommend | コンテキストに応じたスキルのおすすめを取得します |
skill_suggest | 現在のプロジェクトのコンテキストからスキルを提案します(月間クォータにカウントされます) |
skill_validate | スキルの構造と品質を検証します |
skill_compare | 2つのスキルを並べて比較します |
skill_outdated | インストール済みスキルが古くなっていないか、依存関係の状態と合わせて確認します |
skill_rescan | 最新のセキュリティパターンを使って、インストール済みのスキルを再スキャンします |
skill_publish | スキルを検証し、公開の準備をします |
skill_recover_source | ローカルにインストールされたスキルのGitHubソースを復元します(読み取り専用) |
index_local | ローカルディレクトリからスキルをインデックス化します |
inventory_push | このマシンにインストールされたスキルのインベントリをダッシュボードに送信します(読み取り専用。skillsmith login が必要です) |
skill_inventory_audit | インストール済みの各クライアントのスキルを確認し、名前の衝突と名前変更の提案を取得します |
apply_namespace_rename | 名前変更の提案を適用または元に戻します(最初にプレビューし、確定後にのみファイルを変更します) |
apply_recommended_edit | 監査で提案された文章の編集を適用します(最初にプレビューし、確定後にのみファイルを変更します) |
undo_apply | このセッションで最後に行った名前変更または編集を元に戻します |
apply_manifest_reconcile | 破損または曖昧なマニフェスト項目を修復します |
Individual
| ツール | 説明 |
|---|---|
skill_updates | レジストリを確認し、インストール済みスキルの新しいバージョンがないか調べます |
skill_diff | スキルの2つのバージョン間のセクション単位の差分を表示します |
skill_pack_audit | スキルのディレクトリを監査し、バージョンのずれや弱いトリガーを確認します |
Team
| ツール | 説明 |
|---|---|
skill_audit | インストール済みスキルに既知のセキュリティ勧告がないか確認します |
team_workspace | チームワークスペースを作成、一覧表示、取得、削除します |
share_skill | チームワークスペースのスキルを追加、削除、一覧表示します |
publish_private | このマシン上で、自分の検索結果からスキルを非表示にします(ローカルのみ) |
team_analytics_dashboard | ユーザーごとのツール使用状況、上位のツール、日次の傾向を表示します |
team_usage_report | 期間比較付きの週次または月次の使用状況サマリーを表示します |
compliance_report | ローカルのスキルインベントリについて、SOC2、CycloneDX SBOM、またはJSON形式のレポートを生成します |
エンタープライズ
| ツール | 説明 |
|---|---|
private_registry_publish | 承認を受けるため、スキルのバージョンをプライベートレジストリに公開します |
private_registry_manage | プライベートレジストリのスキルの一覧表示、取得、インストール、非推奨化、承認、却下を行います |
configure_sso | DNS ドメインの検証を含め、SSO/SAML を設定します |
sso_settings | 現在の SSO/SAML 設定を表示します |
rbac_manage | 各チームロールで実行できる操作を確認、調整します |
rbac_assign_role | メンバーへのロールの割り当てや取り消し、メンバーの一覧表示を行います |
rbac_create_policy | ロールの権限オーバーライドを一括設定またはクリアします |
audit_export | 指定した期間の監査ログイベントをエクスポートします |
audit_query | フィルターを指定して監査ログを検索します |
siem_export | 監査イベントを SIEM にエクスポートします |
analytics_dashboard | 推奨の精度、利用傾向、チーム全体の集計を確認します |
usage_report | すべての指標を対象にした詳細な利用レポートを表示します |
webhook_configure | スキルのライフサイクルイベント用に署名付き Webhook を設定します(プレビュー) |
api_key_manage | API キーの作成、一覧表示、取り消しを行います(プレビュー) |
セッション開始時の自動名前空間監査は、Team および Enterprise の機能です。上記の監査ツールと名前変更ツールは、どのティアでも手動で実行できます。
設計の基本はローカルファーストです。 Skillsmith はレジストリをローカルの SQLite データベース ~/.skillsmith/skills.db にキャッシュします。このデータベースは MCP サーバー、CLI、VS Code 拡張機能で共有されます。既定では FTS5(SQLite に組み込まれたキーワード検索)を使用します。セマンティック検索はオプトイン(SKILLSMITH_USE_HNSW=true)で、有効にすると、ローカルの ONNX 埋め込み(CPU 上で動作するオープンな ML モデル形式)を使って実行されます。API 呼び出しは発生しません。ローカルスキルデータベースの内部では、スキーマ、FTS5/HNSW の検索方法、キャッシュを最新の状態に保つ sync(Team+ ティアの機能)について説明しています。
アーキテクチャ
Skillsmith は Model Context Protocol(MCP)を使用します。
┌─────────────────────────────────────────────────────┐
│ 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) ││
│ └─────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────┘
使用方法
設定が完了すると、MCP クライアントから Skillsmith のツールを使用できます。
"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 の使用方法(開発)
# From the repository, after building
node packages/cli/dist/index.js search "testing" --tier verified --min-score 80
node packages/cli/dist/index.js get community/jest-helper
node packages/cli/dist/index.js install community/jest-helper
ドキュメント
- セキュリティガイド - スキルの信頼性、安全性、保護について
- 5 分で始めるセットアップ - クイックスタートガイド
- 設定ガイド - セットアップと使用方法の詳細
- ステータス - Skillsmith の主要サービスの現在のステータスと稼働時間の履歴
開発
Skillsmith では、Docker を中心とした開発を採用しています。すべてのコマンドを Docker 内で実行することで、すべてのプラットフォームでネイティブモジュールのサポートを一貫させます。
前提条件
- Docker Desktop(v24 以降)または Docker Compose を備えた Docker Engine
- Git(リポジトリのクローン用)
- Node.js(任意。Docker 外でローカルツールを使用する場合のみ)
クイックスタート
# 1. Clone the repository
git clone https://github.com/smith-horn/skillsmith.git
cd skillsmith
# 2. Create your local environment file
cp .env.example .env
# 3. Start the development container
docker 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 test
docker exec skillsmith-dev-1 npm run build
docker exec skillsmith-dev-1 npm test
Docker でのコマンド実行
すべての npm コマンドは Docker コンテナ内で実行してください。
| コマンド | Docker コマンド |
|---|---|
| ビルド | docker exec skillsmith-dev-1 npm run build |
| テスト | docker exec skillsmith-dev-1 npm test |
| Lint | docker exec skillsmith-dev-1 npm run lint |
| 型チェック | docker exec skillsmith-dev-1 npm run typecheck |
| 監査 | docker exec skillsmith-dev-1 npm run audit:standards |
コンテナの管理
# Start development container
docker compose --profile dev up -d
# Check container status
docker ps | grep skillsmith
# View container logs
docker logs skillsmith-dev-1
# Stop container
docker compose --profile dev down
# Restart after Dockerfile changes
docker compose --profile dev down
docker compose --profile dev build --no-cache
docker compose --profile dev up -d
変更のプル後
package.json または package-lock.json に変更がある場合は、変更をプルした後に次の操作を行ってください。
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
トラブルシューティング
コンテナが起動しない
docker compose --profile dev down
docker volume rm skillsmith_node_modules
docker compose --profile dev up -d
このワイプによって、エントリーポイントの node_modules 事前チェックで起動がブロックされることはありません。ルートボリュームはイメージから再シードされるため、チェックは終了せずに通過します(SMI-6674)。後続の起動手順は別の問題です。ワイプ後は依存関係が混在した状態になるため、続けて単独でインストールを実行しないでください。代わりに、順序付きの更新手順を表示して、その手順に従ってください(ADR-158、SMI-6614)。
( cd <main-checkout-path> && sh scripts/lib/print-deps-refresh-advice.sh <main-checkout-path> )
ネイティブモジュールのエラー(ERR_DLOPEN_FAILED)
better-sqlite3 や onnxruntime-node などのネイティブモジュールは、再ビルドが必要な場合があります。
docker exec -w /app skillsmith-dev-1 sh -c 'sh scripts/lib/node-modules-mount-gate.sh && npm rebuild'
テストで共有ライブラリのエラーが発生する場合
ld-linux-aarch64.so.1 などに関するエラーが表示される場合は、ローカルではなく Docker 内で実行していることを確認してください。
# Wrong - don't run locally
npm test
# Correct - run in Docker
docker exec skillsmith-dev-1 npm test
なぜ Docker なのか?
Skillsmith は、glibc を必要とするネイティブ Node.js モジュール(better-sqlite3、onnxruntime-node)を使用します。Docker は glibc を備えた一貫性のある Debian ベースの環境を提供し、musl libc を使用するシステム(Alpine Linux など)での互換性の問題を回避できます。
開発ワークフローとスキルの設定については、CLAUDE.md をご覧ください。
技術スタック
- ランタイム:Node.js >=22.22(glibc を備えた Docker)
- プロトコル:MCP(Model Context Protocol)
- データベース:FTS5 を使用する SQLite
- 埋め込み:onnxruntime-node 経由の all-MiniLM-L6-v2
- テスト:Vitest
- CI/CD:GitHub Actions
ライセンス
Skillsmith は、Elastic License 2.0 の下でソースコードを利用できます。
できること:
- 個人または社内の業務目的で Skillsmith を使用する
- 自分で使用するためにソースコードを変更する
- チーム向けにセルフホストする
- バグ修正や改善をコントリビュートする
できないこと:
- Skillsmith をサードパーティ向けのマネージドサービスとして提供する
- ライセンスキーの適用機能を回避する
ライセンス全文については、LICENSE ファイルをご覧ください。
作成者
Smith Horn Group Ltd
Skillsmith は Anthropic とは提携していません。Claude と Claude Code は Anthropic の商標です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。