MCP Source Relation Server

Integrations

  • Analyzes JavaScript files for import statements and require statements to determine file dependencies

  • Analyzes Python files for import statements, from...import statements, init.py, and relative imports to determine file dependencies

  • Analyzes Ruby files for require statements and require_relative statements, including those without extensions, to determine file dependencies

MCP Source Relation Server

This is an MCP server that analyzes the relationships of source code under src directory of a specified directory. It analyzes import statements for each language and identifies dependencies between files. By incorporating it into Claude, Claude can quickly check the dependencies of a project and help identify related files.

function

  • Supports multi-language import parsing
    • TypeScript/JavaScript: import statement, require statement
    • Python: import statement, from ... import statement
    • Ruby: require statement, require_relative statement
    • Rust: mod declaration, use statement
  • Corresponds to path aliases in tsconfig.json (such as @/components/... )
  • Supports special features for each language
    • Python: __init__.py , relative imports
    • Rust: mod.rs pattern
    • TypeScript: alias, index.ts
    • Ruby: require without extension

set up

Prerequisites

  • Python 3.10 or later
  • uv

install

# uvのインストール $ curl -LsSf https://astral.sh/uv/install.sh | sh $ cd /path/to/mcp-source-relation # ライブラリのインストール $ uv sync

Claude for Desktop Settings

Add the following to claude_desktop_config.json :

{ "mcpServers": { "source-relation": { "command": "uv", "args": [ "--directory", "/path/to/mcp-source-relation", # このプロジェクトディレクトリの絶対パスに書き換えてください "run", "source_relation.py" ] } } }

How to use

Use by Claude

/Users/xxx/GitHub/xxx/ のソースの依存関係を確認してand instruct it like this, it will work

`/Users/owa/GitHub/mcp-source-relation/` のソースコードの依存関係を確認してみましょう。 依存関係の分析結果から、以下のような構造が確認できます: 1. メインの解析モジュール: `src/source_analyzer.py` - 各言語固有の解析モジュールを利用しています(Ruby, Python, TypeScript, Rust) 2. 言語別の解析モジュール: - `src/analyzers/ruby.py` - `src/analyzers/python.py` - `src/analyzers/typescript.py` - `src/analyzers/rust.py` - すべて `src/analyzers/base.py` を継承しています 3. 共通基盤: - `src/analyzers/base.py`: 基本的な解析機能を提供 - `src/utils/path.py`: パス操作のユーティリティ - `src/configs/typescript.py`: TypeScript固有の設定 特徴的な点: - 各言語の解析モジュールは共通の基底クラス(base.py)を継承しており、一貫性のある設計になっています - TypeScriptのみ独自の設定ファイル(configs/typescript.py)を持っています - パス操作は共通のユーティリティモジュール(utils/path.py)に集約されています この構造から、新しい言語のサポートを追加する場合は、`src/analyzers/` に新しいモジュールを追加し、`base.py` を継承することで実現できる設計になっていることがわかります。

If you specify a directory, the src directory under it will be analyzed. If you specify a file, the analysis will be based on that file. It also supports path input from the prompt. To use it with a prompt, select Attach from MCP -> Choose an integration -> source-relation .

Output Format

The analysis results are output in JSON format as follows:

{ "dependencies": { "components/Button.tsx": [ "types/index.ts", "utils/theme.ts" ], "pages/index.tsx": [ "components/Button.tsx", "utils/api.ts" ] } }

All paths are relative to the src directory.

Supported import formats

TypeScript/JavaScript

  • import { Component } from './Component'
  • import type { Type } from '@/types'
  • import './styles.css'
  • require('./module')
  • Alias paths ( @/components/... )

Python

  • import module
  • from module import name
  • from .module import name
  • from ..module import name

Ruby

  • require 'module'
  • require_relative './module'
  • Require without extension

Rust

  • mod module;
  • use crate::module;
  • use super::module;
  • use self::module;

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

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

Analyzes source code dependencies across multiple programming languages in the specified directory to identify file relationships, assisting in dependency management and project structure understanding.

  1. function
    1. set up
      1. Prerequisites
      2. install
    2. Claude for Desktop Settings
      1. How to use
        1. Use by Claude
      2. Output Format
        1. Supported import formats
          1. TypeScript/JavaScript
          2. Python
          3. Ruby
          4. Rust

        Related MCP Servers

        • A
          security
          A
          license
          A
          quality
          Provides tools for collecting and documenting code from directories.
          Last updated -
          4
          81
          12
          TypeScript
          MIT License
          • Apple
          • Linux
        • -
          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
          F
          license
          -
          quality
          Analyzes codebases to generate dependency graphs and architectural insights across multiple programming languages, helping developers understand code structure and validate against architectural rules.
          Last updated -
          5
          JavaScript
        • -
          security
          A
          license
          -
          quality
          A tool that helps rank codebase files by importance (1-10 scale), track file dependencies, and provide summaries, all accessible through a simple JSON-based interface.
          Last updated -
          2
          TypeScript
          GPL 3.0
          • Linux

        View all related MCP servers

        ID: jmnzj9317i