Skip to main content
Glama

πŸš€ Code Quality MCP Server

Hybrid Code Quality Analysis - Combines logic-based checks with AI-powered deep analysis

MCP (Model Context Protocol) system for code quality analysis. Supports two modes:

  • ⚑ Fast Mode: Quick logic-based checks

  • πŸ€– Deep Mode: AI-powered deep analysis (Claude)


πŸ”§ Installation

npm install
npm run build

Related MCP server: Tech Debt MCP Server

▢️ Running the Server

Option 1: Direct Run

npm start

Option 2: Via Claude Desktop

Add to ~/.config/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "code-quality": {
      "command": "node",
      "args": ["/absolute/path/to/code-quality-mcp/dist/index.js"]
    }
  }
}

πŸ“š API Tools

πŸ” Analysis Tools

1. check_quality - Full Code Quality Check

{
  "tool": "check_quality",
  "arguments": {
    "projectPath": ".",
    "deepAnalysis": false,     // true = AI mode
    "checkUnusedCode": true,
    "checkComplexity": false,  // requires AI
    "checkSecurity": false,    // requires AI
    "page": 1,                 // pagination
    "pageSize": 50             // items per page
  }
}

Returns: Complete list of issues with pagination


2. get_smart_summary - Smart Summary ⭐

Instead of 500 issues, get a focused summary:

{
  "tool": "get_smart_summary",
  "arguments": {
    "projectPath": "."
  }
}

Returns:

πŸ“Š Score: 68/100
πŸ“ˆ Issues: 500 (120 critical)
⏱️ Fix Time: 2 days

πŸ”₯ Top Problems:
  β€’ unused-code: 300 (60%)
  β€’ security: 50 (10%)

πŸ“ Hotspot Files:
  πŸ”΄ UserService.ts - 45 issues

3. get_quick_wins - Quick Wins ⚑

Get only actions that provide maximum impact in minimum time:

{
  "tool": "get_quick_wins",
  "arguments": {
    "projectPath": "."
  }
}

Returns:

⚑ Quick Wins:
1. Remove 50 unused vars (10 min) β†’ +15 points
2. Fix 30 console.log (5 min) β†’ +8 points
3. Translate Hebrew comments (15 min) β†’ +5 points

Total: 30 minutes β†’ +28 points!

4. get_trends - Progress Tracking πŸ“ˆ

See how code quality improves over time:

{
  "tool": "get_trends",
  "arguments": {
    "projectPath": "."
  }
}

Returns:

πŸ“ˆ Trends:
  βœ… Score: 45 β†’ 68 (+23)
  βœ… Fixed: 120 issues
  ⚠️ New: 15 issues

Improving:
  β€’ unused-code: 300 β†’ 180 (-120)
  β€’ security: 10 β†’ 5 (-5)

Degrading:
  β€’ code-style: 50 β†’ 65 (+15)

πŸ”§ Other Tools

5. analyze_project - Project Type Detection

{
  "tool": "analyze_project",
  "arguments": {
    "projectPath": ".",
    "deep": true
  }
}

6. get_recommendations - Quick Recommendations

{
  "tool": "get_recommendations",
  "arguments": {
    "projectPath": ".",
    "language": "en"  // or "he" for Hebrew
  }
}

⚑ Fast vs Deep Mode

Feature

Fast Mode

Deep Mode

Speed

~20ms

~1000ms

Cost

Free

API calls

Accuracy

Good

Excellent

AI insights

❌

βœ…

When to use Fast Mode:

  • During development

  • Before commits

  • In CI/CD pipelines

When to use Deep Mode:

  • Before Pull Requests

  • Code reviews

  • Security audits


πŸ“– Examples


🌍 Supported Platforms

  • Node.js / TypeScript

  • React / React Native

  • Next.js / NestJS

  • Firebase / AWS Amplify

  • Java / .NET / Angular


πŸš€ Key Features

βœ… Smart Ignore Patterns - Automatically skips:

  • node_modules, build, dist, .git

  • React Native: android/gradle, ios/Pods, native build folders

  • Only scans your code, not auto-generated files

βœ… Pagination - Handle large projects with many issues

βœ… Smart Summaries - Get actionable insights instead of overwhelming lists

βœ… Quick Wins - Find high-impact, low-effort fixes

βœ… Trend Tracking - Monitor code quality improvements over time


Built with ❀️ using MCP and Claude

Available Tools

6 tools
analyze_projectC

Analyze project type and code quality

ParametersJSON Schema
NameRequiredDescriptionDefault
deepNoPerform deep analysis including nested projects
projectPathYesPath to the project to analyze

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states what the tool does but does not mention return format, side effects, permissions, or the effect of the 'deep' parameter, leaving the agent without important context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is direct and front-loaded. It contains no unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and the presence of overlapping sibling tools, the description is too terse. It lacks information about what the analysis returns, how deep analysis differs, and when to choose this tool over alternatives like check_quality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides descriptions for both projectPath and deep, covering 100% of parameters. The description adds no extra meaning beyond what the schema states, so a baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes project type and code quality, using a specific verb and resource. It distinguishes from siblings like check_quality by also covering project type, though the scope could be more precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use analyze_project versus sibling tools such as check_quality or get_recommendations. The description does not mention any exclusions or preferred contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_qualityC

Check code quality based on project type. Supports both fast (logic-based) and deep (AI-powered) analysis modes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for paginated results. Default: 1
pageSizeNoNumber of issues per page. Default: 50, Max: 100
aiEnabledNoEnable AI analysis (alternative to deepAnalysis). Default: false
projectPathYesPath to the project
projectTypeNoOverride detected project type
deepAnalysisNoEnable AI-powered deep analysis (slower but more accurate). Default: false
checkSecurityNoCheck for security issues (requires deep analysis). Default: false
checkComplexityNoCheck code complexity (requires deep analysis). Default: false
checkUnusedCodeNoCheck for unused code. Default: true

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Check code quality' and mentions modes, but does not disclose whether the tool is read-only, what it returns, or that certain checks (security/complexity) require deep analysisβ€”a key behavioral constraint. This is insufficient for a tool with no annotation safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose and then providing mode information. Every word earns its place; it is concise and well-structured without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a moderately complex tool with 9 parameters, no output schema, and no annotations. The description does not mention the return format, pagination behavior, or how it relates to sibling tools like analyze_project. Given the lack of an output schema, the description should explain what the tool returns, but it omits that entirely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description's mention of 'fast (logic-based) and deep (AI-powered) analysis modes' loosely maps to aiEnabled and deepAnalysis, but adds minimal new meaning beyond what the schema already describes. No parameter-specific details are added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Check code quality') and a resource ('project type'), giving a clear sense of the tool's purpose. However, it does not explicitly distinguish itself from sibling tools like analyze_project, which could serve a similar function, so it misses full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions two modes (fast and deep) but provides no guidance on when to use this tool compared to alternatives like analyze_project or get_recommendations. There is no explicit context for selecting check_quality over its siblings, leaving the agent without decision-making guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quick_winsB

Get high-impact, low-effort fixes to quickly improve code quality score

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesPath to the project

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only characterizes the output as 'high-impact, low-effort fixes' but does not state whether the tool is read-only, whether it modifies code, or what side effects might occur. It also omits any details about permissions, rate limits, or destructive potential.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no filler or redundancy. It earns its place by stating the tool's purpose and value proposition concisely.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description is mostly complete. It communicates the purpose and intended outcome. However, it could benefit from noting that the tool is a read-only analysis or indicating the expected response format, but this is not critical for a low-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% since 'projectPath' is described as 'Path to the project'. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate. No extra parameter nuances are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves high-impact, low-effort fixes aimed at improving code quality. It uses the verb 'Get' and identifies the resource (fixes) and purpose, which distinguishes it from siblings that analyze or summarize. However, it doesn't explicitly differentiate from 'get_recommendations', which may overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when one wants quick code quality improvements but provides no explicit when-to-use or when-not-to-use guidance relative to sibling tools. There are no alternatives named or exclusions stated, so the guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_recommendationsC

Get code quality recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoLanguage for recommendations (en/he)en
projectPathYesPath to the project

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully communicate behavioral traits, but it only states 'Get code quality recommendations'. It does not disclose whether the operation is read-only, safe, or what the response structure looks like, leaving a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loaded with the key action. It wastes no words, but it is arguably too sparse, lacking depth that would make it more useful. Still, for a simple tool, the conciseness is acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should compensate by explaining what 'code quality recommendations' means, how they are generated, or how this tool differs from siblings. It does none of these, making the tool underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters (projectPath with 'Path to the project' and language with 'Language for recommendations (en/he)'), so schema coverage is 100%. The description adds no new parameter context, but the schema fully carries the load, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description provides a clear verb ('Get') and resource ('code quality recommendations'), making the tool's action understandable. However, it does not distinguish this tool from sibling tools like check_quality or get_quick_wins, so it stays at the 'clear but no sibling differentiation' level.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. The description is a bare one-liner without any contextual cues, exclusions, or mention of preferred scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_smart_summaryB

Get a concise, actionable summary of code quality instead of full issue list

ParametersJSON Schema
NameRequiredDescriptionDefault
projectPathYesPath to the project

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavior. It states the tool returns a 'concise, actionable summary' but does not describe the output format, whether it is a read-only operation, how the summary is generated, or any side effects. This leaves significant behavioral ambiguity for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the purpose and includes a useful qualifier ('instead of full issue list'). No wasted words; it is concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one parameter and no output schema. The description adequately conveys the basic purpose for selection but lacks details about return value structure and edge cases. Given the simplicity, it is minimally complete but not rich enough to fully inform an agent about expected output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of the parameter descriptions (projectPath is described as 'Path to the project'). The description adds no additional parameter-level meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a 'concise, actionable summary of code quality', which is a specific verb and resource. It differentiates from a 'full issue list' but does not explicitly name sibling tools, leaving some ambiguity among get_recommendations, get_quick_wins, and get_trends. Thus it is clear but not fully distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'instead of full issue list' implies the tool should be used when a summary is preferred over a detailed list, which is useful context. However, no explicit when-to-use versus alternatives are given, and sibling tools like get_recommendations or get_quick_wins are not mentioned. Usage guidance is primarily implied.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv1.0.0
    • First observedanalyze_project
    • First observedcheck_quality
    • First observedget_quick_wins
    • First observedget_recommendations
    • First observedget_smart_summary
    • First observedget_trends

TDQS

A3.5/5.0
Disambiguation3/5

analyze_project and check_quality overlap in purpose, both analyzing project type and quality. The get_recommendations, get_smart_summary, and get_quick_wins tools are related but distinct in output style, so disambiguation is moderate.

Naming Consistency5/5

All tool names consistently follow a verb_noun pattern (analyze_project, check_quality, get_recommendations, etc.). The use of get_ for most retrieval functions is uniform and predictable.

Tool Count5/5

Six tools is within the ideal 3-15 range for a focused code-quality server. Each tool addresses a specific aspect of the domain without bloat.

Completeness4/5

The tool set covers analysis, quality checking, recommendations, summaries, quick wins, and trends, providing a comprehensive view of code quality. Missing a raw issue list or fix application is a minor gap, but agents can work around it via the existing tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive codebase analysis including project structure evaluation, cross-language duplicate detection, microservices validation, and configuration optimization with AI-powered pattern learning that generates actionable improvement reports.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A server for analyzing technical debt across multiple programming languages, integrating with MCP-compatible tools to detect code quality issues and provide prioritized recommendations.
    16
    88
    7
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An 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.
    4
    3
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    AI-powered code quality analysis that detects security issues, bugs, code smells, and performance problems across multiple languages.
    4
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zoharazr/code-quality-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server