MCP Source Relation Server

by owayo
Verified

local-only server

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

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 源关系服务器

这是一个分析指定目录的src目录下源代码相关性的MCP服务器。它分析每种语言的导入语句并识别文件之间的依赖关系。通过与 Claude 集成,它可以让 Claude 快速查看项目依赖关系并帮助识别相关文件。

功能

  • 支持多语言导入解析
    • TypeScript/JavaScript: import语句、 require语句
    • Python: import语句, from ... import语句
    • Ruby: require语句、 require_relative语句
    • Rust: mod声明、 use语句
  • 对应于 tsconfig.json 中的路径别名(例如@/components/...
  • 支持每种语言的特殊功能
    • Python: __init__.py ,相对导入
    • Rust: mod.rs模式
    • TypeScript:别名, index.ts
    • Ruby:无需扩展即可要求

设置

先决条件

  • Python 3.10 或更高版本
  • 紫外线

安装

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

Claude 用于桌面设置

将以下内容添加到claude_desktop_config.json

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

如何使用

克劳德使用

/Users/xxx/GitHub/xxx/ のソースの依存関係を確認して并像这样指示它,它将起作用

`/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` を継承することで実現できる設計になっていることがわかります。

如果指定目录,则会分析其下的src目录。如果您指定一个文件,则分析将基于该文件。它还支持从提示符输入路径。要与提示一起使用它,请选择Attach from MCP -> Choose an integration -> source-relation

输出格式

分析结果以JSON格式输出如下:

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

所有路径都相对于src目录。

支持的导入格式

TypeScript/JavaScript

  • import { Component } from './Component'
  • import type { Type } from '@/types'
  • import './styles.css'
  • require('./module')
  • 别名路径( @/components/...

Python

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

红宝石

  • require 'module'
  • require_relative './module'
  • 需要无扩展名

  • 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

分析指定目录中跨多种编程语言的源代码依赖关系,以识别文件关系,协助依赖关系管理和项目结构理解。

  1. 機能
    1. セットアップ
      1. 必要条件
      2. インストール
    2. Claude for Desktopでの設定
      1. 使用方法
        1. Claudeでの使用
      2. 出力形式
        1. サポートされるインポート形式
          1. TypeScript/JavaScript
          2. Python
          3. Ruby
          4. Rust
        ID: jmnzj9317i