mcp-git-ingest

mcp-git-ingest

帮助 AI 读取 GitHub 仓库结构和重要文件。想要快速了解一个仓库是关于什么的?用 "read https://github.com/adhikasp/mcp-git-ingest 并确定代码在技术上是如何工作的" 来提示它。

Category
访问服务器

Tools

github_directory_structure

Clone a GitHub repository and return its directory structure in a tree format. Args: repo_url: The URL of the GitHub repository Returns: A string representation of the repository's directory structure

github_read_important_files

Clone a GitHub repository and read the contents of specified files. Args: repo_url: The URL of the GitHub repository file_paths: List of file paths to read (relative to repository root) Returns: A dictionary mapping file paths to their contents

README

MCP Git Ingest

smithery badge

一个模型上下文协议 (MCP) 服务器,用于帮助读取 GitHub 仓库结构和重要文件。

灵感来自 gitingest

<a href="https://glama.ai/mcp/servers/un2zatig9e"><img width="380" height="200" src="https://glama.ai/mcp/servers/un2zatig9e/badge" /></a>

配置

{
    "mcpServers": {
        "mcp-git-ingest": {
            "command": "uvx",
            "args": ["--from", "git+https://github.com/adhikasp/mcp-git-ingest", "mcp-git-ingest"],
        }
    }
}

用法

使用 mcp-client-cli:

$ llm read https://github.com/adhikasp/mcp-git-ingest 并确定代码在技术上是如何工作的

我将帮助你理解 mcp-git-ingest 仓库的技术细节。我将首先获取目录结构,然后读取重要文件以分析代码的工作方式。

工具调用:
  github_directory_structure
  参数:
    repo_url: https://github.com/adhikasp/mcp-git-ingest

现在,我将读取重要文件以了解技术实现:

工具调用:
  github_read_important_files
  参数:
    repo_url: https://github.com/adhikasp/mcp-git-ingest
    file_paths: ['README.md', 'src/mcp_git_ingest/main.py', 'pyproject.toml']

让我分解一下这段代码在技术上是如何工作的:

1. 目的:
`mcp-git-ingest` 是一个模型上下文协议 (MCP) 服务器,旨在帮助读取 GitHub 仓库结构和重要文件。 它提供了两个主要工具:
- `github_directory_structure`: 返回仓库目录结构的树状表示
- `github_read_important_files`: 读取并返回仓库中指定文件的内容

2. 技术实现:

a. 依赖项:
- 使用 `fastmcp` 创建 MCP 服务器
- 使用 `gitpython` 进行 Git 仓库操作
- 需要 Python 3.8+

b. 关键函数:

`clone_repo(repo_url: str) -> str`:
- 基于仓库 URL 的哈希值创建一个确定性的临时目录
- 检查仓库是否已被克隆
- 如果没有,则克隆仓库
- 处理错误情况和清理
- 返回克隆仓库的路径

`get_directory_tree(path: str, prefix: str = "") -> str`:
- 递归生成树状目录结构
- 跳过 `.git` 目录
- 使用 Unicode 框图字符创建可视化树表示
- 处理条目的排序

`github_directory_structure(repo_url: str) -> str`:
- 克隆仓库
- 生成目录树
- 处理后清理临时仓库
- 返回树结构或错误消息

`github_read_important_files(repo_url: str, file_paths: List[str]) -> dict[str, str]`:
- 克隆仓库
- 读取指定文件
- 返回一个字典,将文件路径映射到它们的内容
- 处理文件读取错误
- 清理临时仓库

3. 错误处理:
- 使用 try-except 块来处理仓库克隆、文件读取错误
- 确保始终使用 `finally` 块清理临时目录
- 返回描述性错误消息

4. 性能优化:
- 使用基于哈希的临时目录命名来潜在地重用克隆的仓库
- 在克隆之前检查现有仓库
- 实施清理以防止临时文件累积

5. 独特功能:
- 确定性临时目录创建
- Unicode 树表示
- 灵活的文件读取和错误处理

6. 执行:
- 可以通过 `mcp-git-ingest` 作为 CLI 工具运行
- 通过 `pyproject.toml` 配置
- 依赖于 `fastmcp` 以实现 MCP 服务器功能

该代码是一个强大、灵活的工具,用于以编程方式探索和读取 GitHub 仓库,重点是错误处理和干净的实现。

您希望我详细说明实现的任何特定方面吗?

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选