M

MCP源码关系

@owayo/mcp-source-relation
0 Stars 314 次浏览 owayo 更新于 2026-08-23

分析指定目录中多种编程语言的源代码依赖关系,识别文件之间的关联,有助于依赖管理及项目结构的理解。

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (1 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

get_source_relation 1 个参数 需填 1 项

Analyze dependencies between source files

必填参数:path

服务介绍

MCP Source Relation Server

这是一个MCP服务器,用于分析指定目录下src子目录中的源代码相关性。它通过解析各种语言的导入语句来确定文件间的依赖关系。将其集成到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: 无扩展名的require

设置

先决条件

  • Python 3.10或更高版本
  • uv

安装

# uvのインストール
$ curl -LsSf https://astral.sh/uv/install.sh | sh

$ cd /path/to/mcp-source-relation
# ライブラリのインストール
$ uv sync

在Claude for Desktop中的配置

请在claude_desktop_config.json中添加以下设置:

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

使用方法

在Claude中的使用

可以通过指示如“检查/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目录。
如果指定了文件,则以该文件为基准进行解析。
还支持从prompt输入路径。
若要在prompt中使用,请选择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

Ruby

  • require 'module'
  • require_relative './module'
  • 无扩展名的require

Rust

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

相关 MCP 服务