https://github.com/niradler/code-feedback
A powerful, open-source Model Context Protocol (MCP) server for automated, multi-language code feedback, validation, and project analysis. Designed for developers, teams, and LLM-powered workflows to ensure code quality, correctness, and maintainability across diverse languages and build systems.
https://github.com/niradler/code-feedback
deevloper-experience llm mcp mcp-server
Last synced: 5 months ago
JSON representation
A powerful, open-source Model Context Protocol (MCP) server for automated, multi-language code feedback, validation, and project analysis. Designed for developers, teams, and LLM-powered workflows to ensure code quality, correctness, and maintainability across diverse languages and build systems.
- Host: GitHub
- URL: https://github.com/niradler/code-feedback
- Owner: niradler
- License: mit
- Created: 2025-06-27T23:47:05.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-07-07T22:30:34.000Z (12 months ago)
- Last Synced: 2025-10-14T10:51:21.958Z (9 months ago)
- Topics: deevloper-experience, llm, mcp, mcp-server
- Language: TypeScript
- Homepage: https://github.com/niradler/code-feedback
- Size: 4.04 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Code Feedback MCP Server
A powerful, open-source Model Context Protocol (MCP) server for automated, multi-language code feedback, validation, and project analysis. Designed for developers, teams, and LLM-powered workflows to ensure code quality, correctness, and maintainability across diverse languages and build systems.
---
## Why Code Feedback MCP?
Modern codebases are polyglot and complex. Automated, language-agnostic feedback is essential for:
- **Catching errors early** (before code review or CI)
- **Standardizing quality** across languages and teams
- **Empowering LLMs and tools** to validate, lint, build, and analyze code safely
- **Reducing manual review time** and improving developer confidence
**Code Feedback MCP** provides a secure, extensible, and LLM-friendly API for code validation, linting, building, and analysis—out of the box.
---
## Key Features
- Multi-language file validation (TypeScript, JavaScript, Python, Go)
- Project-level build/test integration (npm, Make)
- Dependency management for npm projects
- Git command execution
- Secure, path-restricted file and command access
- Structured, machine-readable JSON responses
- Advanced prompt system for code review, analysis, and more
- Cross-platform: Windows, macOS, Linux

---
## How It Works
The MCP server exposes a set of tools and prompts via a simple API. You can:
- Validate and lint code files
- Build and test projects
- Manage dependencies
- Run git commands
- Request advanced code review, analysis, and suggestions via prompts
All actions are path-restricted for security and return structured results for easy integration with LLMs, editors, or CI systems.
---
## Installation
**Requirements:**
- Node.js 18+
- Language-specific tools (TypeScript, Python, Go, etc.) installed and in your PATH
- Project-level configs (e.g., `tsconfig.json`, `Makefile`, `package.json`) as needed
**Install dependencies and build:**
```bash
npm install
npm run build
```
---
## Configuration
Configure allowed paths and server settings in `mcp-config.json` or `claude_desktop_config.json`:
```json
{
"mcpServers": {
"code-feedback": {
"command": "npx",
"args": ["-y", "code-feedback"],
"env": {
"MCP_ALLOWED_PATHS": "C:/tests"
}
}
}
}
```
- `MCP_ALLOWED_PATHS` restricts file/command access for security.
---
## Usage
### Start the Server
```bash
npm start
```
Or with the MCP Inspector:
```bash
npx @modelcontextprotocol/inspector ./dist/start-server.js
```
### Example: Validate a TypeScript File
Send a request to the server (via HTTP, CLI, or SDK):
```json
{
"tool": "validate_typescript_file",
"args": { "filePath": "./examples/example-good.ts" }
}
```
**Response:**
```json
{
"success": true,
"errors": [],
"warnings": [],
"output": "...TypeScript compiler output..."
}
```
### Example: Run an npm Script
```json
{
"tool": "run_npm_script",
"args": { "projectPath": "./examples", "scriptName": "test" }
}
```
### Example: Use a Prompt for Code Review
```json
{
"prompt": "code-review",
"args": { "filePath": "./examples/example-good.js", "focus": "performance" }
}
```
**Response:**
```json
{
"feedback": "...comprehensive review, suggestions, and best practices..."
}
```
---
## Available Tools
- `validate_typescript_file`: Validate and compile a TypeScript file, checking for syntax and type errors.
- `validate_javascript_file`: Validate JavaScript file syntax using Node.js.
- `validate_python_file`: Validate Python file with syntax checking and optional linting (pylint, flake8, black, mypy).
- `validate_go_file`: Validate Go source file with compilation and formatting checks, and optionally run Go tests.
- `run_make_command`: Run Make commands (e.g., make, make build, make test).
- `list_make_commands`: List available make targets/commands from a Makefile.
- `run_npm_script`: Run any npm script defined in package.json (e.g., test, lint, build).
- `list_npm_scripts`: List all available npm scripts in a project.
- `install_npm_deps`: Install npm dependencies (packages) in a project.
- `uninstall_npm_deps`: Uninstall npm dependencies from a project.
- `check_npm_dependency`: Check if a specific npm dependency is installed in a project.
- `run_git_command`: Run git commands (status, diff, log, branch, checkout, commit, add, push, pull, merge, reset, or custom).
- `uv_init`: Initialize a new Python project using uv.
- `uv_add`: Add Python dependencies to a project using uv.
- `uv_run`: Run a command in the uv environment.
- `uv_lock`: Lock Python dependencies using uv.
- `uv_sync`: Sync Python dependencies using uv.
- `uv_venv`: Manage the uv virtual environment.
- `http`: Make HTTP requests (GET, POST, etc.) to localhost or local IPs and return the response.
- `docker`: Run Docker commands (build, run, stop, rm, rmi, inspect, ps) in a project directory.
- `editor`: Edit, create, delete, or read text files with robust line/content-based edits, returning git-style diffs.
- `filesystem`: Secure, batch multi-file/folder CRUD and query operations (delete, create, move, copy, read, stat, search, directory tree, glob support, etc.).
- `find`: Powerful file and text search using ripgrep (regex, globs, context lines, structured output, etc.).
All tools accept file/project paths and relevant options. Responses are structured as:
```json
{
"success": true/false,
"errors": ["error messages"],
"warnings": ["warning messages"],
"output": "command output",
"details": { "command": "...", "exitCode": 0, "duration": 1234 }
}
```
### Usage Examples
**uv: Initialize a Python project**
```json
{
"tool": "uv_init",
"args": { "projectPath": "./my-python-app", "projectName": "my-python-app" }
}
```
**http: Make a local HTTP GET request**
```json
{
"tool": "http",
"args": { "url": "http://localhost:8000/health" }
}
```
**docker: List running containers**
```json
{
"tool": "docker",
"args": { "command": "ps" }
}
```
**editor: Replace text in a file**
```json
{
"tool": "editor",
"args": {
"action": "edit",
"file_path": "./README.md",
"edits": [{ "mode": "content", "oldText": "foo", "newText": "bar" }]
}
}
```
**filesystem: List directory tree**
```json
{
"tool": "filesystem",
"args": {
"ops": [{ "type": "directoryTree", "path": ".", "maxDepth": 2 }]
}
}
```
**find: Search for TODO comments in JS files**
```json
{
"tool": "find",
"args": { "pattern": "TODO", "glob": "*.js" }
}
```
---
## Prompt System
Request advanced code review, analysis, and guidance using prompts:
- **code-review**: Comprehensive code review with feedback and suggestions
- **code-analysis**: Analyze code structure, complexity, and potential issues
- **refactor-suggestions**: Refactoring suggestions for improved code quality
- **bug-detection**: Detect potential bugs and issues
- **documentation-review**: Review and suggest improvements for code documentation
- **test-coverage-analysis**: Analyze test coverage and suggest missing test cases
- **security-audit**: Security audit and vulnerability identification
- **performance-analysis**: Performance analysis and optimization suggestions
- **coding-task-with-mcp**: Guide for completing a coding task using MCP tools and best practices
- **find-imports**: Find all files that import a specific package
- **commit-changes**: Show git diff and commit all staged changes with a generated message
- **install-and-audit**: Install a new npm dependency and check for vulnerabilities
- **format-python-directory**: Format all Python files in a directory using Black
- **build-and-test**: Build and test the project using Make or npm
- **list-docker-containers**: List all running Docker containers
- **validate-typescript-file**: Validate a TypeScript file for syntax and type errors
Each prompt returns actionable, structured feedback for your code.
---
## When to Use Code Feedback MCP
- After generating or editing code (especially LLM-generated code)
- Before code review or CI to catch issues early
- To automate code quality checks in multi-language projects
- For continuous feedback in editor integrations or bots
- To standardize code review and analysis across teams
---
## Best Practices
- Always validate code with MCP tools after editing or generating code
- Use build and test tools to ensure your code works as expected
- Use prompts for in-depth review, analysis, and improvement suggestions
- Manage dependencies proactively to keep your project clean and up to date
- Reuse existing code and abstractions where possible
- Write modular, generic code to maximize reusability
- Avoid code duplication and hardcoding
- Document the integration and usage of MCP clearly
- Test thoroughly using MCP tools and prompts
---
## Contributing
We welcome contributions! To add a new tool or prompt:
- Fork the repo and create a feature branch
- Add your tool in `src/tools/` or prompt in `src/prompts/`
- Write tests in `tests/`
- Run `npm run lint` and `npm run test`
- Open a pull request with a clear description
---
## Troubleshooting & FAQ
- Ensure all required tools are installed and in your PATH
- Use `npm run test` to verify your setup
- For permission issues, check script/file permissions and environment
- If you see "Path not allowed", update `MCP_ALLOWED_PATHS` in your config
- For more help, see the code and examples in the repo
---
## License
[MIT](LICENSE)
---
## Example
**User**:
validate the code in D:\Projects\tests\code-feedback-mcp\package.json that it is compile, tests passing, and git status is clean, use code feedback tools
**AI**:
I'll help you validate the code in your project directory. Let me start by checking what's available and then run through the validation steps.Great! I can access your project directory. Let me first examine the project structure and then run the validation checks.Now let me check the available npm scripts and run the validation steps:Let me start by checking the git status:I can see there are uncommitted changes to package.json. Now let me run the build process to check if the code compiles:Great! The build succeeded. Now let me run the tests:Excellent! All tests are passing. Now let me run the linter to check code quality:Perfect! The linting passed with no issues. Now let me check the current git status again to see the changes:Let me check what changes were made to package.json:## Validation Summary
Here are the results of validating your code-feedback-mcp project:
### ✅ **Compilation Status: SUCCESS**
- TypeScript compilation completed successfully
- The build process ran without errors
- Post-build version bump executed correctly (version updated from 0.0.5 to 0.0.7)
### ✅ **Test Status: ALL PASSING**
- **19 tests passed** across 6 test files
- Test files covered: Go, Python, JavaScript, TypeScript, NPM, and Make tools
- Total test duration: 805ms
- No test failures or errors
### ✅ **Code Quality: CLEAN**
- ESLint ran successfully with no issues
- All TypeScript files passed linting with `--quiet` flag
- No code quality warnings or errors
### ⚠️ **Git Status: NOT CLEAN**
- There is **1 uncommitted change**: `package.json`
- The change is a version bump from 0.0.5 to 0.0.7 (automated by the post-build script)
- This appears to be an expected change from the build process
### Recommendations:
1. **Commit the version change**: The package.json version bump is from your build process and should be committed
2. **Consider git workflow**: You might want to commit this change to have a clean working directory
If you'd like me to help commit this change or investigate any other aspects of the codebase, just let me know!