Git Ingest
About
Reads the structure and important files of a GitHub repository.
Details
- Author
- adhikasp
- Repository
- adhikasp/mcp-git-ingest
- GitHub stars
- 137
- Downloads
- 622
- License
- MIT License
- Categories
- Developer Tools, Other, Productivity, Design, Workplace, File Management, AI, Automation, Infrastructure, Knowledge Base, Project Management
Jump to
- Provides github_directory_structure and github_read_important_files tools.
- Uses fastmcp for MCP server creation.
- Uses gitpython for Git repository operations.
- Creates deterministic temporary directories based on repo URL hash.
- Cleans up temporary files after each operation.
- Generates Unicode tree representation of directory structure.
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Git IngestCommand (node, npx, python, etc.)uvxArguments-
Argument 1
--from -
Argument 2
git+https://github.com/adhikasp/mcp-git-ingest -
Argument 3
mcp-git-ingest
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Setup
Using 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?
github_directory_structure
Returns a tree-like representation of a repository's directory structure. Parameters: repo_url (string)
github_read_important_files
Reads and returns the contents of specified files in a repository. Parameters: repo_url (string), file_paths (list of strings)
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"git ingest": {
"env": {},
"args": [
"--from",
"git+https://github.com/adhikasp/mcp-git-ingest",
"mcp-git-ingest"
],
"shell": false,
"command": "uvx"
}
}
}
Linux
{
"env": [],
"args": [
"--from",
"git+https://github.com/adhikasp/mcp-git-ingest",
"mcp-git-ingest"
],
"shell": false,
"command": "uvx"
}
Macos
{
"env": [],
"args": [
"--from",
"git+https://github.com/adhikasp/mcp-git-ingest",
"mcp-git-ingest"
],
"shell": false,
"command": "uvx"
}
Windows
{
"env": [],
"args": [
"--from",
"git+https://github.com/adhikasp/mcp-git-ingest",
"mcp-git-ingest"
],
"shell": false,
"command": "uvx"
}
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





