🚀 GitInsight MCP
https://github.com/user-attachments/assets/22716a0c-2dc6-4d00-a761-1fee7341afca
.
用于GitHub配置文件集成的模型上下文协议(MCP)服务器
   ](https://github.com/marwaniiwael18) 
一个学习项目,旨在探索模型上下文协议(MCP)和MCP检查器工具。该服务器提供GitHub配置文件集成,完全与Claude AI合作构建。
作者 瓦埃勒·马尔瓦尼\ 文件夹: marwaniwael.工程师\ 电子邮件: wael.marwani@esprit.tn\ 地点: 阿丽亚娜,突尼斯
🤖 由Claude AI构建 -每次提交都与Claude合著
______________________________________________________________________
📋 目录
______________________________________________________________________
🤖 什么是MCP?
这 模型上下文协议(MCP) 是一种开放协议,使人工智能助手能够安全地连接到外部数据源和工具。将其视为像Claude这样的人工智能模型与您的应用程序和服务交互的标准化方式。
关键概念:
- MCP服务器:提供工具和数据(此项目!)
- MCP客户端:使用工具的AI助手(例如Claude Desktop)
- 工具:AI可以调用以执行操作的函数
- 协议:使用JSON-RPC的标准化通信格式
GitInsight MCP实现了一个MCP服务器,该服务器将您的GitHub配置文件数据暴露给AI助手,使他们能够回答有关您的存储库的问题,分析您的编码模式,并生成投资组合见解。 我创建了这个项目
我创造了 GitInsight MCP 致:
🔍 探索MCP检查员 -想看看MCP服务器是如何工作的,并交互式地测试它们\ 🛠️ 发现新的MCP工具 -了解模型上下文协议生态系统\ 🤖 与Claude AI合作 -完全使用Claude作为编码合作伙伴构建\ 📚 在实践中学习 -使用TypeScript、Node.js和GitHub API的免提体验\ 🚀 创造有用的东西 -一个实际与我的GitHub配置文件配合使用的实用工具
这是一个学习项目 展示:
- 人工智能辅助开发 -用Claude编写的每一行代码
- 现代后端堆栈 -TypeScript、Node.js、MCP SDK
- 真正的API集成 -GitHub Octokit,缓存,错误处理
- 产品品质 -完整的文档,适当的架构
非常适合:
- 开发人员探索MCP和AI辅助编码
- 学习如何构建AI助手可以使用的工具
- 理解模型上下文协议规范
- DevOps工程师希望展示AI集成技能
- 全栈开发人员构建MCP服务器
- 任何创建智能投资组合助手的人
______________________________________________________________________
✨ 特性
🔧 核心功能
- ✅ 8个强大的MCP工具 -从基本查询到高级投资组合生成
- ✅ 3 MCP资源 -可读的开发人员简介、简历和技能数据
- ✅ 3个MCP提示 -为招聘人员和技术评估预先配置
- ✅ 智能高速缓存 -减少GitHub API调用并遵守速率限制
- ✅ 速率限制保护 -自动处理GitHub API约束
- ✅ 差错恢复 -全面的错误处理和有用的消息
- ✅ TypeScript安全 -全类型覆盖,确保可靠性
🎯 以招聘人员为中心的功能
- 📊 技能矩阵 -具有熟练程度的自动化技术技能评估
- 📄 投资组合概要 -为人力资源部准备专业候选人评估
- 📝 自动生成简历 -来自GitHub数据的Markdown简历
- 🎤 招聘人员提示 -为招聘经理预先构建的评估模板
📊 数据洞察
- 📦 存储库元数据(星号、叉号、语言、主题)
- 📝 提交历史记录和活动跟踪
- 📈 汇总统计和分析
- 🔍 按技术、主题或星级进行高级过滤
- 📅 贡献模式和条纹
- 💼 综合技能分类
🎨 开发者体验
- 🚀 易于设置,文档清晰
- 🔐 基于安全令牌的身份验证
- 🎯 清除调试错误消息
- 📖 全面的内联代码注释
- 🧪 生产就绪架构
______________________________________________________________________
🏗️ 建筑
┌─────────────────┐
│ Claude Desktop │ ← AI Assistant (MCP Client)
└────────┬────────┘
│ MCP Protocol (JSON-RPC over stdio)
▼
┌─────────────────┐
│ GitInsight-MCP │ ← This Server
│ MCP Server │
└────────┬────────┘
│
┌────┴────┬──────────┬─────────┐
▼ ▼ ▼ ▼
┌────────┐ ┌──────┐ ┌────────┐ ┌─────┐
│ GitHub │ │Cache │ │ Tools │ │Error│
│ Client │ │Layer │ │Handler │ │ Mgmt│
└────┬───┘ └──────┘ └────────┘ └─────┘
│
▼
┌─────────────────┐
│ GitHub API │ ← Data Source
│ (Octokit) │
└─────────────────┘流量:
- 用户向Claude询问有关您的GitHub个人资料的问题
- Claude通过MCP协议调用GitInsight MCP工具
- 服务器检查缓存或查询GitHub API
- 结果被格式化并返回给Claude
- Claude用自然语言向用户展示见解
______________________________________________________________________
📦 安装
先决条件
步骤1:克隆存储库
\\\bash 克隆https://github.com/marwaniiwael18/GitInsight-MCP.git cd GitInsight MCP \\\
步骤2:安装依赖项
\\\bash npm 安装 \\\
步骤3:构建项目
\\\bash npm 运行构建 \\\
______________________________________________________________________
⚙️ 配置
步骤1:创建环境文件
复制示例环境文件:
\\\bash cp.env.example.env \\\
步骤2:配置环境变量
使用您的详细信息编辑\.env\:
\\\`env
GitHub个人访问令牌
生成时间:https://github.com/settings/tokens
所需作用域:repo,read:user
GITHUB_TOKEN=ghp_your_actual_TOKEN_here
您的GitHub用户名
GITHUB_USERNAME=marwaniiwael18
缓存设置(可选)
CACHE_TTL_SECONDS=3600 CACHE_CHECK_PERIOD_SECONDS=600 \\\`
创建GitHub令牌:
- 首选
- 点击“生成新令牌(经典)”
- 选择范围:\
repo\、\read:user\、\read:org\ - 复制令牌并将其粘贴到您的.env文件中
步骤3:配置Claude桌面
将此添加到您的Claude Desktop配置文件中:
macOS: \~/库/应用支持/Claude/Claude_desktop_config json\\ 窗户: \%APPDATA%\\Claude\\Claude_desktop_config json\
\\\json { “mcpServers”:{ “gitinsight mcp”:{ “command”:“node”, “args”:\[ “/advolute/path/to/GitInsight MCP/dist/index.js” \], “env”:{ “GITHUB_TOKEN”:“你的_留言_在这里”, “GITHUB_USERNAME”:“marwaniiwael18” } } } } \\\
重要提示: 将\/aolute/path/to/\替换为项目的实际路径!
______________________________________________________________________
🚀 用法
独立运行服务器
\\\bash npm启动 \\\
您应该看到: \\\`
GitInsight MCP服务器-正在启动。..
GitHub用户:marwaniiwael18 缓存TTL:3600秒 可用工具:6
GitHub API费率限制:5000/5000 服务器就绪!正在等待MCP客户端连接。..
\\\`
与Claude Desktop一起使用
- 配置后重新启动Claude Desktop
- 开始新的对话
- 询问有关您的GitHub个人资料的问题!
当克劳德需要时,服务器会自动启动。
______________________________________________________________________
🛠️ 可用工具
1.️⃣ \list_repositories\
列出所有包含元数据的公共存储库。
参数:
- \
use_cache\(布尔值):使用缓存数据(默认值:true) - \
sort_by\(string):按“星级”、“分叉”、“更新”、“名称”排序 - \
limit\(number):要返回的最大存储库数
退货: 包含名称、描述、星号、分支、语言、主题等的存储库数组。
______________________________________________________________________
2.️⃣ \get_pository_details\
获取特定存储库的详细信息。
参数:
- \
repository_name \(字符串, 必需的):存储库名称 - \
use_cache\(布尔值):使用缓存数据 - \
include_reme\(布尔值):包含readme内容
退货: 完整的存储库详细信息、主题、README(如果需要)
______________________________________________________________________
3.️⃣ \get_recent_commits\
获取一个仓库或所有仓库的最近提交。
参数:
- \
repository_name \(字符串,可选):特定仓库或所有仓库 - \
limit\(number):返回的最大提交数(默认值:50) - \
use_cache\(布尔值):使用缓存数据
退货: 包含SHA、消息、作者、日期、URL的提交数组
______________________________________________________________________
4.️⃣ \get_pository_stats\
计算所有存储库的汇总统计信息。
参数:
- \
use_cache\(布尔值):使用缓存数据
退货:
- 总存储库、星形存储库、分支存储库
- 按百分比分列的语言
- 最受关注/分叉的回购
- 最近更新的repos
- 未决问题总数
______________________________________________________________________
5.️⃣ \搜索_项目\_ by_tech\
按技术搜索和过滤存储库。
参数:
- \
language\(字符串):按语言筛选(例如,“Python”、“JavaScript”) - \
topic \(字符串):按主题筛选(例如,“devops”、“ai”) - \
min_stars\(数字):所需的最小星数 - \
sort_by\(字符串):排序字段 - \`order(string):asc或desc
退货: 经过筛选和排序的存储库
______________________________________________________________________
6.️⃣ \get_贡献_活动\
分析贡献活动和模式。
参数:
- \
use_cache\(布尔值):使用缓存数据
退货:
- 提交总数
- 为以下内容贡献的存储库
- 最活跃的一天
- 连续贡献
______________________________________________________________________
7.️⃣ \get_skills_matrix\🎯 招聘人员
生成一个全面的技术技能评估矩阵。
参数:
- \
use_cache\(布尔值):使用缓存数据
退货:
- 开发人员简介摘要
- 分类技术技能(语言、DevOps、云)
- 熟练程度(专家/高级/中级/初级)
- 领域专业知识细分(DevOps、Web Dev、AI/ML等)
- 百分比最高的语言
- 每个技能的项目计数
非常适合: 人力资源筛选、技术评估、候选人评估
______________________________________________________________________
8.️⃣ \generate_投资组合_摘要\📄 招聘人员
创建一个对招聘人员友好的专业投资组合摘要。
参数:
- \
use_cache\(布尔值):使用缓存数据
退货:
- 候选人简介(姓名、职务、联系人、所在地)
- 专业摘要段落
- 主要成果列表
- 具有亮点和技术的特色项目
- 技术熟练程度细分
- GitHub指标(仓库、星级、贡献、连胜)
- 可用性状态
非常适合: 初步筛选、候选人介绍、招聘决定
______________________________________________________________________
📚 MCP资源
资源是AI助手可以访问的可读数据端点:
资源:\portfolio://profile\
带有联系信息和专业化的开发人员配置文件(JSON)
资源:\portfolio://resume\
从GitHub数据自动生成专业简历(Markdown)
资源:\portfolio://skills\
完整的技能矩阵和熟练程度评估(JSON)
使用示例: 问克劳德:“阅读我的作品集简介”或“给我看看我的简历”
______________________________________________________________________
🎤 MCP提示
常见场景的预配置提示模板:
提示:\招聘_评估\
🎯 为人力资源和招聘人员提供全面的候选人评估\ 将投资组合摘要、技能矩阵、统计数据和活动组合到招聘推荐中
提示:\技术评估\
🔧 工程管理人员的深入技术分析\ 分析代码质量、技术栈深度,并提出面试问题
提示:\投资组合_showcase\
💼 令人印象深刻的投资组合展示\ 创建引人注目的叙述,突出成就和价值主张
使用示例: 在Claude Desktop或MCP Inspector中,选择一个提示以自动执行评估
______________________________________________________________________
💬 查询示例
试着问克劳德这些问题:
对于开发者:
“我最受欢迎的存储库是什么?”
“显示我的GitHub个人资料的统计数据”
“我最常用的编程语言是什么?”
对于项目发现:
“查找我的所有DevOps项目”
“向我展示我的Python项目中星星最多的项目”
“我最近的AI/ML存储库是什么?”
对于招聘人员和人力资源: 🎯
“为该候选人生成投资组合摘要”
“显示技能矩阵和熟练程度”
“阅读投资组合简历”
“使用招聘人员评估提示”
“这位开发人员的主要优势是什么?”
对于活动跟踪:
“我最近在做什么?”
“显示我上个月的提交活动”
“我的贡献率是多少?”
详细分析:
“请详细说明我的DEVOPS项目存储库”
“分析我的AWS应用程序项目并告诉我”
“为招聘经理生成技术评估”
______________________________________________________________________
👨💻 发展
脚本
\\\`bash
构建TypeScript
npm 运行构建
开发模式(注意变化)
npm 运行开发
运行服务器
npm启动
使用MCP检查员进行测试
npm运行检查器 \\\`
MCP检查员
使用官方MCP检查器测试您的服务器:
\\\bash npm运行检查器 \\\
这将打开一个web界面,以交互方式测试您的工具。
______________________________________________________________________
📁 项目结构
\\\ GitInsight MCP/ ├── src/ │ ├── index.ts#MCP服务器入口点 │ ├── config.ts#环境配置 │ ├── github-client.ts#github API包装器(Octokit) │ ├── cache.ts#缓存服务 │ ├── utils.ts#辅助函数 │ ├── 类型/ │ │ └── index.ts#TypeScript类型定义 │ └── 工具/ │ ├── index.ts#工具桶导出 │ ├── list-repositoris.ts │ ├── get-repository-details.ts │ ├── get-recent-commits.ts │ ├── get-repository states.ts │ ├── 按技术搜索项目.ts │ └── get-contribution-activity.ts ├── dist/#编译的JavaScript ├── .env#环境变量(创建此变量) ├── .env.example#环境模板 ├── package.json#依赖关系 ├── tsconfig.json#TypeScript配置 ├── claude-desktop-config.json#示例claude配置 └── README.md#此文件 \\\
______________________________________________________________________
🔧 技术栈
| 技术 | 目的 |
|---|---|
| TypeScript | 类型安全开发 |
| Node.js | 运行时环境 |
| @模型上下文协议/sdk | MCP协议实现 |
| @奥克托基特/休息 | GitHub API客户端 |
| 节点缓存 | 内存缓存 |
| Dotenv。 | 环境配置 |
______________________________________________________________________
🐛 故障排除
问题:“缺少必需的环境变量”
解决方案: 使用“GITHUB_TOKEN”和“GITHUB.USERNAME”创建一个“.env”文件\`
问题:“超过了GitHub API速率限制”
解决方案:
- 等待速率限制重置(显示在服务器日志中)
- 使用缓存(\
Use_cache:true\) - 使用有效令牌进行身份验证(将限制增加到5000/小时)
问题:“GitHub令牌无效”
解决方案:
- 在以下位置生成新令牌https://github.com/settings/tokens
- 确保作用域包括:\
repo\、\read:user\ - 检查.env文件中的拼写错误
问题:Claude Desktop未显示服务器
解决方案:
- 检查配置文件路径是否适合您的操作系统
- 在\
claude_desktop_config.json中使用绝对路径\ - 完全重新启动克劳德桌面
- 检查Claude Desktop日志是否有错误
问题:启动时服务器崩溃
解决方案:
- 首先运行\
npm Run build\ - 检查Node.js版本是否为18+
- 验证已安装的所有依赖项:\
npm install\
______________________________________________________________________
🤝 贡献
欢迎投稿!请随意:
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
______________________________________________________________________
📄 许可证
MIT许可证-请参阅 许可证 详细信息文件
______________________________________________________________________
🌟 展示
GitInsight MCP重点推介的项目:
- AWS应用程序 -技能分享平台(JavaScript)
- 应用_网站_特色 -微服务架构(Spring Boot+Angular)
- DEVOPS项目 -CI/CD管道(Jenkins、Docker)
- 汽车牌照检测IA模型 -计算机视觉(OpenCV)
- 帕奇尼 -带人脸识别的智能停车
- SentinelX诊断平台 -最新诊断平台
______________________________________________________________________
📞 联系
瓦埃勒·马尔瓦尼\ 📧 电子邮件:wael.marwani@esprit.tn\ 🌐 文件夹: marwaniwael.工程师\ 💼 GitWhat我学到了什么
与克劳德一起构建这个项目教会了我:
- MCP协议实现 -如何为AI助手构建服务器
- MCP检查器使用 -交互式测试和调试MCP工具
- 人工智能辅助开发 -与Claude合作编写生产代码
- RESTful API集成 -通过Octokit的GitHub API
- 缓存策略 -性能优化技术
- 错误处理 -构建弹性系统
- TypeScript最佳实践 -类型安全和现代JavaScript
- Git协作 -使用与AI共同撰写的提交
🤝 开发过程
整个项目都是使用Claude AI构建的:
✅ 所有通过Claude对话编写的代码\ ✅ 每个提交都是合著的: Co-authored-by: claude \ ✅ 协同设计的架构\ ✅ 在人工智能协助下生成的文档\ ✅ 调试和测试一起完成
为什么这很重要: 展示了人工智能如何成为学习和构建实际项目的强大编码合作伙伴。
______________________________________________________________________
内置于❤️ 和🤖 作者:瓦埃勒·马瓦尼和克劳德\ *人类好奇心和人工智能辅助之间的合作*
⭐ 如果您对MCP或人工智能辅助开发感兴趣,请标记此仓库
内置于❤️ 由Wael Marwani撰写\ *通过AI集成展示DevOps专业知识*
⭐ 如果你觉得这个仓库有用,就把它标上!
