MCP Source Relation Server
MCP Source Relation Server
지정된 디렉토리의 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.tsRuby: 확장자 없이 require
Related MCP server: QoutaMCP
설정
요건
파이썬 3.10 이상
uv
설치
# uvのインストール
$ curl -LsSf https://astral.sh/uv/install.sh | sh
$ cd /path/to/mcp-source-relation
# ライブラリのインストール
$ uv syncClaude 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 디렉토리를 구문 분석합니다. Choose an integration source-relation Attach from MCP 합니다.
출력 형식
해석 결과는 다음과 같은 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/...)
파이썬
import modulefrom module import namefrom .module import namefrom ..module import name
루비
require 'module'require_relative './module'확장자 없이 require
Rust
mod module;use crate::module;use super::module;use self::module;
Available Tools
1 toolget_source_relationC
Analyze dependencies between source files
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states what the tool does at a high level ('analyze dependencies'), but doesn't disclose behavioral traits like whether this is a read-only operation, what format the analysis returns, whether it has side effects, performance characteristics, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words with no wasted language. It's front-loaded with the core purpose and uses efficient phrasing. Every word earns its place in conveying the basic function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. For a tool that performs analysis (potentially complex), the description provides minimal context about what analysis means, what results to expect, or how to interpret them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about parameters. With 0% schema description coverage and a single required parameter 'path', the description doesn't compensate at all - it doesn't explain what the path parameter represents, what format it expects, or how it relates to the dependency analysis.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Analyze dependencies between source files' states a general purpose (analyzing dependencies) and resource (source files), but lacks specificity about what kind of analysis is performed or what 'dependencies' means in this context. It doesn't distinguish from siblings, but there are no sibling tools to differentiate from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, prerequisites, or constraints. The description implies it's for dependency analysis, but doesn't specify scenarios where this is appropriate or what problems it solves.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool has a clearly defined purpose of analyzing dependencies between source files, making it impossible for an agent to misselect between non-existent alternatives.
A single tool inherently exhibits perfect naming consistency, as there are no other tools to compare against. The tool name 'get_source_relation' follows a clear verb_noun pattern, which would be consistent if more tools existed.
A single tool is generally too few for most server purposes, as it limits functionality and suggests an incomplete or overly narrow scope. While it might be appropriate for a highly specialized task, it feels thin and insufficient for comprehensive source dependency analysis, which typically involves multiple operations like listing, updating, or visualizing relations.
The tool set is severely incomplete for the inferred domain of source dependency analysis. With only a 'get' operation, there are obvious gaps such as creating, updating, deleting, or listing source relations, and no support for lifecycle management or advanced queries. This will likely cause agent failures when more complex operations are needed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate SBOMs, scan vulnerabilities, and analyze dependencies from local projects or Git repos.
AI-powered codebase analysis — call graphs, security, dead code, complexity. 150+ tools.
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Ground-truth code graph for your codebase: exact callers, callees, symbols & dependencies.
Related MCP Servers
- AlicenseAqualityDmaintenanceAnalyzes codebases to generate dependency graphs and architectural insights across multiple programming languages, helping developers understand code structure and validate against architectural rules.66020MIT
- AlicenseAqualityDmaintenanceEnables inspection and analysis of project structures to detect languages, frameworks, entry points, and dependencies across multiple programming languages including Node.js, Python, PHP, Go, Java, and Rust.3181ISC
- AlicenseNot gradedqualityDmaintenanceGenerates and queries a graph representation of a codebase to identify entities and their relationships, such as function calls and inheritance. It supports multiple languages including Python, JavaScript, and Rust to help users navigate and understand complex code structures.2822MIT
- AlicenseBqualityCmaintenanceEnables token-efficient semantic search and analysis over any directory of files through hybrid search, directory overview, structural analysis, and dependency graphs.14MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/owayo/mcp-source-relation'
If you have feedback or need assistance with the MCP directory API, please join our Discord server