GitIngest MCP服务器
*一个MCP网关,可以将任何Git存储库转换为AI就绪的摘要。*
______________________________________________________________________
🏛️ 建筑氛围
这个代码库包含一个 安静、专注的精力。它很小,深思熟虑,尊重自己的界限。
vibe score: 85/100
modules: 4 (145 LOC)
coupling: minimal (server → service → gitingest lib)
ghosts: none模块
| 模块 | 行 | 角色 | 稳定性 |
|---|---|---|---|
ingest_server/server.py | ~45 | MCP服务器,工具注册 | I=0.2(稳定) |
ingest_server/services/ingestion_service.py | ~50 | 业务逻辑,摄取 | I=0.3(稳定) |
ingest_server/models/ingestion.py | ~9 | Pydantic模式 | I=0.0(稳定) |
tests/test_server.py | ~34 | 服务器测试 | I=1.0(叶) |
tests/test_service.py | ~38 | 服务测试 | I=1.0(叶) |
没有神的模块。没有循环依赖关系。没有建筑上的困扰。
能量流
tests.test_server ──┐
▼
ingest_server.server (transport)
│
▼
IngestionService (business logic)
│
▼
gitingest library (core)ingest_server.server 是一个 稳定输送层 --它处理MCP协议并委托给服务。
IngestionService 是一个 业务逻辑层 --它协调摄取、处理格式化和管理默认值。
ingest_server.models 包含 数据模式 --结构化请求的Pydantic模型。
______________________________________________________________________
📡 这有什么作用
mcp-gitingest 是一个专门的模型上下文协议(MCP)服务器,它封装了 gitingest 图书馆。它允许AI代理和LLM通过一次工具调用获取、清理整个代码库,并将其格式化为结构化文本。
代理只需简单地说: *“摄取此存储库”* --并接收一个提示就绪的摘要:摘要、树和内容。
______________________________________________________________________
✨ 特性
- 即时准备摘要 --为LLM上下文设计的结构化输出
- 选择性摄入 --glob模式用于包含/排除文件
- 分支机构支持 --瞄准任何分支或标签
- 代币效率 --摘要包括令牌估计
- 可配置限制 --通过服务可配置的默认最大文件大小
______________________________________________________________________
🤖 AI代理指南
有关代理交互模式的详细信息,请参见 AGENT.md.
______________________________________________________________________
🔧 工具: ingest_repo
此服务器的唯一暴露点。
参数:
| 名称 | 类型 | 描述 |
|---|---|---|
url | string | 必需的GitHub/Git存储库URL |
branch | string | 可选。分支进行分析。 |
include_patterns | list[string] | 可选。要包括的球状图案(例如。 ["*.py", "*.md"]). |
exclude_patterns | list[string] | 可选。要排除的球状图案。 |
max_size | number | 可选。最大文件大小(以字节为单位)(默认值:10MB)。 |
______________________________________________________________________
🧱 建筑
建于 FastMCP (Python)用于强大的MCP通信。
graph LR
IDE[AI Agentic IDE] -- Tool Call (ingest_repo) --> MCP[mcp-gitingest Server]
MCP -- IngestionService --> GI[gitingest Library]
GI -- Clone/Read --> Git[GitHub/Git Repository]
Git -- Raw Files --> GI
GI -- Structured Digest --> MCP
MCP -- Tool Result --> IDE层:
- 运输: FastMCP(MCP协议)
- 服务器:
ingest_server/server.py(工具注册) - 服务:
ingest_server/services/ingestion_service.py(商业逻辑) - 核心:
gitingest库(摄取逻辑) - 来源: Git存储库(输入)
______________________________________________________________________
📦 包装
该项目采用Python包结构 hatchling 构建后端。
[project]
name = "mcp-gitingest"
version = "0.1.0"
dependencies = ["fastmcp>=3.0.2", "gitingest>=0.3.1"]
[project.scripts]
mcp-gitingest = "ingest_server.server:main"入口点: mcp-gitingest 直接运行服务器。
______________________________________________________________________
🚀 安装和设置
先决条件
- 紫外线 安装
来源
cd mcp-gitingest
uv sync运行服务器:
uv run python -m ingest_server.server或使用安装的入口点(之后 uv pip install -e .):
mcp-gitingest车轮安装
pip install dist/mcp_gitingest-0.1.0-py3-none-any.whl
mcp-gitingest使用uvx(推荐)
uvx mcp-gitingest______________________________________________________________________
🖥️ IDE 集成
添加到您的MCP配置(Claude Desktop、Cursor等):
{
"mcpServers": {
"gitingest": {
"command": "uvx",
"args": ["mcp-gitingest"]
}
}
}或与当地发展(来源):
{
"mcpServers": {
"gitingest": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-gitingest",
"run",
"python",
"-m",
"ingest_server.server"
]
}
}
}重新启动IDE。这 ingest_repo 工具将会出现。
______________________________________________________________________
🛠️ 发展
在开发模式下运行
uv run python -m ingest_server.server使用MCP检查员进行测试
npx @modelcontextprotocol/inspector uv run python -m ingest_server.server运行单元测试
uv run pytest tests/______________________________________________________________________
🔮 建筑说明
代码库遵循 分层服务架构:
ingest_server/
├── __init__.py
├── server.py # FastMCP setup, tool registration
├── models/
│ ├── __init__.py
│ └── ingestion.py # Pydantic schemas
└── services/
├── __init__.py
└── ingestion_service.py # Business logic设计决策:
- 服务层将业务逻辑与MCP传输隔离开来
- 用于请求验证的Pydantic模型(可扩展)
- 通过服务构造函数配置默认值
- 为呼叫者处理重新提出正确的错误
______________________________________________________________________
📊 健康指标
| 度量 | 当前 | 目标 |
|---|---|---|
| 振动评分 | 85/100 | >80 |
| 耦合 | 最小 | 最小 |
| 测试覆盖率 | 100% | >90% |
| 圈复杂度 | ~4 | \<10 |
| 每个函数的行数 | ~25 | \<50 |
全是绿色。无需采取任何行动。
______________________________________________________________________
📄 许可证
MIT许可证——请参阅许可证文件。
______________________________________________________________________
*保持幽灵爪意识。*
