cc-recommender 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/LICENSE +21 -0
  3. package/README.ja.md +201 -0
  4. package/README.md +201 -0
  5. package/data/mcp-servers.json +34777 -0
  6. package/data/plugins.json +1571 -0
  7. package/data/skills.json +3233 -0
  8. package/dist/config/constants.d.ts +18 -0
  9. package/dist/config/constants.d.ts.map +1 -0
  10. package/dist/config/constants.js +34 -0
  11. package/dist/config/constants.js.map +1 -0
  12. package/dist/config/file-mappings.d.ts +13 -0
  13. package/dist/config/file-mappings.d.ts.map +1 -0
  14. package/dist/config/file-mappings.js +70 -0
  15. package/dist/config/file-mappings.js.map +1 -0
  16. package/dist/config/index.d.ts +9 -0
  17. package/dist/config/index.d.ts.map +1 -0
  18. package/dist/config/index.js +9 -0
  19. package/dist/config/index.js.map +1 -0
  20. package/dist/config/scoring-config.d.ts +27 -0
  21. package/dist/config/scoring-config.d.ts.map +1 -0
  22. package/dist/config/scoring-config.js +27 -0
  23. package/dist/config/scoring-config.js.map +1 -0
  24. package/dist/index.d.ts +9 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +25 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/repositories/index.d.ts +7 -0
  29. package/dist/repositories/index.d.ts.map +1 -0
  30. package/dist/repositories/index.js +7 -0
  31. package/dist/repositories/index.js.map +1 -0
  32. package/dist/repositories/recommendation.repository.d.ts +56 -0
  33. package/dist/repositories/recommendation.repository.d.ts.map +1 -0
  34. package/dist/repositories/recommendation.repository.js +142 -0
  35. package/dist/repositories/recommendation.repository.js.map +1 -0
  36. package/dist/repositories/remote-data.repository.d.ts +20 -0
  37. package/dist/repositories/remote-data.repository.d.ts.map +1 -0
  38. package/dist/repositories/remote-data.repository.js +307 -0
  39. package/dist/repositories/remote-data.repository.js.map +1 -0
  40. package/dist/schemas/index.d.ts +7 -0
  41. package/dist/schemas/index.d.ts.map +1 -0
  42. package/dist/schemas/index.js +7 -0
  43. package/dist/schemas/index.js.map +1 -0
  44. package/dist/schemas/tool-schemas.d.ts +55 -0
  45. package/dist/schemas/tool-schemas.d.ts.map +1 -0
  46. package/dist/schemas/tool-schemas.js +36 -0
  47. package/dist/schemas/tool-schemas.js.map +1 -0
  48. package/dist/server/index.d.ts +8 -0
  49. package/dist/server/index.d.ts.map +1 -0
  50. package/dist/server/index.js +8 -0
  51. package/dist/server/index.js.map +1 -0
  52. package/dist/server/mcp-server.d.ts +11 -0
  53. package/dist/server/mcp-server.d.ts.map +1 -0
  54. package/dist/server/mcp-server.js +27 -0
  55. package/dist/server/mcp-server.js.map +1 -0
  56. package/dist/server/tool-registry.d.ts +12 -0
  57. package/dist/server/tool-registry.d.ts.map +1 -0
  58. package/dist/server/tool-registry.js +114 -0
  59. package/dist/server/tool-registry.js.map +1 -0
  60. package/dist/services/analyzer/index.d.ts +7 -0
  61. package/dist/services/analyzer/index.d.ts.map +1 -0
  62. package/dist/services/analyzer/index.js +7 -0
  63. package/dist/services/analyzer/index.js.map +1 -0
  64. package/dist/services/analyzer/parsers/go-mod.parser.d.ts +11 -0
  65. package/dist/services/analyzer/parsers/go-mod.parser.d.ts.map +1 -0
  66. package/dist/services/analyzer/parsers/go-mod.parser.js +34 -0
  67. package/dist/services/analyzer/parsers/go-mod.parser.js.map +1 -0
  68. package/dist/services/analyzer/parsers/index.d.ts +9 -0
  69. package/dist/services/analyzer/parsers/index.d.ts.map +1 -0
  70. package/dist/services/analyzer/parsers/index.js +9 -0
  71. package/dist/services/analyzer/parsers/index.js.map +1 -0
  72. package/dist/services/analyzer/parsers/package-json.parser.d.ts +11 -0
  73. package/dist/services/analyzer/parsers/package-json.parser.d.ts.map +1 -0
  74. package/dist/services/analyzer/parsers/package-json.parser.js +61 -0
  75. package/dist/services/analyzer/parsers/package-json.parser.js.map +1 -0
  76. package/dist/services/analyzer/parsers/requirements-txt.parser.d.ts +11 -0
  77. package/dist/services/analyzer/parsers/requirements-txt.parser.d.ts.map +1 -0
  78. package/dist/services/analyzer/parsers/requirements-txt.parser.js +49 -0
  79. package/dist/services/analyzer/parsers/requirements-txt.parser.js.map +1 -0
  80. package/dist/services/analyzer/project-analyzer.service.d.ts +11 -0
  81. package/dist/services/analyzer/project-analyzer.service.d.ts.map +1 -0
  82. package/dist/services/analyzer/project-analyzer.service.js +101 -0
  83. package/dist/services/analyzer/project-analyzer.service.js.map +1 -0
  84. package/dist/services/analyzer.d.ts +8 -0
  85. package/dist/services/analyzer.d.ts.map +1 -0
  86. package/dist/services/analyzer.js +8 -0
  87. package/dist/services/analyzer.js.map +1 -0
  88. package/dist/services/mcp-fetcher.d.ts +12 -0
  89. package/dist/services/mcp-fetcher.d.ts.map +1 -0
  90. package/dist/services/mcp-fetcher.js +262 -0
  91. package/dist/services/mcp-fetcher.js.map +1 -0
  92. package/dist/services/plugin-fetcher.d.ts +12 -0
  93. package/dist/services/plugin-fetcher.d.ts.map +1 -0
  94. package/dist/services/plugin-fetcher.js +149 -0
  95. package/dist/services/plugin-fetcher.js.map +1 -0
  96. package/dist/services/recommender/formatters.d.ts +22 -0
  97. package/dist/services/recommender/formatters.d.ts.map +1 -0
  98. package/dist/services/recommender/formatters.js +90 -0
  99. package/dist/services/recommender/formatters.js.map +1 -0
  100. package/dist/services/recommender/index.d.ts +10 -0
  101. package/dist/services/recommender/index.d.ts.map +1 -0
  102. package/dist/services/recommender/index.js +10 -0
  103. package/dist/services/recommender/index.js.map +1 -0
  104. package/dist/services/recommender/recommendation.service.d.ts +27 -0
  105. package/dist/services/recommender/recommendation.service.d.ts.map +1 -0
  106. package/dist/services/recommender/recommendation.service.js +34 -0
  107. package/dist/services/recommender/recommendation.service.js.map +1 -0
  108. package/dist/services/recommender/scoring/index.d.ts +7 -0
  109. package/dist/services/recommender/scoring/index.d.ts.map +1 -0
  110. package/dist/services/recommender/scoring/index.js +7 -0
  111. package/dist/services/recommender/scoring/index.js.map +1 -0
  112. package/dist/services/recommender/scoring/scorer.d.ts +27 -0
  113. package/dist/services/recommender/scoring/scorer.d.ts.map +1 -0
  114. package/dist/services/recommender/scoring/scorer.js +100 -0
  115. package/dist/services/recommender/scoring/scorer.js.map +1 -0
  116. package/dist/services/recommender/search.service.d.ts +24 -0
  117. package/dist/services/recommender/search.service.d.ts.map +1 -0
  118. package/dist/services/recommender/search.service.js +57 -0
  119. package/dist/services/recommender/search.service.js.map +1 -0
  120. package/dist/services/recommender.d.ts +11 -0
  121. package/dist/services/recommender.d.ts.map +1 -0
  122. package/dist/services/recommender.js +11 -0
  123. package/dist/services/recommender.js.map +1 -0
  124. package/dist/services/security-scanner.service.d.ts +48 -0
  125. package/dist/services/security-scanner.service.d.ts.map +1 -0
  126. package/dist/services/security-scanner.service.js +98 -0
  127. package/dist/services/security-scanner.service.js.map +1 -0
  128. package/dist/services/skill-fetcher.d.ts +12 -0
  129. package/dist/services/skill-fetcher.d.ts.map +1 -0
  130. package/dist/services/skill-fetcher.js +307 -0
  131. package/dist/services/skill-fetcher.js.map +1 -0
  132. package/dist/tools/handlers/get-skill-details.tool.d.ts +25 -0
  133. package/dist/tools/handlers/get-skill-details.tool.d.ts.map +1 -0
  134. package/dist/tools/handlers/get-skill-details.tool.js +29 -0
  135. package/dist/tools/handlers/get-skill-details.tool.js.map +1 -0
  136. package/dist/tools/handlers/get-stats.tool.d.ts +19 -0
  137. package/dist/tools/handlers/get-stats.tool.d.ts.map +1 -0
  138. package/dist/tools/handlers/get-stats.tool.js +32 -0
  139. package/dist/tools/handlers/get-stats.tool.js.map +1 -0
  140. package/dist/tools/handlers/index.d.ts +11 -0
  141. package/dist/tools/handlers/index.d.ts.map +1 -0
  142. package/dist/tools/handlers/index.js +11 -0
  143. package/dist/tools/handlers/index.js.map +1 -0
  144. package/dist/tools/handlers/list-categories.tool.d.ts +19 -0
  145. package/dist/tools/handlers/list-categories.tool.d.ts.map +1 -0
  146. package/dist/tools/handlers/list-categories.tool.js +33 -0
  147. package/dist/tools/handlers/list-categories.tool.js.map +1 -0
  148. package/dist/tools/handlers/recommend-skills.tool.d.ts +32 -0
  149. package/dist/tools/handlers/recommend-skills.tool.d.ts.map +1 -0
  150. package/dist/tools/handlers/recommend-skills.tool.js +43 -0
  151. package/dist/tools/handlers/recommend-skills.tool.js.map +1 -0
  152. package/dist/tools/handlers/search-skills.tool.d.ts +27 -0
  153. package/dist/tools/handlers/search-skills.tool.d.ts.map +1 -0
  154. package/dist/tools/handlers/search-skills.tool.js +31 -0
  155. package/dist/tools/handlers/search-skills.tool.js.map +1 -0
  156. package/dist/tools/index.d.ts +9 -0
  157. package/dist/tools/index.d.ts.map +1 -0
  158. package/dist/tools/index.js +11 -0
  159. package/dist/tools/index.js.map +1 -0
  160. package/dist/types/domain-types.d.ts +102 -0
  161. package/dist/types/domain-types.d.ts.map +1 -0
  162. package/dist/types/domain-types.js +7 -0
  163. package/dist/types/domain-types.js.map +1 -0
  164. package/dist/types/index.d.ts +9 -0
  165. package/dist/types/index.d.ts.map +1 -0
  166. package/dist/types/index.js +7 -0
  167. package/dist/types/index.js.map +1 -0
  168. package/dist/types/raw-types.d.ts +46 -0
  169. package/dist/types/raw-types.d.ts.map +1 -0
  170. package/dist/types/raw-types.js +7 -0
  171. package/dist/types/raw-types.js.map +1 -0
  172. package/dist/types/service-types.d.ts +28 -0
  173. package/dist/types/service-types.d.ts.map +1 -0
  174. package/dist/types/service-types.js +7 -0
  175. package/dist/types/service-types.js.map +1 -0
  176. package/dist/utils/glob-matcher.d.ts +24 -0
  177. package/dist/utils/glob-matcher.d.ts.map +1 -0
  178. package/dist/utils/glob-matcher.js +34 -0
  179. package/dist/utils/glob-matcher.js.map +1 -0
  180. package/dist/utils/index.d.ts +7 -0
  181. package/dist/utils/index.d.ts.map +1 -0
  182. package/dist/utils/index.js +7 -0
  183. package/dist/utils/index.js.map +1 -0
  184. package/package.json +82 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,41 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.0] - 2025-01-30
11
+
12
+ ### Added
13
+ - Initial release of cc-recommender
14
+ - MCP server for recommending Claude Code skills, plugins, and MCP servers
15
+ - Project analysis based on languages, frameworks, and dependencies
16
+ - 5 MCP tools:
17
+ - `recommend_skills` - Analyze project and recommend suitable items
18
+ - `search_skills` - Search by keyword
19
+ - `get_skill_details` - Get detailed information
20
+ - `list_categories` - List all categories
21
+ - `get_stats` - Get database statistics
22
+ - Data sources:
23
+ - [anthropics/claude-plugins-official](https://github.com/anthropics/claude-plugins-official) - Official plugins
24
+ - [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) - MCP servers
25
+ - [hesreallyhim/awesome-claude-code](https://github.com/hesreallyhim/awesome-claude-code) - Skills/workflows/hooks
26
+ - Auto-update feature:
27
+ - Fetches latest data from GitHub on startup
28
+ - Falls back to bundled data if remote fetch fails
29
+ - No manual updates required
30
+ - Code quality tools:
31
+ - Biome for linting and formatting
32
+ - TypeScript strict mode
33
+ - cc-audit for security scanning
34
+ - Husky + lint-staged for pre-commit hooks
35
+ - Developer experience:
36
+ - pnpm package manager
37
+ - Automatic weekly data updates via GitHub Actions
38
+ - Comprehensive documentation (README, CONTRIBUTING, ARCHITECTURE)
39
+
40
+ [Unreleased]: https://github.com/yuji0809/cc-recommender/compare/v0.1.0...HEAD
41
+ [0.1.0]: https://github.com/yuji0809/cc-recommender/releases/tag/v0.1.0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Yuji
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.ja.md ADDED
@@ -0,0 +1,201 @@
1
+ # cc-recommender
2
+
3
+ [![npm version](https://img.shields.io/npm/v/cc-recommender.svg)](https://www.npmjs.com/package/cc-recommender)
4
+ [![CI](https://github.com/yuji0809/cc-recommender/actions/workflows/ci.yml/badge.svg)](https://github.com/yuji0809/cc-recommender/actions/workflows/ci.yml)
5
+ [![codecov](https://codecov.io/gh/yuji0809/cc-recommender/branch/main/graph/badge.svg)](https://codecov.io/gh/yuji0809/cc-recommender)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg)](https://nodejs.org/)
8
+
9
+ > 🎯 Claude Code向けスキル/プラグイン/MCPサーバー推薦MCPサーバー
10
+
11
+ [English](./README.md) | 日本語
12
+
13
+ Claude Codeで「何入れたらいい?」と聞くだけで、プロジェクトを分析し、最適なスキル・プラグイン・MCPサーバーを提案します。
14
+
15
+ ## 特徴
16
+
17
+ - 📦 **プラグイン推薦** - 公式マーケットプレイスから最適なプラグインを提案
18
+ - 🔌 **MCPサーバー推薦** - awesome-mcp-serversからMCPサーバーを検索
19
+ - 🎯 **スキル/ワークフロー推薦** - awesome-claude-codeからスキル、フック、コマンドを提案
20
+ - 🔍 **プロジェクト分析** - 使用言語、フレームワーク、依存関係を自動検出
21
+ - 🏷️ **キーワード検索** - 名前やタグで検索
22
+ - 🔄 **自動更新** - GitHubから常に最新データを取得(手動更新不要)
23
+
24
+ ## インストール
25
+
26
+ ### npm経由(推奨)
27
+
28
+ ```bash
29
+ npm install -g cc-recommender
30
+ ```
31
+
32
+ ### ローカルビルド
33
+
34
+ ```bash
35
+ git clone https://github.com/yuji0809/cc-recommender.git
36
+ cd cc-recommender
37
+ pnpm install
38
+ pnpm run build
39
+ ```
40
+
41
+ **要件:**
42
+ - Node.js >= 22.0.0
43
+ - pnpm >= 10.0.0(ローカルビルドの場合)
44
+
45
+ ## Claude Codeで使う
46
+
47
+ `~/.claude/settings.json` に追加:
48
+
49
+ ```json
50
+ {
51
+ "mcpServers": {
52
+ "cc-recommender": {
53
+ "command": "npx",
54
+ "args": ["-y", "cc-recommender"]
55
+ }
56
+ }
57
+ }
58
+ ```
59
+
60
+ またはローカルビルドの場合:
61
+
62
+ ```json
63
+ {
64
+ "mcpServers": {
65
+ "cc-recommender": {
66
+ "command": "node",
67
+ "args": ["/path/to/cc-recommender/dist/index.js"]
68
+ }
69
+ }
70
+ }
71
+ ```
72
+
73
+ ## 使い方
74
+
75
+ ### プロジェクト分析と推薦
76
+
77
+ ```
78
+ You: このプロジェクトに何を入れたらいい?
79
+
80
+ Claude: [recommend_skills ツールを使用]
81
+
82
+ 📦 プラグイン
83
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
84
+ 1. typescript-lsp (公式)
85
+ ├─ 用途: TypeScript の定義ジャンプ、型チェック
86
+ ├─ スコア: 95 ✅ 高適合
87
+ └─ インストール: /plugin install typescript-lsp
88
+
89
+ 🔌 MCPサーバー
90
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
91
+ 1. supabase-mcp
92
+ ├─ 用途: Supabase DB 操作
93
+ ├─ 推薦理由: @supabase/supabase-js 依存
94
+ └─ インストール: claude mcp add supabase-mcp
95
+ ```
96
+
97
+ ### キーワード検索
98
+
99
+ ```
100
+ You: データベース関連のMCPを探して
101
+
102
+ Claude: [search_skills ツールを使用]
103
+ ```
104
+
105
+ ## 提供ツール
106
+
107
+ | ツール | 説明 |
108
+ |--------|------|
109
+ | `recommend_skills` | プロジェクトを分析し、適切なスキル/プラグイン/MCPを推薦 |
110
+ | `search_skills` | キーワードで検索 |
111
+ | `get_skill_details` | 特定アイテムの詳細を取得 |
112
+ | `list_categories` | カテゴリ一覧を取得 |
113
+ | `get_stats` | データベース統計を取得 |
114
+
115
+ ## データソース
116
+
117
+ このMCPサーバーは、以下のソースからデータを集約しています:
118
+
119
+ | ソース | 内容 | 更新頻度 |
120
+ |--------|------|---------|
121
+ | [anthropics/claude-plugins-official](https://github.com/anthropics/claude-plugins-official) | 公式プラグインマーケットプレイス | 週次 |
122
+ | [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) | MCPサーバーのキュレーションリスト | 週次 |
123
+ | [hesreallyhim/awesome-claude-code](https://github.com/hesreallyhim/awesome-claude-code) | スキル/ワークフロー/フックのリスト | 週次 |
124
+
125
+ ### 自動更新機能
126
+
127
+ **仕組み:**
128
+ - サーバー起動時にGitHubから最新データを自動取得
129
+ - リモート取得に失敗した場合はバンドル版データにフォールバック
130
+ - 手動更新や再インストール不要
131
+
132
+ **オフラインモード**(オプション):
133
+ ```json
134
+ {
135
+ "mcpServers": {
136
+ "cc-recommender": {
137
+ "command": "npx",
138
+ "args": ["-y", "cc-recommender"],
139
+ "env": {
140
+ "CC_RECOMMENDER_OFFLINE_MODE": "true"
141
+ }
142
+ }
143
+ }
144
+ }
145
+ ```
146
+
147
+ `CC_RECOMMENDER_OFFLINE_MODE` を有効にすると、バンドル版データのみを使用します(リモート取得なし)。
148
+
149
+ ### 環境変数
150
+
151
+ | 変数 | 説明 | デフォルト |
152
+ |------|------|-----------|
153
+ | `CC_RECOMMENDER_OFFLINE_MODE` | 自動更新を無効化してバンドル版データのみを使用 | `false` |
154
+ | `SKIP_SECURITY_SCAN` | データ取得時にセキュリティスキャンをスキップ(開発者向け) | `false` |
155
+
156
+ ## 開発
157
+
158
+ 開発セットアップと貢献ガイドラインについては、以下を参照してください:
159
+ - [CONTRIBUTING.md](./CONTRIBUTING.md) - 貢献ガイド
160
+ - [ARCHITECTURE.md](./docs/ARCHITECTURE.md) - アーキテクチャドキュメント
161
+
162
+ ### 開発者向けクイックスタート
163
+
164
+ ```bash
165
+ # 依存関係インストール
166
+ pnpm install
167
+
168
+ # テスト実行
169
+ pnpm run test
170
+
171
+ # 型チェック + Lint + セキュリティ監査
172
+ pnpm run check
173
+
174
+ # ビルド
175
+ pnpm run build
176
+ ```
177
+
178
+ ## セキュリティ
179
+
180
+ このプロジェクトではセキュリティを最優先事項としており、複数の自動化されたセキュリティ対策を実施しています:
181
+
182
+ - **自動スキャン**: Dependabot、CodeQL、カスタムセキュリティ監査
183
+ - **プリコミット保護**: コミット前にセキュリティチェックを実行
184
+ - **CI/CD ゲート**: すべての PR はセキュリティスキャンに合格する必要あり
185
+ - **ライセンス準拠**: すべての依存関係が承認されたライセンスであることを検証
186
+
187
+ 詳細は [SECURITY.md](./SECURITY.md) を参照してください。
188
+
189
+ セキュリティ脆弱性を報告する場合は、[GitHub Security Advisories](https://github.com/yuji0809/cc-recommender/security/advisories) をご利用ください。
190
+
191
+ ## コントリビューション
192
+
193
+ 貢献を歓迎します!詳細は [CONTRIBUTING.md](./CONTRIBUTING.md) を参照してください。
194
+
195
+ ## ライセンス
196
+
197
+ [MIT](https://opensource.org/licenses/MIT)
198
+
199
+ ## 作者
200
+
201
+ Yuji
package/README.md ADDED
@@ -0,0 +1,201 @@
1
+ # cc-recommender
2
+
3
+ [![npm version](https://img.shields.io/npm/v/cc-recommender.svg)](https://www.npmjs.com/package/cc-recommender)
4
+ [![CI](https://github.com/yuji0809/cc-recommender/actions/workflows/ci.yml/badge.svg)](https://github.com/yuji0809/cc-recommender/actions/workflows/ci.yml)
5
+ [![codecov](https://codecov.io/gh/yuji0809/cc-recommender/branch/main/graph/badge.svg)](https://codecov.io/gh/yuji0809/cc-recommender)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+ [![Node.js Version](https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg)](https://nodejs.org/)
8
+
9
+ > 🎯 Skills, Plugins, and MCP Server Recommendation MCP Server for Claude Code
10
+
11
+ English | [日本語](./README.ja.md)
12
+
13
+ Just ask "What should I install?" in Claude Code, and it will analyze your project and recommend the best skills, plugins, and MCP servers.
14
+
15
+ ## Features
16
+
17
+ - 📦 **Plugin Recommendations** - Suggests optimal plugins from the official marketplace
18
+ - 🔌 **MCP Server Recommendations** - Search MCP servers from awesome-mcp-servers
19
+ - 🎯 **Skill/Workflow Recommendations** - Suggests skills, hooks, and commands from awesome-claude-code
20
+ - 🔍 **Project Analysis** - Automatically detects languages, frameworks, and dependencies
21
+ - 🏷️ **Keyword Search** - Search by name or tags
22
+ - 🔄 **Auto-Update** - Always fetches the latest data from GitHub (no manual updates needed)
23
+
24
+ ## Installation
25
+
26
+ ### Via npm (Recommended)
27
+
28
+ ```bash
29
+ npm install -g cc-recommender
30
+ ```
31
+
32
+ ### Local Build
33
+
34
+ ```bash
35
+ git clone https://github.com/yuji0809/cc-recommender.git
36
+ cd cc-recommender
37
+ pnpm install
38
+ pnpm run build
39
+ ```
40
+
41
+ **Requirements:**
42
+ - Node.js >= 22.0.0
43
+ - pnpm >= 10.0.0 (for local build)
44
+
45
+ ## Usage with Claude Code
46
+
47
+ Add to `~/.claude/settings.json`:
48
+
49
+ ```json
50
+ {
51
+ "mcpServers": {
52
+ "cc-recommender": {
53
+ "command": "npx",
54
+ "args": ["-y", "cc-recommender"]
55
+ }
56
+ }
57
+ }
58
+ ```
59
+
60
+ Or for local build:
61
+
62
+ ```json
63
+ {
64
+ "mcpServers": {
65
+ "cc-recommender": {
66
+ "command": "node",
67
+ "args": ["/path/to/cc-recommender/dist/index.js"]
68
+ }
69
+ }
70
+ }
71
+ ```
72
+
73
+ ## How to Use
74
+
75
+ ### Project Analysis and Recommendations
76
+
77
+ ```
78
+ You: What should I install for this project?
79
+
80
+ Claude: [Uses recommend_skills tool]
81
+
82
+ 📦 Plugins
83
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
84
+ 1. typescript-lsp (Official)
85
+ ├─ Purpose: TypeScript definition jump, type checking
86
+ ├─ Score: 95 ✅ High Match
87
+ └─ Install: /plugin install typescript-lsp
88
+
89
+ 🔌 MCP Servers
90
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
91
+ 1. supabase-mcp
92
+ ├─ Purpose: Supabase DB operations
93
+ ├─ Reason: Depends on @supabase/supabase-js
94
+ └─ Install: claude mcp add supabase-mcp
95
+ ```
96
+
97
+ ### Keyword Search
98
+
99
+ ```
100
+ You: Find MCP servers related to databases
101
+
102
+ Claude: [Uses search_skills tool]
103
+ ```
104
+
105
+ ## Available Tools
106
+
107
+ | Tool | Description |
108
+ |------|-------------|
109
+ | `recommend_skills` | Analyzes project and recommends appropriate skills/plugins/MCPs |
110
+ | `search_skills` | Search by keywords |
111
+ | `get_skill_details` | Get details of a specific item |
112
+ | `list_categories` | Get list of categories |
113
+ | `get_stats` | Get database statistics |
114
+
115
+ ## Data Sources
116
+
117
+ This MCP server aggregates data from the following sources:
118
+
119
+ | Source | Content | Update Frequency |
120
+ |--------|---------|------------------|
121
+ | [anthropics/claude-plugins-official](https://github.com/anthropics/claude-plugins-official) | Official plugin marketplace | Weekly |
122
+ | [punkpeye/awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers) | Curated list of MCP servers | Weekly |
123
+ | [hesreallyhim/awesome-claude-code](https://github.com/hesreallyhim/awesome-claude-code) | List of skills/workflows/hooks | Weekly |
124
+
125
+ ### Auto-Update Feature
126
+
127
+ **How it works:**
128
+ - The server automatically fetches the latest data from GitHub when it starts
129
+ - Falls back to bundled data if the remote fetch fails
130
+ - No manual updates or reinstallation required
131
+
132
+ **Offline Mode** (optional):
133
+ ```json
134
+ {
135
+ "mcpServers": {
136
+ "cc-recommender": {
137
+ "command": "npx",
138
+ "args": ["-y", "cc-recommender"],
139
+ "env": {
140
+ "CC_RECOMMENDER_OFFLINE_MODE": "true"
141
+ }
142
+ }
143
+ }
144
+ }
145
+ ```
146
+
147
+ When `CC_RECOMMENDER_OFFLINE_MODE` is enabled, only bundled data is used (no remote fetching).
148
+
149
+ ### Environment Variables
150
+
151
+ | Variable | Description | Default |
152
+ |----------|-------------|---------|
153
+ | `CC_RECOMMENDER_OFFLINE_MODE` | Disable auto-updates and use only bundled data | `false` |
154
+ | `SKIP_SECURITY_SCAN` | Skip security scanning during data fetch (for developers) | `false` |
155
+
156
+ ## Development
157
+
158
+ For development setup and contribution guidelines, see:
159
+ - [CONTRIBUTING.md](./CONTRIBUTING.md) - Contribution guide
160
+ - [ARCHITECTURE.md](./docs/ARCHITECTURE.md) - Architecture documentation
161
+
162
+ ### Quick Start for Developers
163
+
164
+ ```bash
165
+ # Install dependencies
166
+ pnpm install
167
+
168
+ # Run tests
169
+ pnpm run test
170
+
171
+ # Type check + Lint + Security audit
172
+ pnpm run check
173
+
174
+ # Build
175
+ pnpm run build
176
+ ```
177
+
178
+ ## Security
179
+
180
+ Security is a top priority for this project. We employ multiple layers of automated security measures:
181
+
182
+ - **Automated Scanning**: Dependabot, CodeQL, and custom security audits
183
+ - **Pre-commit Protection**: Security checks run before every commit
184
+ - **CI/CD Gates**: All PRs must pass security scans before merging
185
+ - **License Compliance**: All dependencies are validated for approved licenses
186
+
187
+ For more details, see [SECURITY.md](./SECURITY.md).
188
+
189
+ To report a security vulnerability, please use [GitHub Security Advisories](https://github.com/yuji0809/cc-recommender/security/advisories).
190
+
191
+ ## Contributing
192
+
193
+ We welcome contributions! See [CONTRIBUTING.md](./CONTRIBUTING.md) for details.
194
+
195
+ ## License
196
+
197
+ [MIT](https://opensource.org/licenses/MIT)
198
+
199
+ ## Author
200
+
201
+ Yuji