Project Customization MCP
Generates and maintains project-specific instructions for GitHub Copilot to guide code suggestions and development practices.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Project Customization MCPAnalyze my project and generate customization guidelines."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Project Customization MCP
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.
Platform-agnostic: Works with any IDE, editor, or AI tool that supports the Model Context Protocol (VS Code, JetBrains, Cursor, Claude, etc.)
What You Get
This tool automatically:
π Analyzes your project - Detects frameworks, languages, and project structure
π Generates guidelines - Creates
.github/copilot-instructions.mdfor consistent developmentβοΈ Updates documentation - Enhances README with best practices
π‘ Provides recommendations - Suggests improvements for your codebase
Related MCP server: devflow-mcp
π― Tools Available
π
analyze_project- Scan your project and detect frameworks/languagesπ
generate_copilot_instructions- Create customization guidelines for your projectπ
update_readme- Generate or enhance README with standardsπ
get_customization_recommendations- Get actionable improvement suggestions
π Resources Available
π¦ Project Metadata - Your project type, frameworks, languages
π Project Structure - Directory organization and files
π Current Guidelines - Existing customization files
π README - Your current documentation
π¬ Prompts Available
β‘
analyze-and-customize- Full workflow (analyze β generate β update)β¨
generate-instructions-only- Create just the instruction fileπ
review-and-improve- Review existing customizations
π¦ Installation
βοΈ Option 1: Using npx (Recommended - No Installation Needed)
{
"mcpServers": {
"project-customization": {
"command": "npx",
"args": ["-y", "project-customization-mcp"]
}
}
}π Option 2: Global npm Installation
npm install -g project-customization-mcpThen configure:
{
"mcpServers": {
"project-customization": {
"command": "project-customization-mcp",
"env": {
"MCP_API_KEY": "YOUR_KEY"
}
}
}
}π Authorization (Tools Only)
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.
Example configuration:
{
"mcpServers": {
"project-customization": {
"command": "project-customization-mcp",
"env": {
"MCP_API_KEY": "YOUR_KEY"
}
}
}
}π§ Memory (GitHub Copilot Hosted)
This MCP server does not store memory. Use GitHub Copilot's hosted memory feature for long-lived context, per GitHub's Copilot memory documentation.
π How to Use
1οΈβ£ Configure in Your IDE
VS Code:
Ctrl+Shift+Pβ "MCP: Open User Configuration"Cursor: Settings β MCP Servers
Other IDEs: Refer to your IDE's MCP documentation
Add one of the configurations above and restart your IDE.
2οΈβ£ Use in Chat
Open your chat and type:
Analyze my project and set up customization based on best practicesOr use specific prompts:
/analyze-and-customize
/generate-instructions-only
/review-and-improve3. Add Resources to Chat
Add project context:
Select "Add Context" β "MCP Resources"
Choose: Project Metadata, Project Structure, Guidelines, README
π What Gets Generated
The tool creates or updates:
β
.github/copilot-instructions.md- Project-specific guidelines and standardsβ
README.md- Enhanced with setup and development guidelinesβ Recommendations - Suggestions for framework-specific improvements
π Example Output
For a React TypeScript project, you get:
# Project Guidelines
## Code Style
- Use functional components with hooks
- Maintain strict TypeScript (no `any`)
- ESLint + Prettier for formatting
## Project Structure
- src/components - React components
- src/pages - Page components
- src/utils - Utilities
- src/hooks - Custom hooksπ License
MIT License - See LICENSE file
π Made for the Model Context Protocol | Works with any MCP-compatible client
Available Tools
4 toolsanalyze_projectB
Analyze a VS Code project structure and detect project type, frameworks, languages, and customization opportunities
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a read-only analysis and discloses the categories of information produced, but says nothing about permissions, cost, side effects, or whether it writes any artifacts. The output-category list is useful but safety/behavior profile is only implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence that front-loads the verb and resource and packs the detection targets compactly. No filler, though it could add a clause of routing or parameter guidance without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations, so the description must cover behavior and results. It lists detected categories (a proxy for return values) but omits parameter/default-path semantics and any positioning among the three sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter (projectPath) with 0% schema description coverage, and the description never explains it. Notably the parameter is not required, so default-path behavior should be documented but is not, leaving the meaning of omitting projectPath ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Analyze') and resource ('VS Code project structure') and enumerates what it detects: project type, frameworks, languages, customization opportunities. It does not name or contrast with siblings like get_customization_recommendations, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives. The relationship to siblings (e.g., whether to call this before generate_copilot_instructions or get_customization_recommendations) is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_copilot_instructionsC
Generate a .github/copilot-instructions.md file based on project analysis and best practices
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | No | ||
| analysisData | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It only states that a file is generated; it omits whether an existing file is overwritten, whether write permissions are required, and what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence, front-loaded with the action and output artifact. It avoids waste, though the extreme brevity contributes to the other gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a file-generating tool with no annotations, no output schema, and a nested object parameter, the description is far too thin. It omits parameter guidance, overwrite behavior, and any notion of what the generated file contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description explains neither parameter. The nested 'analysisData' object is especially opaque, and 'projectPath' is left without format or default information, so the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Generate') and resource ('.github/copilot-instructions.md') plus basis ('project analysis and best practices'). Sibling differentiation is implied by the unique artifact but not made explicit against analyze_project, update_readme, or get_customization_recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, prerequisites, or alternatives are given. 'Based on project analysis' hints at a dependency, but the agent receives no guidance on selecting this over its siblings or on required preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customization_recommendationsC
Get recommendations for customizing VS Code settings, instruction files, and project guidelines
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | No | ||
| analysisData | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it discloses almost nothing: no confirmation that the call is read-only, no indication of whether analysisData is expected to be pre-computed output, and no description of the response shape. Only the verb 'Get' weakly implies a non-mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though the brevity is arguably under-specification rather than true conciseness given what is omitted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters, one of them an undocumented nested object, no annotations, and no output schema, the definition omits everything an agent would need beyond the basic purpose: input provenance, optionality (0 required params β so what happens with no args?), and return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never mentions projectPath or analysisData. The nested, free-form analysisData object (additionalProperties, no defined shape) is the highest-risk input and is completely opaque from both schema and prose, so the description fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and a concrete resource scope ('recommendations for customizing VS Code settings, instruction files, and project guidelines'), so the agent knows what comes back. It does not differentiate from the sibling generate_copilot_instructions, which plausibly overlaps with the 'instruction files' portion, leaving ambiguity about which tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus analyze_project or generate_copilot_instructions, and no prerequisites are given. The likely dependency (that analysisData comes from analyze_project) is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_readmeC
Update or create README.md with project guidelines and best practices
| Name | Required | Description | Default |
|---|---|---|---|
| guidelines | No | ||
| projectPath | No | ||
| analysisData | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It says 'update or create' but never discloses whether an existing README is overwritten or merged, whether filesystem write permissions are needed, or if the operation is reversible β critical for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the verb and resource front-loaded. No wasted words, though brevity here comes at the cost of substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations, no output schema, 0% parameter coverage, and a nested object parameter is significantly under-specified. The description omits overwrite behavior, required inputs, and return expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 3 parameters. The description gestures at 'guidelines' but says nothing about 'projectPath' (target location) or the nested 'analysisData' object, so it fails to compensate for the undocumented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (update or create) and resource (README.md) plus the content type (project guidelines and best practices). It doesn't explicitly distinguish itself from siblings like analyze_project or generate_copilot_instructions, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus the sibling tools, no prerequisites, and no conditions. 'Update or create' implies a use case but leaves the agent to infer when updating is warranted over the other project tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.3- First observed
analyze_project - First observed
generate_copilot_instructions - First observed
get_customization_recommendations - First observed
update_readme
TDQS
Scored across 4 tools
analyze_project and get_customization_recommendations both surface customization opportunities, creating some overlap. However, generate_copilot_instructions and update_readme clearly target distinct output files, and the descriptions help distinguish the intended use cases.
All four tools use consistent snake_case verb_noun naming: analyze_project, generate_copilot_instructions, update_readme, and get_customization_recommendations. The verbs are clear and the pattern is predictable throughout.
Four tools is well-scoped for a project customization utility, covering analysis, generation, updating, and recommendations without bloat or excessive thinness. Each tool has a distinct role in the workflow.
The surface covers analysis, copilot instruction generation, README updates, and recommendations, but there is no tool to actually create or update VS Code settings or extensions files. This leaves a notable dead end for the settings-customization part of the stated purpose.
Maintenance
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personalβ¦
An MCP server that gives your AI access to the source code and docs of all public github repos
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that analyzes codebases and generates contextual prompts, making it easier for AI assistants to understand and work with code repositories.18MIT
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server that provides AI assistants with comprehensive GitHub developer tooling including PR analysis, code review, changelog generation, dependency auditing, commit summarization, and refactoring suggestions.10 npmISC
- AlicenseCqualityDmaintenanceAn MCP server that analyzes local or remote GitHub repositories, providing intelligent code context and structure to AI coding assistants.1013MIT
- AlicenseAqualityDmaintenanceAn MCP server that provides local code quality analysis for AI coding assistants, supporting file analysis, git diff review, and full project scanning with quality scoring.43MIT