project-customization-mcp 0.1.1 → 0.1.3

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.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026
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.
1
+ MIT License
2
+
3
+ Copyright (c) 2026
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.md CHANGED
@@ -1,373 +1,163 @@
1
- # Project Customization MCP
2
-
3
- An MCP (Model Context Protocol) server that automates project customization by analyzing your codebase and generating configuration files based on industry best practices.
4
-
5
- **Platform-agnostic**: Works with any IDE, editor, or AI tool that supports the Model Context Protocol (VS Code, JetBrains, Cursor, Claude, etc.)
6
-
7
- ## Features
8
-
9
- ### 🔍 Intelligent Project Analysis
10
-
11
- - **Auto-detect project type**: Node.js, Python, .NET, and more
12
- - **Framework recognition**: React, Vue, Next.js, Angular, FastAPI, Django, etc.
13
- - **Language detection**: TypeScript, JavaScript, Python, C#, Go, Ruby, Java, etc.
14
- - **Structure scanning**: Analyzes file organization and project layout
15
- - **Gap detection**: Identifies missing customization files
16
-
17
- ### 📝 Automated File Generation
18
-
19
- - **Customization instructions** - Creates project-specific guidelines
20
- - **README updates** - Generates comprehensive documentation
21
- - **Best practices** - Applies industry standards to your project
22
- - **Recommendations** - Suggests improvements for your codebase
23
-
24
- ### 🎯 Tools
25
-
26
- - `analyze_project` - Scan project and detect frameworks/languages
27
- - `generate_copilot_instructions` - Create customization files
28
- - `update_readme` - Generate or enhance README
29
- - `get_customization_recommendations` - Get actionable suggestions
30
-
31
- ### 📚 Resources
32
-
33
- - **Project Metadata** - Project type, frameworks, languages
34
- - **Project Structure** - Directory organization and file tree
35
- - **Current Guidelines** - Existing customization files
36
- - **README** - Current documentation
37
-
38
- ### 💬 Prompt Templates
39
-
40
- - **analyze-and-customize** - Full workflow (analyze → generate → update)
41
- - **generate-instructions-only** - Create just the instruction file
42
- - **review-and-improve** - Review existing customizations
43
-
44
- ## Installation
45
-
46
- ### Option 1: Using npx (Recommended - No Installation Needed)
47
-
48
- ```json
49
- {
50
- "mcpServers": {
51
- "project-customization": {
52
- "command": "npx",
53
- "args": ["-y", "project-customization-mcp"]
54
- }
55
- }
56
- }
57
- ```
58
-
59
- ### Option 2: Global npm Installation
60
-
61
- ```powershell
62
- npm install -g project-customization-mcp
63
- ```
64
-
65
- Then configure:
66
-
67
- ```json
68
- {
69
- "mcpServers": {
70
- "project-customization": {
71
- "command": "project-customization-mcp"
72
- }
73
- }
74
- }
75
- ```
76
-
77
- ### Option 3: Local Installation
78
-
79
- ```powershell
80
- npm install project-customization-mcp
81
- ```
82
-
83
- Configure with relative path:
84
-
85
- ```json
86
- {
87
- "mcpServers": {
88
- "project-customization": {
89
- "command": "node",
90
- "args": ["./node_modules/project-customization-mcp/build/index.js"]
91
- }
92
- }
93
- }
94
- ```
95
-
96
- ## Configuration
97
-
98
- ### VS Code / Cursor / Other IDE
99
-
100
- 1. Open MCP configuration (varies by IDE):
101
- - VS Code: `Ctrl+Shift+P` "MCP: Open User Configuration"
102
- - Or edit manually in settings
103
-
104
- 2. Add server config (use Option 1, 2, or 3 above)
105
-
106
- 3. Restart IDE or reload window
107
-
108
- ### Claude / Other Clients
109
-
110
- Refer to your client's MCP configuration documentation and add the server using one of the installation options above.
111
-
112
- ## Usage
113
-
114
- ### Quick Start: Free-form Chat
115
-
116
- Open your IDE's chat and type:
117
-
118
- ```
119
- Analyze my project and set up customization based on best practices
120
- ```
121
-
122
- The server will:
123
-
124
- 1. ✅ Analyze your project structure
125
- 2. Detect frameworks and languages
126
- 3. Generate `.github/copilot-instructions.md` (if missing)
127
- 4. ✅ Update README with guidelines
128
- 5. Provide improvement recommendations
129
-
130
- ### Using Prompts (Slash Commands)
131
-
132
- If your client supports prompt templates:
133
-
134
- ```
135
- /project-customization.analyze-and-customize
136
- /project-customization.generate-instructions-only
137
- /project-customization.review-and-improve
138
- ```
139
-
140
- ### Add Resources to Context
141
-
142
- Add project context to your chat:
143
-
144
- - "Add Context" or similar option
145
- - Select "MCP Resources"
146
- - Choose: Project Metadata, Project Structure, Guidelines, README
147
-
148
- ### Manual Tool Invocation
149
-
150
- Ask your AI to use specific tools:
151
-
152
- - "Use the analyze_project tool on my project"
153
- - "Generate customization instructions for my React app"
154
- - "Update my README with coding guidelines"
155
-
156
- ## How It Works
157
-
158
- ```
159
- Your Code
160
-
161
- analyze_project (scans structure, detects type/frameworks)
162
-
163
- Project Analysis (type, frameworks, languages, issues)
164
-
165
- generate_copilot_instructions (creates customization file)
166
-
167
- update_readme (adds guidelines and setup instructions)
168
-
169
- get_customization_recommendations (suggests improvements)
170
-
171
- Generated Files + Recommendations
172
- ```
173
-
174
- ## Example: React TypeScript Project
175
-
176
- ### Input
177
-
178
- ```
179
- "Analyze my React TypeScript project and set up customization"
180
- ```
181
-
182
- ### Generated Files
183
-
184
- **`.github/copilot-instructions.md`:**
185
-
186
- ```markdown
187
- # Project Guidelines
188
-
189
- ## Overview
190
-
191
- - **Type**: Node.js
192
- - **Framework**: React
193
- - **Language**: TypeScript
194
-
195
- ## Code Style
196
-
197
- - Use functional components with hooks
198
- - Maintain strict TypeScript (no `any`)
199
- - ESLint + Prettier for formatting
200
- - camelCase for variables/functions, PascalCase for components
201
-
202
- ## Structure
203
-
204
- - src/components - React components
205
- - src/pages - Page components
206
- - src/utils - Utilities
207
- - src/hooks - Custom hooks
208
- - src/types - TypeScript types
209
-
210
- [... more guidelines ...]
211
- ```
212
-
213
- **`README.md`** (updated with):
214
-
215
- - Project description
216
- - Prerequisites and setup
217
- - Installation commands
218
- - Development guidelines
219
- - Best practices for the framework
220
-
221
- ### Recommendations Provided
222
-
223
- - "Enable strict TypeScript mode"
224
- - "Add unit testing framework"
225
- - "Configure git hooks for commits"
226
- - "Set up CI/CD pipeline"
227
-
228
- ## Customization
229
-
230
- The server comes with sensible defaults for common frameworks. To customize for your team:
231
-
232
- 1. Fork/clone the repository
233
- 2. Edit `src/utils/bestPractices.ts`:
234
- - Modify `generateCopilotInstructions()` for your standards
235
- - Adjust `generateReadmeContent()` for your format
236
- - Customize `generateRecommendations()` for your priorities
237
-
238
- 3. Build: `npm run build`
239
- 4. Publish: `npm publish` (or use locally with path)
240
-
241
- ## Supported Project Types
242
-
243
- | Type | Status |
244
- | ------------- | ------------------ |
245
- | Node.js / npm | ✅ Full Support |
246
- | TypeScript | ✅ Full Support |
247
- | React | ✅ Full Support |
248
- | Vue.js | ✅ Full Support |
249
- | Next.js | ✅ Full Support |
250
- | Python | ✅ Full Support |
251
- | .NET | ✅ Full Support |
252
- | Other | ✅ Generic Support |
253
-
254
- ## Architecture
255
-
256
- ```
257
- src/
258
- ├── index.ts # Server startup
259
- ├── server.ts # MCP setup & registration
260
- ├── tools.ts # Tool implementations
261
- ├── resources.ts # Resource providers
262
- ├── prompts.ts # Prompt templates
263
- ├── types.ts # TypeScript types
264
- └── utils/
265
- ├── fileHandler.ts # File I/O
266
- ├── projectScanner.ts # Project analysis
267
- ├── bestPractices.ts # Customization templates
268
- ├── validator.ts # Input validation
269
- └── logger.ts # Logging
270
- ```
271
-
272
- ## Development
273
-
274
- ### Prerequisites
275
-
276
- - Node.js 16+
277
- - npm or yarn
278
-
279
- ### Setup
280
-
281
- ```powershell
282
- git clone https://github.com/yourusername/project-customization-mcp.git
283
- cd project-customization-mcp
284
- npm install
285
- npm run build
286
- ```
287
-
288
- ### Development Mode
289
-
290
- ```powershell
291
- npm run dev
292
- ```
293
-
294
- ### Build for Production
295
-
296
- ```powershell
297
- npm run build
298
- ```
299
-
300
- ## Contributing
301
-
302
- Contributions welcome! Areas for enhancement:
303
-
304
- - [ ] Support for more languages/frameworks
305
- - [ ] Custom organization templates
306
- - [ ] Integration with CI/CD systems
307
- - [ ] Linting and formatting configuration generation
308
- - [ ] Test setup automation
309
- - [ ] Documentation generators
310
-
311
- See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
312
-
313
- ## Troubleshooting
314
-
315
- ### Server not connecting
316
-
317
- 1. Check MCP configuration syntax
318
- 2. Verify command path is correct
319
- 3. Ensure `build/index.js` exists (run `npm run build`)
320
- 4. Check IDE logs for errors
321
-
322
- ### Tools not appearing
323
-
324
- 1. Reload IDE window
325
- 2. Restart IDE completely
326
- 3. Verify MCP server is running (check IDE status)
327
- 4. Check server logs for errors
328
-
329
- ### File permissions
330
-
331
- - Ensure write access to project directory
332
- - Check that `.github/` directory can be created
333
-
334
- ## FAQ
335
-
336
- **Q: Will this modify my existing files?**
337
- A: By default, it creates new files or updates README by appending. Existing instructions are backed up.
338
-
339
- **Q: What if my project is not detected correctly?**
340
- A: Check for standard configuration files (package.json, pyproject.toml, etc.). You can also provide hints through chat context.
341
-
342
- **Q: Can I use this for multiple projects?**
343
- A: Yes! Configure once and use with any project. It auto-detects project type.
344
-
345
- **Q: Is this IDE-specific?**
346
- A: No! It's a standard MCP server. Works with any MCP-compatible client.
347
-
348
- **Q: Can I customize the guidelines?**
349
- A: Yes! Fork the repo and edit `bestPractices.ts` for your organization's standards.
350
-
351
- ## License
352
-
353
- MIT License - See [LICENSE](LICENSE) file
354
-
355
- ## Support
356
-
357
- - 📖 [GitHub Wiki](https://github.com/yourusername/project-customization-mcp/wiki)
358
- - 🐛 [Report Issues](https://github.com/yourusername/project-customization-mcp/issues)
359
- - 💬 [Discussions](https://github.com/yourusername/project-customization-mcp/discussions)
360
-
361
- ## Roadmap
362
-
363
- - [ ] Web-based configuration UI
364
- - [ ] Organization-specific templates library
365
- - [ ] Linter/formatter configuration generation
366
- - [ ] Test framework setup automation
367
- - [ ] Git hooks generation (Husky, etc.)
368
- - [ ] Pre-commit configuration
369
- - [ ] EditorConfig generation
370
-
371
- ---
372
-
373
- **Made for the Model Context Protocol** | Works with any MCP-compatible client
1
+ # Project Customization MCP
2
+
3
+ An open-source MCP (Model Context Protocol) server that automates project customization by analyzing your codebase and generating AI-ready configuration files based on industry best practices. Perfect for teams and individual developers who want consistent, framework-aware project guidelines.
4
+
5
+ **Platform-agnostic**: Works with any IDE, editor, or AI tool that supports the Model Context Protocol (VS Code, JetBrains, Cursor, Claude, etc.)
6
+
7
+ ## What You Get
8
+
9
+ This tool automatically:
10
+
11
+ - 🔍 **Analyzes your project** - Detects frameworks, languages, and project structure
12
+ - 📝 **Generates guidelines** - Creates `.github/copilot-instructions.md` for consistent development
13
+ - ✍️ **Updates documentation** - Enhances README with best practices
14
+ - 💡 **Provides recommendations** - Suggests improvements for your codebase
15
+
16
+ ## 🎯 Tools Available
17
+
18
+ - 🔎 **`analyze_project`** - Scan your project and detect frameworks/languages
19
+ - 📋 **`generate_copilot_instructions`** - Create customization guidelines for your project
20
+ - 📄 **`update_readme`** - Generate or enhance README with standards
21
+ - 🚀 **`get_customization_recommendations`** - Get actionable improvement suggestions
22
+
23
+ ## 📚 Resources Available
24
+
25
+ - 📦 **Project Metadata** - Your project type, frameworks, languages
26
+ - 📁 **Project Structure** - Directory organization and files
27
+ - 📖 **Current Guidelines** - Existing customization files
28
+ - 📝 **README** - Your current documentation
29
+
30
+ ## 💬 Prompts Available
31
+
32
+ - ⚡ **`analyze-and-customize`** - Full workflow (analyze → generate → update)
33
+ - **`generate-instructions-only`** - Create just the instruction file
34
+ - 🔄 **`review-and-improve`** - Review existing customizations
35
+
36
+ ## 📦 Installation
37
+
38
+ ### ⚙️ Option 1: Using npx (Recommended - No Installation Needed)
39
+
40
+ ```json
41
+ {
42
+ "mcpServers": {
43
+ "project-customization": {
44
+ "command": "npx",
45
+ "args": ["-y", "project-customization-mcp"]
46
+ }
47
+ }
48
+ }
49
+ ```
50
+
51
+ ### 🌍 Option 2: Global npm Installation
52
+
53
+ ```powershell
54
+ npm install -g project-customization-mcp
55
+ ```
56
+
57
+ Then configure:
58
+
59
+ ```json
60
+ {
61
+ "mcpServers": {
62
+ "project-customization": {
63
+ "command": "project-customization-mcp",
64
+ "env": {
65
+ "MCP_API_KEY": "YOUR_KEY"
66
+ }
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ ## 🔐 Authorization (Tools Only)
73
+
74
+ Tool execution requires an API key configured via `MCP_API_KEY` in the MCP server configuration `env`. If the key is missing, tool calls return an authorization error. Prompts and resources remain available without any key.
75
+
76
+ Example configuration:
77
+
78
+ ```json
79
+ {
80
+ "mcpServers": {
81
+ "project-customization": {
82
+ "command": "project-customization-mcp",
83
+ "env": {
84
+ "MCP_API_KEY": "YOUR_KEY"
85
+ }
86
+ }
87
+ }
88
+ }
89
+ ```
90
+
91
+ ## 🧠 Memory (GitHub Copilot Hosted)
92
+
93
+ This MCP server does not store memory. Use GitHub Copilot's hosted memory feature for long-lived context, per GitHub's Copilot memory documentation.
94
+
95
+ ## 🚀 How to Use
96
+
97
+ ### 1️⃣ Configure in Your IDE
98
+
99
+ - **VS Code**: `Ctrl+Shift+P` → "MCP: Open User Configuration"
100
+ - **Cursor**: Settings MCP Servers
101
+ - **Other IDEs**: Refer to your IDE's MCP documentation
102
+
103
+ Add one of the configurations above and restart your IDE.
104
+
105
+ ### 2️⃣ Use in Chat
106
+
107
+ Open your chat and type:
108
+
109
+ ```
110
+ Analyze my project and set up customization based on best practices
111
+ ```
112
+
113
+ Or use specific prompts:
114
+
115
+ ```
116
+ /analyze-and-customize
117
+ /generate-instructions-only
118
+ /review-and-improve
119
+ ```
120
+
121
+ ### 3. Add Resources to Chat
122
+
123
+ Add project context:
124
+
125
+ - Select "Add Context" "MCP Resources"
126
+ - Choose: Project Metadata, Project Structure, Guidelines, README
127
+
128
+ ## 📋 What Gets Generated
129
+
130
+ The tool creates or updates:
131
+
132
+ - **`.github/copilot-instructions.md`** - Project-specific guidelines and standards
133
+ - ✅ **`README.md`** - Enhanced with setup and development guidelines
134
+ - ✅ **Recommendations** - Suggestions for framework-specific improvements
135
+
136
+ ## 📊 Example Output
137
+
138
+ For a React TypeScript project, you get:
139
+
140
+ ```markdown
141
+ # Project Guidelines
142
+
143
+ ## Code Style
144
+
145
+ - Use functional components with hooks
146
+ - Maintain strict TypeScript (no `any`)
147
+ - ESLint + Prettier for formatting
148
+
149
+ ## Project Structure
150
+
151
+ - src/components - React components
152
+ - src/pages - Page components
153
+ - src/utils - Utilities
154
+ - src/hooks - Custom hooks
155
+ ```
156
+
157
+ ## 📄 License
158
+
159
+ MIT License - See [LICENSE](LICENSE) file
160
+
161
+ ---
162
+
163
+ 🎉 **Made for the Model Context Protocol** | Works with any MCP-compatible client
package/bin/cli.js CHANGED
@@ -1,7 +1,7 @@
1
- #!/usr/bin/env node
2
-
3
- // Lightweight launcher that executes the compiled MCP server entry.
4
- import('../build/index.js').catch((err) => {
5
- console.error('Failed to start project-customization-mcp:', err);
6
- process.exit(1);
7
- });
1
+ #!/usr/bin/env node
2
+
3
+ // Lightweight launcher that executes the compiled MCP server entry.
4
+ import('../build/index.js').catch((err) => {
5
+ console.error('Failed to start project-customization-mcp:', err);
6
+ process.exit(1);
7
+ });
package/build/prompts.js CHANGED
@@ -46,38 +46,38 @@ export const PROMPT_TEMPLATES = [
46
46
  export function getPromptContent(promptName) {
47
47
  switch (promptName) {
48
48
  case 'analyze-and-customize':
49
- return `You are a VS Code customization expert. Your task is to analyze the provided project and help customize it for optimal Copilot experience.
50
-
51
- Use the following tools in sequence:
52
- 1. First, analyze the project using the \`analyze_project\` tool to understand its structure, type, and current customization status
53
- 2. Review the analysis results to identify gaps and opportunities
54
- 3. Generate Copilot custom instructions using the \`generate_copilot_instructions\` tool
55
- 4. Update or create a README with guidelines using the \`update_readme\` tool
56
- 5. Explain what was done and provide recommendations for further improvements
57
-
49
+ return `You are a VS Code customization expert. Your task is to analyze the provided project and help customize it for optimal Copilot experience.
50
+
51
+ Use the following tools in sequence:
52
+ 1. First, analyze the project using the \`analyze_project\` tool to understand its structure, type, and current customization status
53
+ 2. Review the analysis results to identify gaps and opportunities
54
+ 3. Generate Copilot custom instructions using the \`generate_copilot_instructions\` tool
55
+ 4. Update or create a README with guidelines using the \`update_readme\` tool
56
+ 5. Explain what was done and provide recommendations for further improvements
57
+
58
58
  The goal is to establish a solid foundation of project customization that will improve developer experience when using Copilot.`;
59
59
  case 'generate-instructions-only':
60
- return `You are a VS Code customization expert focused on Copilot instructions.
61
-
62
- Your task:
63
- 1. Analyze the project using the \`analyze_project\` tool
64
- 2. Generate appropriate Copilot custom instructions using the \`generate_copilot_instructions\` tool
65
- 3. Provide a summary of what instructions were created and why they're important for this project
66
-
60
+ return `You are a VS Code customization expert focused on Copilot instructions.
61
+
62
+ Your task:
63
+ 1. Analyze the project using the \`analyze_project\` tool
64
+ 2. Generate appropriate Copilot custom instructions using the \`generate_copilot_instructions\` tool
65
+ 3. Provide a summary of what instructions were created and why they're important for this project
66
+
67
67
  Focus on creating clear, actionable guidelines that reflect the project's technology stack and best practices.`;
68
68
  case 'review-and-improve':
69
- return `You are a code quality and customization expert.
70
-
71
- Your task:
72
- 1. Analyze the project using the \`analyze_project\` tool
73
- 2. Get customization recommendations using the \`get_customization_recommendations\` tool
74
- 3. Review existing customization files (README, instructions) by reading the project resources
75
- 4. Provide detailed recommendations for:
76
- - What customization improvements are needed
77
- - How to enhance existing guidelines
78
- - Best practices that aren't yet documented
79
- - Potential issues or gaps in the current setup
80
-
69
+ return `You are a code quality and customization expert.
70
+
71
+ Your task:
72
+ 1. Analyze the project using the \`analyze_project\` tool
73
+ 2. Get customization recommendations using the \`get_customization_recommendations\` tool
74
+ 3. Review existing customization files (README, instructions) by reading the project resources
75
+ 4. Provide detailed recommendations for:
76
+ - What customization improvements are needed
77
+ - How to enhance existing guidelines
78
+ - Best practices that aren't yet documented
79
+ - Potential issues or gaps in the current setup
80
+
81
81
  Be constructive and provide actionable advice.`;
82
82
  default:
83
83
  return `Unknown prompt: ${promptName}`;
package/build/server.js CHANGED
@@ -7,13 +7,43 @@ import { ToolHandlers } from './tools.js';
7
7
  import { ResourceProviders } from './resources.js';
8
8
  import { PROMPT_TEMPLATES, getPromptContent, isValidPromptName } from './prompts.js';
9
9
  import { logger } from './utils/logger.js';
10
+ const TOOL_API_KEY_ENV = 'MCP_API_KEY';
11
+ const TOOL_API_KEY_VALUE = 'thisisdummyAPIkey';
12
+ function getToolAuthErrorResponse() {
13
+ const configuredKey = process.env[TOOL_API_KEY_ENV];
14
+ if (!configuredKey) {
15
+ logger.warn(`Tool access blocked: ${TOOL_API_KEY_ENV} not configured`);
16
+ return {
17
+ content: [
18
+ {
19
+ type: 'text',
20
+ text: 'Authorization required: API key not configured.',
21
+ },
22
+ ],
23
+ isError: true,
24
+ };
25
+ }
26
+ if (configuredKey !== TOOL_API_KEY_VALUE) {
27
+ logger.warn('Tool access blocked: invalid API key provided');
28
+ return {
29
+ content: [
30
+ {
31
+ type: 'text',
32
+ text: 'Authorization required: invalid API key.',
33
+ },
34
+ ],
35
+ isError: true,
36
+ };
37
+ }
38
+ return null;
39
+ }
10
40
  /**
11
41
  * Initialize and configure the MCP server
12
42
  */
13
43
  export function initializeServer() {
14
44
  const server = new McpServer({
15
45
  name: 'project-customization-mcp',
16
- version: '0.1.0',
46
+ version: '0.1.3',
17
47
  });
18
48
  // Register tools
19
49
  registerTools(server);
@@ -33,7 +63,14 @@ function registerTools(server) {
33
63
  const analyzeProjectSchema = z.object({
34
64
  projectPath: z.string().optional(),
35
65
  }).shape;
36
- server.tool('analyze_project', 'Analyze a VS Code project structure and detect project type, frameworks, languages, and customization opportunities', analyzeProjectSchema, async (args) => {
66
+ server.registerTool('analyze_project', {
67
+ description: 'Analyze a VS Code project structure and detect project type, frameworks, languages, and customization opportunities',
68
+ inputSchema: analyzeProjectSchema,
69
+ }, async (args, _extra) => {
70
+ const authError = getToolAuthErrorResponse();
71
+ if (authError) {
72
+ return authError;
73
+ }
37
74
  try {
38
75
  const result = await ToolHandlers.analyzeProject(args.projectPath);
39
76
  return {
@@ -63,7 +100,14 @@ function registerTools(server) {
63
100
  projectPath: z.string().optional(),
64
101
  analysisData: z.record(z.any()).optional(),
65
102
  }).shape;
66
- server.tool('generate_copilot_instructions', 'Generate a .github/copilot-instructions.md file based on project analysis and best practices', generateInstructionsSchema, async (args) => {
103
+ server.registerTool('generate_copilot_instructions', {
104
+ description: 'Generate a .github/copilot-instructions.md file based on project analysis and best practices',
105
+ inputSchema: generateInstructionsSchema,
106
+ }, async (args, _extra) => {
107
+ const authError = getToolAuthErrorResponse();
108
+ if (authError) {
109
+ return authError;
110
+ }
67
111
  try {
68
112
  const input = args;
69
113
  const result = await ToolHandlers.generateCopilotInstructions(input.projectPath, input.analysisData);
@@ -100,7 +144,14 @@ function registerTools(server) {
100
144
  guidelines: z.string().optional(),
101
145
  analysisData: z.record(z.any()).optional(),
102
146
  }).shape;
103
- server.tool('update_readme', 'Update or create README.md with project guidelines and best practices', updateReadmeSchema, async (args) => {
147
+ server.registerTool('update_readme', {
148
+ description: 'Update or create README.md with project guidelines and best practices',
149
+ inputSchema: updateReadmeSchema,
150
+ }, async (args, _extra) => {
151
+ const authError = getToolAuthErrorResponse();
152
+ if (authError) {
153
+ return authError;
154
+ }
104
155
  try {
105
156
  const input = args;
106
157
  const result = await ToolHandlers.updateReadme(input.projectPath, input.guidelines, input.analysisData);
@@ -136,7 +187,14 @@ function registerTools(server) {
136
187
  projectPath: z.string().optional(),
137
188
  analysisData: z.record(z.any()).optional(),
138
189
  }).shape;
139
- server.tool('get_customization_recommendations', 'Get recommendations for customizing VS Code settings, instruction files, and project guidelines', recommendationsSchema, async (args) => {
190
+ server.registerTool('get_customization_recommendations', {
191
+ description: 'Get recommendations for customizing VS Code settings, instruction files, and project guidelines',
192
+ inputSchema: recommendationsSchema,
193
+ }, async (args, _extra) => {
194
+ const authError = getToolAuthErrorResponse();
195
+ if (authError) {
196
+ return authError;
197
+ }
140
198
  try {
141
199
  const input = args;
142
200
  const result = await ToolHandlers.getRecommendations(input.projectPath, input.analysisData);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "project-customization-mcp",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "An MCP server for automating project customization based on best practices. Analyzes projects and generates customization files for any IDE or tool that supports the Model Context Protocol.",
5
5
  "main": "./build/index.js",
6
6
  "bin": {