GitHunt MCP
Search a pre-indexed pool of GitHub developers with filters like location, role, skills, and languages; retrieve ranked profiles with scores and contact info; perform deep AI analysis on specific GitHub profiles for proficiency and role fit.
githunt-mcp
An MCP server that gives your AI assistant a recruiter's view of GitHub. It wraps GitHunt's API so Claude, Cursor, and other MCP clients can search a pre-indexed pool of GitHub developers, look up a ranked profile, and run deep AI analysis on a candidate - all from a chat prompt.
Ask "find backend engineers in Berlin who know Go and Kubernetes" and get back a ranked, scored shortlist with activity signals and contact info.
Prefer zero setup? GitHunt also runs a hosted MCP server at
https://mcp.githunt.ai/mcp. Add it as a custom connector in Claude (Settings -> Connectors) or as a remote MCP server in your client and sign in with your GitHunt account - no API key or local process needed. This package is the self-hosted (stdio) alternative.
Quickstart
Grab an API key from your GitHunt account.
Run the server:
GITHUNT_API_KEY=your-key-here npx githunt-mcpWire it into your client (see below), then just ask.
Environment variables
Variable | Required | Description |
| yes | Your GitHunt API key |
| no | API base URL (default |
Claude Code
claude mcp add githunt -e GITHUNT_API_KEY=your-key-here -- npx githunt-mcpClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"githunt": {
"command": "npx",
"args": ["githunt-mcp"],
"env": {
"GITHUNT_API_KEY": "your-key-here"
}
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"githunt": {
"command": "npx",
"args": ["githunt-mcp"],
"env": {
"GITHUNT_API_KEY": "your-key-here"
}
}
}
}Any MCP client that speaks stdio works the same way: run npx githunt-mcp with
GITHUNT_API_KEY in the environment.
Related MCP server: Repo Radar MCP
Try it
Once connected, prompt your assistant naturally:
"Find senior frontend developers in Warsaw who know React and TypeScript."
"Show me hireable DevOps engineers in Poland with 5+ years on GitHub."
"Give me the next 25 candidates for that search." (paging via
offset)"Pull up octocat's GitHunt profile."
"Do a deep analysis of torvalds - proficiency, best-fit roles, any public emails."
"Search for ML engineers in San Francisco, then analyze your top 3."
Tools
Tool | What it does | Speed |
| Search GitHunt's pre-indexed pool by | Fast (pool-served, no live crawl) |
| Get one developer's ranked profile by | Fast (cache-first) |
| Deep AI analysis of a profile from live GitHub data: proficiency level, best-fit roles, and extracted emails. Use it to vet a shortlisted candidate. | Slower (live crawl) |
Supported role values: fullstack, frontend, backend, mobile,
devops, ai-engineer, ai-orchestrator, ml-engineer, data-scientist,
data-engineer, security, cloud, blockchain, embedded, gamedev,
ios-developer, android-developer, sre, platform-engineer,
qa-engineer, solutions-architect, cto, vp-engineering,
head-engineering, engineering-manager, tech-lead, product-manager,
director-engineering.
Skills are matched with synonyms (k8s -> kubernetes), and locations are
normalized (SF, NYC, UK, Warszawa).
Full API reference: https://docs.githunt.ai
Scoring
Each candidate carries an overall score built from three dimensions, all
surfaced in get_developer:
Profile score - bio, seniority signals, and account maturity.
Tech-stack score - how well their languages and repos match the requested skills and role.
Activity score - recency and volume of public contributions (commits, frequency, commit-message quality).
search_developers ranks the pool by fit for your query; analyze_profile
recomputes proficiency and role fit against fresh GitHub data.
Quotas
Requests count against your GitHunt plan's quota. Every response includes your
current usage (used / limit for the month), and a quota_exceeded error tells
you when you've hit the cap. See your account for
plan limits.
Limitations & responsible use
GitHunt reads public GitHub activity, which is strong evidence of technical work but far from the whole picture:
It's blind to private-repo, internal, and enterprise contributions - many excellent engineers have quiet public profiles.
The candidate pool is pre-indexed, so brand-new or rarely-active accounts may be missing;
analyze_profilefetches live data for a specific person.Public-activity signals can skew by geography, employer, and career stage.
Use this as a lead generator, not an automated filter. Treat scores as a starting point for a human conversation, not a hiring decision. GitHub is not the whole engineer.
Contributing
Issues and pull requests are welcome. Please open an issue describing the change before sending a large PR. For API behavior and endpoint details, see https://docs.githunt.ai.
License
MIT - see LICENSE.
Available Tools
3 toolsanalyze_profileAnalyze GitHub profileARead-onlyInspect
Deep analysis of a GitHub profile from live GitHub data: proficiency level, best-fit roles, extracted emails. Slower and heavier than get_developer; use it to vet a shortlisted candidate.
| Name | Required | Description | Default |
|---|---|---|---|
| login | No | Alias for username; provide either. | |
| username | No | GitHub username (login), e.g. 'octocat'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds behavioral context: it's slower, heavier, and uses live GitHub data, which is useful for an agent to manage expectations and resource allocation.
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?
Description is two sentences: first sentence states what it does, second sentence contrasts with sibling and gives use case. No wasted words, information is front-loaded.
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 has no output schema, description mentions key outputs (proficiency, roles, emails) and notes performance characteristics. It is sufficient for an agent to invoke correctly, though could include a note on authentication requirements.
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 has 100% coverage with descriptions for both parameters. Description adds value by clarifying that 'login' and 'username' are aliases: 'provide either', which prevents confusion and duplication.
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?
Description explicitly states the tool performs deep analysis of a GitHub profile, listing specific outputs: proficiency level, best-fit roles, extracted emails. It also differentiates from sibling tool get_developer by noting it's slower and heavier.
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?
Description clearly tells when to use: 'vet a shortlisted candidate', and contrasts with get_developer: 'Slower and heavier than get_developer', implying alternative for quick lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_developerGet developer profileARead-onlyInspect
Get a single GitHub developer's ranked profile by username: overall/profile/tech/activity scores, experience, commit activity, top repos, and contact info. Cache-first and fast; use analyze_profile for deep AI analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| login | No | GitHub username (login), e.g. 'octocat'. | |
| username | No | Alias for login; provide either. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds value by revealing cache-first behavior (potential staleness) and performance characteristics, which are not present in annotations. No contradictions.
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?
Two sentences, front-loaded with the core function, and no redundant information. Every word earns its place.
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?
Despite no output schema, the description adequately lists returned data. For a simple get tool with two parameters, the behavioral and result information is sufficient. Could mention error handling, but not critical.
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 coverage is 100% with both parameters (login and username) clearly described. The description does not add new semantic meaning beyond what is already in the schema, so a baseline score of 3 is appropriate.
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 it retrieves a single developer's ranked profile by username, listing specific data points. It distinguishes itself from sibling tools: cache-first and fast versus analyze_profile for deep analysis.
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?
Explicitly states when to use this tool ('cache-first and fast') and when not to ('use analyze_profile for deep AI analysis'), providing clear guidance alongside sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_developersSearch developersARead-onlyInspect
Search GitHunt's pre-indexed pool of GitHub developers by location, role, and skills. Returns candidates ranked by fit with scores, activity, and contact info. Fast (pool-served, no live crawl); page with offset.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Role to rank candidates for. One of: fullstack, frontend, backend, mobile, devops, ai-engineer, ai-orchestrator, ml-engineer, data-scientist, data-engineer, security, cloud, blockchain, embedded, gamedev, ios-developer, android-developer, sre, platform-engineer, qa-engineer, solutions-architect, cto, vp-engineering, head-engineering, engineering-manager, tech-lead, product-manager, director-engineering. | |
| offset | No | Top-ranked candidates to skip, for paging (0-200, default 0). Use with maxResults to fetch the next page. Each search scores at most ~200 candidates, so pages past that are empty. | |
| skills | No | Technologies or keywords to match, e.g. ['react', 'typescript']. Synonyms are handled (k8s -> kubernetes). | |
| location | Yes | City or country to search, freeform, e.g. 'Warsaw', 'San Francisco', 'Poland'. Common abbreviations and native names are normalized (SF, NYC, UK, Warszawa). | |
| languages | No | Programming languages to prefer, e.g. ['Python', 'Go']. | |
| isHireable | No | Only candidates whose GitHub profile sets the 'hireable' flag. | |
| maxResults | No | Candidates to return per call (1-100, default 25). | |
| strictSkills | No | If true, exclude candidates that match none of the given skills. | |
| minExperienceYears | No | Minimum years since the GitHub account was created. |
Output Schema
| Name | Required | Description |
|---|---|---|
| offset | No | |
| results | Yes | |
| totalCount | No | Total candidates matched before paging. |
| matchedCount | Yes | Candidates returned in this page. |
| locationSuggestions | No | Similar supported locations, present when the location matched nothing. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true. Description adds speed (no live crawl), pool-served nature, and paging details, all consistent.
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?
Two sentences, front-loaded with purpose, no fluff. Every sentence adds value.
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?
With full schema coverage, output schema, and paging details, description is complete for understanding tool behavior and expectations.
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 coverage is 100% with detailed parameter descriptions. The tool description provides a high-level summary but does not add new meaning beyond 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?
Clearly states it searches a pre-indexed pool of GitHub developers by location, role, skills. Distinct from siblings get_developer (single profile) and analyze_profile (analysis).
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?
Mentions 'fast (pool-served, no live crawl)' and paging, giving context but not explicitly when not to use or alternatives. Implicitly distinct via tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool serves a distinct purpose: searching, retrieving pre-indexed profiles, and deep live analysis. There is no overlap in functionality.
All tool names follow a consistent verb_noun pattern (search_developers, get_developer, analyze_profile), making them predictable and easy to understand.
With only 3 tools, the server is highly focused on the core workflow of finding and evaluating developers. The count is appropriate for the domain.
The set covers the main tasks: search, basic retrieval, and deep analysis. The only minor gap is a tool for managing shortlists or comparisons, but the workflow is well-supported.
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
The open-source talent graph for humans and AI agents. Find developers.
Hiring developers? Find and source software engineers by what they build on GitHub.
Search GitHub, npm, PyPI, StackOverflow, ArXiv from one MCP — built for coding agents.
Talent discovery for AI. Search and read agent-readable candidate profiles; cite by URL.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables querying and analysis of public GitHub repositories for statistics, contributor data, and commit history. It provides both a RESTful API and an MCP interface for seamless integration with AI agents.MIT
- AlicenseNot gradedqualityCmaintenanceDiscover, rank, and compare GitHub repositories from any MCP-compatible AI client. Enables searching, filtering, ranking, and evaluating open-source repositories by topic, language, stars, license, activity, and relevance.MIT
- AlicenseAqualityBmaintenanceMCP server that searches, scores, and ranks GitHub developers for technical recruiting.87Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered GitHub interactions including repository analysis, code search, PR reviews, and more through the MCP protocol.4MIT
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/githunt-agent/githunt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server