DependencyMCP Server

by mkearl

Integrations

  • Analyzes JavaScript codebases to generate dependency graphs, extract file metadata, and evaluate architectural patterns and dependencies.

  • Analyzes Python codebases to generate dependency graphs, extract file metadata, and evaluate architectural patterns and dependencies.

  • Analyzes TypeScript codebases to generate dependency graphs, extract imports/exports, and evaluate code against architectural rules and patterns.

DependencyMCP Server

A Model Context Protocol (MCP) server that analyzes codebases to generate dependency graphs and architectural insights. This server helps understand code structure, dependencies, and architectural patterns across multiple programming languages.

Features

  • Multi-Language Support: Analyzes dependencies in TypeScript, JavaScript, C#, Python, and more
  • Dependency Graph Generation: Creates detailed dependency graphs in JSON or DOT format
  • Architectural Analysis: Infers architectural layers and validates against rules
  • File Metadata: Extracts imports, exports, and other metadata from source files
  • Scoring System: Evaluates codebase against architectural rules and patterns

Installation

  1. Clone the repository
  2. Install dependencies:
npm install
  1. Build the project:
npm run build

Configuration

Add to your MCP settings file (usually located at ~/.config/cline/mcp_settings.json or equivalent):

json { mcpServers: { \DependencyMCP: { \command: \node, \args: [\path/to/dependency-mcp/dist/index.js], \env: { \MAX_LINES_TO_READ: \1000, \CACHE_DIR: \path/to/dependency-mcp/.dependency-cache, \CACHE_TTL: \3600000 } } }

Environment Variables:

  • MAX_LINES_TO_READ: Maximum number of lines to read from each file (default: 1000)
  • CACHE_DIR: Directory to store dependency cache files (default: .dependency-cache)
  • CACHE_TTL: Cache time-to-live in milliseconds (default: 1 hour = 3600000)

Available Tools

analyze_dependencies

Analyzes dependencies in a codebase and generates a dependency graph.

const result = await client.callTool("DependencyMCP", "analyze_dependencies", { path: "/path/to/project", excludePatterns: ["node_modules", "dist"], // optional maxDepth: 10, // optional fileTypes: [".ts", ".js", ".cs"] // optional });

get_dependency_graph

Gets the dependency graph for a codebase in JSON or DOT format.

const result = await client.callTool("DependencyMCP", "get_dependency_graph", { path: "/path/to/project", format: "dot" // or "json" (default) });

get_file_metadata

Gets detailed metadata about a specific file.

const result = await client.callTool("DependencyMCP", "get_file_metadata", { path: "/path/to/file.ts" });

get_architectural_score

Scores the codebase against architectural rules and patterns.

const result = await client.callTool("DependencyMCP", "get_architectural_score", { path: "/path/to/project", rules: [ { pattern: "src/domain/**/*", allowed: ["src/domain/**/*"], forbidden: ["src/infrastructure/**/*"] } ] });

Example Output

Dependency Graph (JSON)

{ "src/index.ts": { "path": "src/index.ts", "imports": ["./utils", "./services/parser"], "exports": ["analyze", "generateGraph"], "namespaces": [], "architecturalLayer": "Infrastructure", "dependencies": ["src/utils.ts", "src/services/parser.ts"], "dependents": [] } }

Architectural Score

{ "score": 85, "violations": [ "src/domain/user.ts -> src/infrastructure/database.ts violates architectural rules" ], "details": "Score starts at 100 and deducts 5 points per violation" }

Development

The server is built with TypeScript and uses:

  • Zod for schema validation
  • diff for file comparison
  • minimatch for glob pattern matching

Project Structure

dependency-mcp/ ├── src/ │ └── index.mts # Main server implementation ├── package.json ├── tsconfig.json └── README.md

Adding Support for New Languages

To add support for a new programming language:

  1. Add file extensions to the default fileTypes array
  2. Implement language-specific regex patterns in parseFileImports and parseFileExports
  3. Add any language-specific architectural patterns to inferArchitecturalLayer

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Analyzes codebases to generate dependency graphs and architectural insights across multiple programming languages, helping developers understand code structure and validate against architectural rules.

  1. Features
    1. Installation
      1. Configuration
        1. Available Tools
          1. analyze_dependencies
          2. get_dependency_graph
          3. get_file_metadata
          4. get_architectural_score
        2. Example Output
          1. Dependency Graph (JSON)
          2. Architectural Score
        3. Development
          1. Project Structure
          2. Adding Support for New Languages
        4. License

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            Analyzes source code dependencies across multiple programming languages in the specified directory to identify file relationships, assisting in dependency management and project structure understanding.
            Last updated -
            1
            Python
            MIT License
          • -
            security
            A
            license
            -
            quality
            A Model Context Protocol tool for analyzing code repositories, performing security scans, and assessing code quality across multiple programming languages.
            Last updated -
            Python
            MIT License
            • Apple
            • Linux
          • -
            security
            A
            license
            -
            quality
            A Cloudflare Worker that analyzes source code to provide comprehensive explanations including architecture diagrams, core functionality analysis, and component breakdowns across multiple programming languages.
            Last updated -
            2
            TypeScript
            Apache 2.0
          • -
            security
            F
            license
            -
            quality
            A server component of the Model Context Protocol that provides intelligent analysis of codebases using vector search and machine learning to understand code patterns, architectural decisions, and documentation.
            Last updated -
            4
            Python

          View all related MCP servers

          ID: 4ndnq31gxp