GitInsight-MCP
Provides tools for accessing GitHub profile data, including listing repositories with metadata, retrieving repository details and READMEs, fetching commit history, calculating aggregate statistics, generating skills matrices, and creating portfolio summaries from GitHub activity.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GitInsight-MCPanalyze my GitHub profile and generate a skills matrix for recruiters"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π GitInsight-MCP
https://github.com/user-attachments/assets/22716a0c-2dc6-4d00-a761-1fee7341afca
.
A Model Context Protocol (MCP) Server for GitHub Profile Integration
A learning project built to explore the Model Context Protocol (MCP) and MCP Inspector tool. This server provides GitHub profile integration and was entirely built in collaboration with Claude AI.
Author: Wael Marwani
Portfolio: marwaniwael.engineer
Email: wael.marwani@esprit.tn
Location: Ariana, Tunisia
π€ Built with Claude AI - Every commit co-authored with Claude
π Table of Contents
Related MCP server: GitBridge
π€ What is MCP?
The Model Context Protocol (MCP) is an open protocol that enables AI assistants to securely connect to external data sources and tools. Think of it as a standardized way for AI models like Claude to interact with your applications and services.
Key Concepts:
MCP Server: Provides tools and data (this project!)
MCP Client: AI assistant that uses the tools (e.g., Claude Desktop)
Tools: Functions that the AI can call to perform actions
Protocol: Standardized communication format using JSON-RPC
GitInsight-MCP implements an MCP server that exposes your GitHub profile data to AI assistants, allowing them to answer questions about your repositories, analyze your coding patterns, and generate portfolio insights. I Built This Project
I created GitInsight-MCP to:
π Explore the MCP Inspector - Wanted to see how MCP servers work and test them interactively
π οΈ Discover New MCP Tools - Learn about the Model Context Protocol ecosystem
π€ Collaborate with Claude AI - Built entirely using Claude as a coding partner
π Learn by Doing - Hands-on experience with TypeScript, Node.js, and GitHub API
π Create Something Useful - A practical tool that actually works with my GitHub profile
This is a learning project showcasing:
AI-Assisted Development - Every line of code written with Claude
Modern Backend Stack - TypeScript, Node.js, MCP SDK
Real API Integration - GitHub Octokit, caching, error handling
Production Quality - Full documentation, proper architecture
Perfect for:
Developers exploring MCP and AI-assisted coding
Learning how to build tools that AI assistants can use
Understanding the Model Context Protocol specification
DevOps Engineers wanting to showcase AI integration skills
Full Stack Developers building MCP servers
Anyone creating an intelligent portfolio assistant
β¨ Features
π§ Core Functionality
β 8 Powerful MCP Tools - From basic queries to advanced portfolio generation
β 3 MCP Resources - Readable developer profile, resume, and skills data
β 3 MCP Prompts - Pre-configured for recruiters and technical assessment
β Intelligent Caching - Reduces GitHub API calls and respects rate limits
β Rate Limit Protection - Automatic handling of GitHub API constraints
β Error Resilience - Comprehensive error handling with helpful messages
β TypeScript Safety - Full type coverage for reliability
π― Recruiter-Focused Features
π Skills Matrix - Automated technical skills assessment with proficiency levels
π Portfolio Summary - Professional candidate evaluation ready for HR
π Auto-Generated Resume - Markdown CV from GitHub data
π€ Recruiter Prompts - Pre-built evaluation templates for hiring managers
π Data Insights
π¦ Repository metadata (stars, forks, languages, topics)
π Commit history and activity tracking
π Aggregate statistics and analytics
π Advanced filtering by technology, topic, or stars
π Contribution patterns and streaks
πΌ Comprehensive skills categorization
π¨ Developer Experience
π Easy setup with clear documentation
π Secure token-based authentication
π― Clear error messages for debugging
π Comprehensive inline code comments
π§ͺ Production-ready architecture
ποΈ Architecture
βββββββββββββββββββ
β 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) β
βββββββββββββββββββFlow:
User asks Claude a question about your GitHub profile
Claude calls GitInsight-MCP tools via MCP protocol
Server checks cache or queries GitHub API
Results are formatted and returned to Claude
Claude presents insights to the user in natural language
π¦ Installation
Prerequisites
Node.js 18+ (Download)
npm or yarn
GitHub Personal Access Token (Create one)
Claude Desktop (optional, for testing) (Download)
Step 1: Clone the Repository
```bash git clone https://github.com/marwaniiwael18/GitInsight-MCP.git cd GitInsight-MCP ```
Step 2: Install Dependencies
```bash npm install ```
Step 3: Build the Project
```bash npm run build ```
βοΈ Configuration
Step 1: Create Environment File
Copy the example environment file:
```bash cp .env.example .env ```
Step 2: Configure Environment Variables
Edit `.env` with your details:
```env
GitHub Personal Access Token
Generate at: https://github.com/settings/tokens
Required scopes: repo, read:user
GITHUB_TOKEN=ghp_your_actual_token_here
Your GitHub Username
GITHUB_USERNAME=marwaniiwael18
Cache Settings (optional)
CACHE_TTL_SECONDS=3600 CACHE_CHECK_PERIOD_SECONDS=600 ```
Creating a GitHub Token:
Click "Generate new token (classic)"
Select scopes: `repo`, `read:user`, `read:org`
Copy the token and paste it in your `.env` file
Step 3: Configure Claude Desktop
Add this to your Claude Desktop config file:
macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
Windows: `%APPDATA%\Claude\claude_desktop_config.json`
```json { "mcpServers": { "gitinsight-mcp": { "command": "node", "args": [ "/absolute/path/to/GitInsight-MCP/dist/index.js" ], "env": { "GITHUB_TOKEN": "your_github_token_here", "GITHUB_USERNAME": "marwaniiwael18" } } } } ```
Important: Replace `/absolute/path/to/` with the actual path to your project!
π Usage
Running the Server Standalone
```bash npm start ```
You should see: ```
GitInsight MCP Server - Starting...
GitHub User: marwaniiwael18 Cache TTL: 3600 seconds Tools Available: 6
GitHub API Rate Limit: 5000/5000 Server ready! Waiting for MCP client connections...
```
Using with Claude Desktop
Restart Claude Desktop after configuration
Start a new conversation
Ask questions about your GitHub profile!
The server will automatically start when Claude needs it.
π οΈ Available Tools
1οΈβ£ `list_repositories`
Lists all your public repositories with metadata.
Parameters:
`use_cache` (boolean): Use cached data (default: true)
`sort_by` (string): Sort by 'stars', 'forks', 'updated', 'name'
`limit` (number): Maximum repositories to return
Returns: Array of repositories with name, description, stars, forks, language, topics, etc.
2οΈβ£ `get_repository_details`
Get detailed information about a specific repository.
Parameters:
`repository_name` (string, required): Repository name
`use_cache` (boolean): Use cached data
`include_readme` (boolean): Include README content
Returns: Full repository details, topics, README (if requested)
3οΈβ£ `get_recent_commits`
Fetch recent commits for a repo or across all repos.
Parameters:
`repository_name` (string, optional): Specific repo or all repos
`limit` (number): Max commits to return (default: 50)
`use_cache` (boolean): Use cached data
Returns: Array of commits with SHA, message, author, date, URL
4οΈβ£ `get_repository_stats`
Calculate aggregate statistics across all repositories.
Parameters:
`use_cache` (boolean): Use cached data
Returns:
Total repositories, stars, forks
Language breakdown with percentages
Most starred/forked repos
Recently updated repos
Total open issues
5οΈβ£ `search_projects_by_tech`
Search and filter repositories by technology.
Parameters:
`language` (string): Filter by language (e.g., "Python", "JavaScript")
`topic` (string): Filter by topic (e.g., "devops", "ai")
`min_stars` (number): Minimum stars required
`sort_by` (string): Sort field
`order` (string): 'asc' or 'desc'
Returns: Filtered and sorted repositories
6οΈβ£ `get_contribution_activity`
Analyze contribution activity and patterns.
Parameters:
`use_cache` (boolean): Use cached data
Returns:
Total commits
Repositories contributed to
Most active day
Contribution streak
7οΈβ£ `get_skills_matrix` π― FOR RECRUITERS
Generate a comprehensive technical skills assessment matrix.
Parameters:
`use_cache` (boolean): Use cached data
Returns:
Developer profile summary
Categorized technical skills (Languages, DevOps, Cloud)
Proficiency levels (Expert/Advanced/Intermediate/Beginner)
Domain expertise breakdown (DevOps, Web Dev, AI/ML, etc.)
Top languages with percentages
Project counts per skill
Perfect for: HR screening, technical assessment, candidate evaluation
8οΈβ£ `generate_portfolio_summary` π FOR RECRUITERS
Create a recruiter-friendly professional portfolio summary.
Parameters:
`use_cache` (boolean): Use cached data
Returns:
Candidate profile (name, title, contact, location)
Professional summary paragraph
Key achievements list
Featured projects with highlights and technologies
Technical proficiency breakdown
GitHub metrics (repos, stars, contributions, streak)
Availability status
Perfect for: Initial screening, candidate presentation, hiring decisions
π MCP Resources
Resources are readable data endpoints that AI assistants can access:
Resource: `portfolio://profile`
Developer profile with contact information and specializations (JSON)
Resource: `portfolio://resume`
Auto-generated professional resume from GitHub data (Markdown)
Resource: `portfolio://skills`
Complete skills matrix with proficiency assessment (JSON)
Usage Example: Ask Claude: "Read my portfolio profile" or "Show me my resume"
π€ MCP Prompts
Pre-configured prompt templates for common scenarios:
Prompt: `recruiter_evaluation`
π― Comprehensive candidate evaluation for HR and recruiters
Combines portfolio summary, skills matrix, stats, and activity into a hiring recommendation
Prompt: `technical_assessment`
π§ Deep technical analysis for engineering managers
Analyzes code quality, tech stack depth, and suggests interview questions
Prompt: `portfolio_showcase`
πΌ Impressive portfolio presentation
Creates a compelling narrative highlighting achievements and value proposition
Usage Example: In Claude Desktop or MCP Inspector, select a prompt to execute the evaluation automatically
π¬ Example Queries
Try asking Claude these questions:
For Developers:
"What are my most starred repositories?"
"Show me statistics about my GitHub profile"
"What programming languages do I use most?"
For Project Discovery:
"Find all my DevOps projects"
"Show me my Python projects with the most stars"
"What are my recent AI/ML repositories?"
For Recruiters & HR: π―
"Generate a portfolio summary for this candidate"
"Show me the skills matrix with proficiency levels"
"Read the portfolio resume"
"Use the recruiter_evaluation prompt"
"What are this developer's key strengths?"
For Activity Tracking:
"What have I been working on recently?"
"Show my commit activity for the last month"
"What's my contribution streak?"
For Detailed Analysis:
"Give me details about my DEVOPS-Project repository"
"Analyze my AWS-App project and tell me about it"
"Generate a technical assessment for hiring managers"
π¨βπ» Development
Scripts
```bash
Build TypeScript
npm run build
Development mode (watch for changes)
npm run dev
Run the server
npm start
Test with MCP Inspector
npm run inspector ```
MCP Inspector
Test your server with the official MCP Inspector:
```bash npm run inspector ```
This opens a web interface to test your tools interactively.
π Project Structure
``` GitInsight-MCP/ βββ src/ β βββ index.ts # MCP server entry point β βββ config.ts # Environment configuration β βββ github-client.ts # GitHub API wrapper (Octokit) β βββ cache.ts # Caching service β βββ utils.ts # Helper functions β βββ types/ β β βββ index.ts # TypeScript type definitions β βββ tools/ β βββ index.ts # Tools barrel export β βββ list-repositories.ts β βββ get-repository-details.ts β βββ get-recent-commits.ts β βββ get-repository-stats.ts β βββ search-projects-by-tech.ts β βββ get-contribution-activity.ts βββ dist/ # Compiled JavaScript βββ .env # Environment variables (create this) βββ .env.example # Environment template βββ package.json # Dependencies βββ tsconfig.json # TypeScript config βββ claude-desktop-config.json # Example Claude config βββ README.md # This file ```
π§ Technical Stack
Technology | Purpose |
TypeScript | Type-safe development |
Node.js | Runtime environment |
@modelcontextprotocol/sdk | MCP protocol implementation |
@octokit/rest | GitHub API client |
node-cache | In-memory caching |
dotenv | Environment configuration |
π Troubleshooting
Issue: "Missing required environment variables"
Solution: Create a `.env` file with `GITHUB_TOKEN` and `GITHUB_USERNAME`
Issue: "GitHub API rate limit exceeded"
Solution:
Wait for the rate limit to reset (shown in server logs)
Use caching (`use_cache: true`)
Authenticate with a valid token (increases limit to 5000/hour)
Issue: "Invalid GitHub token"
Solution:
Generate a new token at https://github.com/settings/tokens
Ensure scopes include: `repo`, `read:user`
Check for typos in your `.env` file
Issue: Claude Desktop doesn't show the server
Solution:
Check the config file path is correct for your OS
Use absolute paths in `claude_desktop_config.json`
Restart Claude Desktop completely
Check Claude Desktop logs for errors
Issue: Server crashes on startup
Solution:
Run `npm run build` first
Check Node.js version is 18+
Verify all dependencies installed: `npm install`
π€ Contributing
Contributions are welcome! Feel free to:
Fork the repository
Create a feature branch
Make your changes
Submit a pull request
π License
MIT License - see LICENSE file for details
π Showcase
Featured Projects Highlighted by GitInsight-MCP:
AWS-App - Skill-sharing platform (JavaScript)
Application_Web_Distibue - Microservices architecture (Spring Boot + Angular)
DEVOPS-Project - CI/CD pipeline (Jenkins, Docker)
Car-Number-Plates-Detection-IA-Model - Computer Vision (OpenCV)
Parkini - Smart parking with face recognition
SentinelX-Diagnostic-Platform - Recent diagnostic platform
π Contact
Wael Marwani
π§ Email: wael.marwani@esprit.tn
π Portfolio: marwaniwael.engineer
πΌ GitWhat I Learned
Building this project with Claude taught me:
MCP Protocol Implementation - How to build servers for AI assistants
MCP Inspector Usage - Testing and debugging MCP tools interactively
AI-Assisted Development - Collaborating with Claude to write production code
RESTful API Integration - GitHub API via Octokit
Caching Strategies - Performance optimization techniques
Error Handling - Building resilient systems
TypeScript Best Practices - Type safety and modern JavaScript
Git Collaboration - Using co-authored commits with AI
π€ Development Process
This entire project was built using Claude AI:
β
All code written through Claude conversations
β
Every commit co-authored: Co-authored-by: claude <noreply@anthropic.com>
β
Architecture designed collaboratively
β
Documentation generated with AI assistance
β
Debugging and testing done together
Why this matters: Demonstrates how AI can be a powerful coding partner for learning and building real projects.
Built with β€οΈ and π€ by Wael Marwani & Claude
A collaboration between human curiosity and AI assistance
β Star this repo if you're interested in MCP or AI-assisted development
Built with β€οΈ by Wael Marwani
Showcasing DevOps expertise through AI integration
β Star this repo if you find it useful!
Available Tools
8 toolsgenerate_portfolio_summaryB
π RECRUITER TOOL: Creates a recruiter-friendly portfolio summary with candidate profile, professional summary, key achievements, featured projects with highlights, technical proficiency breakdown, and GitHub metrics. Optimized for HR review and candidate evaluation.
| Name | Required | Description | Default |
|---|---|---|---|
| use_cache | No | Whether to use cached data (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the tool 'creates' a summary, implying a write/generation operation, but doesn't disclose behavioral traits such as data sources (e.g., GitHub, user input), processing time, error handling, or output format. The description adds minimal context beyond the basic action, leaving significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose. It uses an emoji and formatting for emphasis, which is slightly decorative but not wasteful. Each sentence adds value: the first defines the tool, the second lists components, and the third specifies optimization. However, it could be more streamlined by integrating the optimization note into the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple input schema, the description provides basic purpose and context but lacks completeness. It doesn't explain what the output looks like (e.g., format, structure), data sources, or limitations. For a tool that generates a complex summary, more details on behavior and results would be helpful to compensate for the missing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage, so the baseline is 3. The description doesn't mention parameters directly, but it implies the tool generates a comprehensive summary without needing user-provided data, which adds semantic context about the tool's operation beyond the schema's technical details for 'use_cache'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Creates a recruiter-friendly portfolio summary' with specific components listed (candidate profile, professional summary, etc.). It distinguishes itself from sibling tools by focusing on summary generation rather than data retrieval or analysis. However, it doesn't explicitly contrast with specific siblings like 'get_skills_matrix' which might overlap in technical assessment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('Optimized for HR review and candidate evaluation') but doesn't provide explicit guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when not to use it, or direct comparisons with sibling tools like 'get_skills_matrix' for technical proficiency or 'list_repositories' for project details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contribution_activityB
Analyzes contribution activity and returns metrics including: total commits, repositories contributed to, most active day, and contribution streak. Useful for understanding development patterns and activity trends.
| Name | Required | Description | Default |
|---|---|---|---|
| use_cache | No | Whether to use cached data (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions what metrics are returned, it doesn't describe important behavioral aspects such as data sources (e.g., GitHub API), time ranges covered, authentication requirements, rate limits, or error handling. The description adds some context about the analysis but leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: the first states the purpose and lists metrics, and the second provides usage context. It's front-loaded with key information and avoids unnecessary repetition. However, the second sentence could be more specific to enhance clarity without adding bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analyzing contribution activity with multiple metrics), lack of annotations, and no output schema, the description is incomplete. It doesn't specify data sources, time frames, or what the returned metrics look like (e.g., formats, units). For a tool with no structured output and behavioral gaps, more detail is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage, providing clear documentation for 'use_cache.' The description doesn't add any parameter-specific information beyond what's in the schema. According to the rules, with high schema coverage (>80%), the baseline is 3 even with no param info in the description, which applies here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('analyzes') and resource ('contribution activity'), and lists concrete metrics returned (total commits, repositories contributed to, most active day, contribution streak). However, it doesn't explicitly differentiate from sibling tools like 'get_recent_commits' or 'get_repository_stats', which might also provide overlapping activity metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context by stating it's 'useful for understanding development patterns and activity trends,' which suggests when this tool might be appropriate. However, it lacks explicit guidance on when to use this tool versus alternatives like 'get_recent_commits' or 'generate_portfolio_summary,' and doesn't mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_commitsA
Fetches recent commits either for a specific repository or across all repositories. Returns commit SHA, message, author, date, and URL. Useful for tracking recent development activity.
| Name | Required | Description | Default |
|---|---|---|---|
| repository_name | No | Optional: Name of specific repository. If omitted, fetches commits across all repos. | |
| limit | No | Maximum number of commits to return (default: 50) | |
| use_cache | No | Whether to use cached data (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return data (SHA, message, author, date, URL) and implies a read-only operation, but lacks details on permissions, rate limits, or error handling, leaving gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the purpose and scope, and the second adds utility context. Every sentence earns its place with no wasted words, making it front-loaded and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no annotations, no output schema), the description is adequate but incomplete. It covers the purpose and output format, but lacks details on behavioral traits like error conditions or performance, which are needed for full contextual understanding without annotations or output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what the schema provides, such as explaining interactions between parameters or edge cases, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('fetches recent commits') and resource ('for a specific repository or across all repositories'), distinguishing it from siblings like 'get_contribution_activity' or 'list_repositories' by focusing on commit-level data rather than broader metrics or repository lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage ('useful for tracking recent development activity'), but does not explicitly state when not to use it or name specific alternatives among the sibling tools, such as 'get_contribution_activity' for broader activity metrics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_repository_detailsA
Gets detailed information about a specific repository including full metadata, topics, README content, open issues count, creation date, and homepage URL. Useful for deep-diving into a particular project.
| Name | Required | Description | Default |
|---|---|---|---|
| repository_name | Yes | Name of the repository (e.g., "GitInsight-MCP") | |
| use_cache | No | Whether to use cached data (default: true) | |
| include_readme | No | Include README content in the response (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions what information is returned (metadata, topics, README, etc.), which adds context beyond the input schema. However, it doesn't disclose behavioral traits like rate limits, authentication needs, error handling, or whether it's a read-only operation (though 'Gets' implies safe read).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and specific details, followed by a usage hint. Every sentence adds value without redundancy, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a good job explaining what the tool returns and its purpose. It covers the tool's scope well, but could improve by adding more behavioral context (e.g., read-only nature, potential errors) to compensate for the lack of structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds value by implying the scope of information retrieved (e.g., 'including full metadata, topics, README content'), which helps contextualize the parameters' effects, but doesn't provide additional syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Gets' and resource 'detailed information about a specific repository', with specific examples of what's included (metadata, topics, README, etc.). It distinguishes from siblings like 'list_repositories' (which lists multiple) and 'get_repository_stats' (which might focus on statistics rather than comprehensive details).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for 'deep-diving into a particular project', suggesting it's for detailed analysis rather than overviews. However, it doesn't explicitly state when to use this vs. alternatives like 'get_repository_stats' or 'list_repositories', nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_repository_statsA
Calculates aggregate statistics across all repositories including: total repositories count, total stars, total forks, language breakdown with percentages, most starred/forked repositories, recently updated repos, and total open issues. Perfect for portfolio summaries and analytics.
| Name | Required | Description | Default |
|---|---|---|---|
| use_cache | No | Whether to use cached data (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what the tool calculates (e.g., statistics like total stars, language breakdown) but lacks details on performance aspects (e.g., computation time, data freshness), error handling, or output format. The mention of 'use_cache' in the schema hints at caching behavior, but the description does not elaborate on this or other operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core function and listing key statistics in a clear, bullet-like format. Every sentence adds value by specifying the tool's output and use case without redundancy or unnecessary details, making it efficient and easy to understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (aggregating statistics across all repositories) and the absence of both annotations and an output schema, the description is somewhat incomplete. It outlines what statistics are calculated but does not specify the return structure, data granularity, or potential limitations (e.g., handling of large datasets). This leaves gaps for an AI agent to understand the full behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 100% description coverage, so the schema already documents it well. The description does not add any parameter-specific information beyond what the schema provides, but since there is only one parameter and schema coverage is high, the baseline is strong. No additional semantic context is needed, but the description could have explained the impact of caching on the statistics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('calculates') and resource ('aggregate statistics across all repositories'), and it distinguishes itself from siblings by focusing on comprehensive analytics rather than listing, searching, or detailing individual repositories. It explicitly lists the types of statistics included, such as total count, stars, forks, language breakdown, and recent updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Perfect for portfolio summaries and analytics'), which helps differentiate it from siblings like list_repositories or get_repository_details. However, it does not explicitly state when not to use it or name specific alternatives for overlapping functions, such as generate_portfolio_summary, which might serve a similar purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_skills_matrixA
π― RECRUITER TOOL: Generates a comprehensive skills matrix analyzing all repositories. Returns categorized technical skills (Programming Languages, DevOps, Cloud), proficiency levels, domain expertise (Web Dev, AI/ML, DevOps), and project counts. Perfect for HR screening and technical assessment.
| Name | Required | Description | Default |
|---|---|---|---|
| use_cache | No | Whether to use cached data (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool returns (categorized skills, proficiency levels, domain expertise, project counts), which is helpful, but does not cover aspects like performance characteristics, error handling, or data freshness implications of the 'use_cache' parameter. It adds value but lacks comprehensive behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the main purpose and key outputs. It uses an emoji and formatting ('π― RECRUITER TOOL:') for emphasis, but the sentence structure is slightly verbose with multiple listed details; every sentence earns its place by clarifying scope and use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analyzing all repositories for skills) and lack of annotations and output schema, the description does a good job of explaining what it returns and its purpose. However, it could be more complete by detailing output format or limitations, such as how proficiency levels are calculated or if there are any constraints on repository analysis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'use_cache' parameter well-documented in the schema. The description does not add any parameter-specific information beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating with extra insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Generates a comprehensive skills matrix analyzing all repositories') and resources ('all repositories'). It distinguishes from siblings by focusing on skills analysis rather than summaries, activity, commits, details, stats, listings, or project searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('Perfect for HR screening and technical assessment'), which implies usage in recruitment scenarios. However, it does not explicitly state when not to use it or name alternatives among the sibling tools, such as when simpler repository stats might suffice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_repositoriesB
Lists all public repositories for GitHub user: octocat. Returns repository metadata including name, description, stars, forks, language, topics, and last update date. Supports sorting by stars, forks, updated date, or name. Optionally limit the number of results.
| Name | Required | Description | Default |
|---|---|---|---|
| use_cache | No | Whether to use cached data (default: true) | |
| sort_by | No | Sort repositories by this field | |
| limit | No | Maximum number of repositories to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses return metadata and sorting/limiting behavior, but lacks critical details such as pagination, rate limits, authentication needs, error handling, or whether the operation is read-only (implied but not stated). For a tool with no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by return details and optional features. Every sentence adds value without redundancy, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides basic purpose and return metadata but lacks completeness for a tool with 3 parameters and behavioral complexity. It should cover more about usage context, error cases, or output format to be fully adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters. The description adds minimal value by mentioning sorting options and limiting results, which are already covered in the schema. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Lists all public repositories'), identifies the resource ('for GitHub user: octocat'), and distinguishes from siblings by focusing on listing repositories rather than details, stats, or other repository-related operations. It explicitly mentions the scope ('public repositories') and target user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_repository_details' or 'search_projects_by_tech'. The description mentions sorting and limiting options but does not explain use cases or prerequisites for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_projects_by_techA
Searches and filters repositories by technology stack, programming language, topics, or minimum stars. Supports advanced filtering and sorting. Use this to find projects by category (e.g., "all Python projects", "DevOps projects", "AI/ML repositories").
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Filter by programming language (e.g., "JavaScript", "Python", "Java") | |
| topic | No | Filter by repository topic/tag (e.g., "devops", "machine-learning", "web") | |
| min_stars | No | Minimum number of stars required | |
| sort_by | No | Sort results by this field | |
| order | No | Sort order: ascending or descending (default: desc) | desc |
| use_cache | No | Whether to use cached data (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'advanced filtering and sorting' but doesn't disclose critical traits like whether this is a read-only operation, potential rate limits, authentication requirements, or what the output format looks like. For a search tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the core functionality, and the second provides usage guidance with examples. Every sentence earns its place with no wasted words, and it's appropriately front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and basic usage well, but lacks behavioral transparency and output information. For a search tool with multiple parameters and no structured output documentation, it should provide more context about results format and limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'technology stack' and 'programming language' (covered by 'language' parameter) and 'topics' (covered by 'topic' parameter), but doesn't provide additional semantic context. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('Searches and filters') and resource ('repositories') with precise criteria ('by technology stack, programming language, topics, or minimum stars'), and distinguishes itself from siblings like 'list_repositories' by emphasizing advanced filtering capabilities. The example categories further clarify its specialized purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('to find projects by category') with specific examples, but it doesn't explicitly state when not to use it or name alternatives among sibling tools. It implies usage for filtered searches versus basic listing, but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there is some overlap between get_repository_stats and get_contribution_activity, as both provide aggregated metrics that could be confused for general analytics. The recruiter-focused tools (generate_portfolio_summary and get_skills_matrix) are clearly differentiated from data-fetching tools, but the boundary between statistical and activity analysis tools is slightly blurred.
All tool names follow a consistent verb_noun pattern (e.g., generate_portfolio_summary, get_contribution_activity, list_repositories), using snake_case throughout. The naming is predictable and readable, with no deviations in style or convention across the set.
With 8 tools, the count is well-scoped for a GitHub analytics server, covering key areas like repository listing, details, stats, activity, skills analysis, and project search. Each tool serves a specific function without redundancy, making the set manageable and purposeful.
The toolset provides comprehensive coverage for GitHub portfolio and analytics, including data retrieval (repositories, commits, details), statistical analysis, skills assessment, and project filtering. A minor gap is the lack of tools for modifying or interacting with GitHub (e.g., creating issues or pull requests), but this aligns with the server's focus on insight rather than action.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analyβ¦
Access the GitHub API, enabling file operations, repository management, search functionality, andβ¦
The open-source talent graph for humans and AI agents. Find developers.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access live GitHub repository data without cloning, supporting repo summarization, file explanation, recent changes, and dependency analysis.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to analyze GitHub repositories, including fetching repository details, searching, and retrieving README content.4672ISC
- FlicenseAqualityDmaintenanceEnables AI agents to query a GitHub user's public profile, repositories, language breakdowns, and README content61
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to query GitHub data directly through natural language, including user profiles, repositories, issues, and search.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marwaniiwael18/GitInsight-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server