Analyzes codebases to generate dependency graphs and architectural insights across multiple programming languages, helping developers understand code structure and validate against architectural rules.
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.
npm install
npm run build
Add to your MCP settings file (usually located at ~/.config/cline/mcp_settings.json or equivalent):
json { mcpServers: { \DependencyMCP: { \command:
ode, \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:
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 });
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) });
Gets detailed metadata about a specific file.
const result = await client.callTool("DependencyMCP", "get_file_metadata", { path: "/path/to/file.ts" });
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/**/*"] } ] });
{ "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": [] } }
{ "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" }
The server is built with TypeScript and uses:
dependency-mcp/
├── src/
│ └── index.mts # Main server implementation
├── package.json
├── tsconfig.json
└── README.md
To add support for a new programming language:
fileTypes
arrayparseFileImports
and parseFileExports
inferArchitecturalLayer
MIT
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!