mcp-git-ingest

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Clones Git repositories to access their directory structure and file contents

  • Reads GitHub repository structure and important files, providing tools to fetch directory structure and read specified files from GitHub repositories

MCP Git 수집

GitHub 저장소 구조와 중요한 파일을 읽는 데 도움이 되는 MCP(Model Context Protocol) 서버입니다.

gitingest 에서 영감을 얻었습니다.

구성

지엑스피1

용법

mcp-client-cli 사용하기:

$ llm read https://github.com/adhikasp/mcp-git-ingest and determine how the code technically works I'll help you understand the technical details of the mcp-git-ingest repository. I'll first fetch the directory structure and then read the important files to analyze how the code works. Tool Calls: github_directory_structure Args: repo_url: https://github.com/adhikasp/mcp-git-ingest Now, I'll read the important files to understand the technical implementation: Tool Calls: github_read_important_files Args: repo_url: https://github.com/adhikasp/mcp-git-ingest file_paths: ['README.md', 'src/mcp_git_ingest/main.py', 'pyproject.toml'] Let me break down how this code technically works: 1. Purpose: The `mcp-git-ingest` is a Model Context Protocol (MCP) server designed to help read GitHub repository structures and important files. It provides two main tools: - `github_directory_structure`: Returns a tree-like representation of a repository's directory structure - `github_read_important_files`: Reads and returns the contents of specified files in a repository 2. Technical Implementation: a. Dependencies: - Uses `fastmcp` for creating an MCP server - Uses `gitpython` for Git repository operations - Requires Python 3.8+ b. Key Functions: `clone_repo(repo_url: str) -> str`: - Creates a deterministic temporary directory based on the repository URL's hash - Checks if the repository is already cloned - If not, clones the repository - Handles error cases and cleanup - Returns the path to the cloned repository `get_directory_tree(path: str, prefix: str = "") -> str`: - Recursively generates a tree-like directory structure - Skips `.git` directories - Uses Unicode box-drawing characters to create a visual tree representation - Handles sorting of entries `github_directory_structure(repo_url: str) -> str`: - Clones the repository - Generates directory tree - Cleans up the temporary repository after processing - Returns the tree structure or an error message `github_read_important_files(repo_url: str, file_paths: List[str]) -> dict[str, str]`: - Clones the repository - Reads specified files - Returns a dictionary mapping file paths to their contents - Handles file reading errors - Cleans up the temporary repository 3. Error Handling: - Uses try-except blocks to handle repository cloning, file reading errors - Ensures temporary directories are always cleaned up using `finally` blocks - Returns descriptive error messages 4. Performance Optimizations: - Uses a hash-based temporary directory naming to potentially reuse cloned repositories - Checks for existing repositories before cloning - Implements cleanup to prevent accumulation of temporary files 5. Unique Features: - Deterministic temporary directory creation - Unicode tree representation - Flexible file reading with error handling 6. Execution: - Can be run as a CLI tool via `mcp-git-ingest` - Configured through `pyproject.toml` - Depends on `fastmcp` for MCP server functionality The code is a robust, flexible tool for programmatically exploring and reading GitHub repositories, with a focus on error handling and clean implementation. Would you like me to elaborate on any specific aspect of the implementation?
-
security - not tested
A
license - permissive license
-
quality - not tested

AI가 GitHub 저장소 구조와 중요 파일을 읽는 데 도움을 줍니다. 저장소의 기능을 빠르게 이해하고 싶으신가요? " https://github.com/adhikasp/mcp-git-ingest를 읽고 코드의 기술적 작동 방식을 파악하세요"라고 명령해 보세요.

  1. Configuration
    1. Usage
      ID: un2zatig9e