Servidor MCP

DevGlobe

io.github.sajeetharan/devglobe
Negocio y operaciones Búsqueda e investigación Público y accesible MCP 2025-11-25

Qué hace este MCP

Searches a public developer talent graph, retrieves developer and repository profiles, finds similar developers, identifies contribution opportunities, and supports consent-gated introductions.

find_similar_developers
Use when the user wants alternatives similar to a known GitHub login. Similarity uses public repository, language, location, and profile signals and is not a suitability judgment. Example: {"login":"sajeetharan","limit":5}.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['login'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum similar profiles from 1 to 20'}, 'login': {'type': 'string', 'maxLength': 39, 'minLength': 1, 'description': 'GitHub login of the source profile'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['source', 'results', 'resultCount', 'methodologyDisclaimer'], 'properties': {'source': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['login', 'name', 'profileUrl', 'location', 'topLanguage', 'score', 'similarity', 'reasons'], 'properties': {'name': {'type': 'string'}, 'login': {'type': 'string'}, 'score': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'reasons': {'type': 'array', 'items': {'type': 'string'}}, 'location': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'profileUrl': {'type': 'string', 'format': 'uri'}, 'similarity': {'enum': ['Very similar', 'Similar', 'Related'], 'type': 'string'}, 'topLanguage': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'resultCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'methodologyDisclaimer': {'type': 'string'}}, 'additionalProperties': False}
get_developer_profile
Use when the user names a GitHub login or selects one DevGlobe search result and needs its public profile and contribution evidence. No authentication is required. Example: {"login":"sajeetharan"}.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['login'], 'properties': {'login': {'type': 'string', 'maxLength': 39, 'minLength': 1, 'description': 'GitHub login'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['profile', 'methodologyDisclaimer'], 'properties': {'profile': {'type': 'object', 'required': ['login', 'name', 'profileUrl', 'whyMatched', 'publicEvidence', 'dataFreshness', 'availableForAgents', 'methodologyDisclaimer'], 'properties': {'name': {'type': 'string'}, 'login': {'type': 'string'}, 'match': {'type': 'object', 'required': ['score', 'label', 'reasons', 'signals', 'method', 'disclaimer'], 'properties': {'label': {'enum': ['Strong match', 'Good match', 'Related match'], 'type': 'string'}, 'score': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'method': {'enum': ['text', 'semantic', 'hybrid'], 'type': 'string'}, 'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'signals': {'type': 'array', 'items': {'enum': ['text', 'semantic'], 'type': 'string'}}, 'disclaimer': {'type': 'string'}}, 'additionalProperties': False}, 'score': {'type': 'number'}, 'location': {'type': 'string'}, 'globalRank': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'profileUrl': {'type': 'string', 'format': 'uri'}, 'whyMatched': {'type': 'array', 'items': {'type': 'string'}}, 'topLanguage': {'type': 'string'}, 'dataFreshness': {'type': 'object', 'required': ['updatedAt', 'status'], 'properties': {'status': {'enum': ['reported', 'unknown'], 'type': 'string'}, 'updatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'publicEvidence': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'label': {'type': 'string'}, 'value': {'type': 'number'}}, 'additionalProperties': False}}, 'availableForAgents': {'type': 'boolean'}, 'methodologyDisclaimer': {'type': 'string'}, 'opportunityPreferences': {'type': 'object', 'required': ['enabled', 'types', 'roles', 'locations', 'workModes', 'expiresAt', 'source'], 'properties': {'roles': {'type': 'array', 'items': {'type': 'string'}}, 'types': {'type': 'array', 'items': {'enum': ['employment', 'contract', 'open-source', 'speaking', 'mentoring'], 'type': 'string'}}, 'source': {'type': 'string', 'const': 'self-declared'}, 'enabled': {'type': 'boolean', 'const': True}, 'expiresAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$'}, 'locations': {'type': 'array', 'items': {'type': 'string'}}, 'workModes': {'type': 'array', 'items': {'enum': ['remote', 'hybrid', 'onsite'], 'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'methodologyDisclaimer': {'type': 'string'}}, 'additionalProperties': False}
get_introduction_status
Use after request_introduction to check a request created by the same authenticated agent. An accepted request returns only the public GitHub contact route.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'developerLogin'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'developerLogin': {'type': 'string', 'maxLength': 39, 'minLength': 1}}}
get_trending_developers
Use when recency or momentum matters. Lists public score gainers and high-ranking profiles new to impact tracking; do not use as a hiring recommendation. Example: {"days":30,"limit":10}.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'days': {'type': 'integer', 'default': 30, 'maximum': 90, 'minimum': 1, 'description': 'Trend window from 1 to 90 days'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum gainers and new entries from 1 to 20 each'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['windowDays', 'gainers', 'newEntries', 'hasHistory', 'resultCount', 'methodologyDisclaimer'], 'properties': {'gainers': {'type': 'array', 'items': {'type': 'object', 'required': ['login', 'name', 'profileUrl', 'topLanguage', 'score', 'globalRank', 'scoreDelta', 'rankDelta', 'isNew', 'indicator'], 'properties': {'name': {'type': 'string'}, 'isNew': {'type': 'boolean'}, 'login': {'type': 'string'}, 'score': {'type': 'number'}, 'indicator': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rankDelta': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'globalRank': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'profileUrl': {'type': 'string', 'format': 'uri'}, 'scoreDelta': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'topLanguage': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'hasHistory': {'type': 'boolean'}, 'newEntries': {'type': 'array', 'items': {'type': 'object', 'required': ['login', 'name', 'profileUrl', 'topLanguage', 'score', 'globalRank', 'scoreDelta', 'rankDelta', 'isNew', 'indicator'], 'properties': {'name': {'type': 'string'}, 'isNew': {'type': 'boolean'}, 'login': {'type': 'string'}, 'score': {'type': 'number'}, 'indicator': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'rankDelta': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'globalRank': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'profileUrl': {'type': 'string', 'format': 'uri'}, 'scoreDelta': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'topLanguage': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'windowDays': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'generatedAt': {'type': 'string'}, 'resultCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'methodologyDisclaimer': {'type': 'string'}}, 'additionalProperties': False}
match_developers_to_repository
Use when the user starts with a public GitHub repository and wants relevant indexed developers. Matches public owner, contribution, language, topic, repository, and self-declared opportunity signals; this is not a suitability judgment. Example: {"repository":"owner/repo","limit":10}.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['repository'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum matches from 1 to 20'}, 'repository': {'type': 'string', 'maxLength': 141, 'minLength': 3, 'description': 'Public GitHub repository as owner/repository or a github.com URL'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['repository', 'results', 'resultCount', 'methodologyDisclaimer'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['login', 'name', 'profileUrl', 'whyMatched', 'publicEvidence', 'dataFreshness', 'availableForAgents', 'methodologyDisclaimer'], 'properties': {'name': {'type': 'string'}, 'login': {'type': 'string'}, 'match': {'type': 'object', 'required': ['score', 'label', 'reasons', 'signals', 'method', 'disclaimer'], 'properties': {'label': {'enum': ['Strong match', 'Good match', 'Related match'], 'type': 'string'}, 'score': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'method': {'enum': ['text', 'semantic', 'hybrid'], 'type': 'string'}, 'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'signals': {'type': 'array', 'items': {'enum': ['text', 'semantic'], 'type': 'string'}}, 'disclaimer': {'type': 'string'}}, 'additionalProperties': False}, 'score': {'type': 'number'}, 'location': {'type': 'string'}, 'globalRank': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'profileUrl': {'type': 'string', 'format': 'uri'}, 'whyMatched': {'type': 'array', 'items': {'type': 'string'}}, 'topLanguage': {'type': 'string'}, 'dataFreshness': {'type': 'object', 'required': ['updatedAt', 'status'], 'properties': {'status': {'enum': ['reported', 'unknown'], 'type': 'string'}, 'updatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'publicEvidence': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'label': {'type': 'string'}, 'value': {'type': 'number'}}, 'additionalProperties': False}}, 'availableForAgents': {'type': 'boolean'}, 'methodologyDisclaimer': {'type': 'string'}, 'opportunityPreferences': {'type': 'object', 'required': ['enabled', 'types', 'roles', 'locations', 'workModes', 'expiresAt', 'source'], 'properties': {'roles': {'type': 'array', 'items': {'type': 'string'}}, 'types': {'type': 'array', 'items': {'enum': ['employment', 'contract', 'open-source', 'speaking', 'mentoring'], 'type': 'string'}}, 'source': {'type': 'string', 'const': 'self-declared'}, 'enabled': {'type': 'boolean', 'const': True}, 'expiresAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$'}, 'locations': {'type': 'array', 'items': {'type': 'string'}}, 'workModes': {'type': 'array', 'items': {'enum': ['remote', 'hybrid', 'onsite'], 'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'repository': {'type': 'object', 'required': ['owner', 'name', 'fullName', 'url', 'description', 'language', 'topics', 'stars', 'contributorCount'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'name': {'type': 'string'}, 'owner': {'type': 'string'}, 'stars': {'type': 'number', 'minimum': 0}, 'topics': {'type': 'array', 'items': {'type': 'string'}}, 'fullName': {'type': 'string'}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'contributorCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'resultCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'methodologyDisclaimer': {'type': 'string'}}, 'additionalProperties': False}
preview_contribution_mission
Use when the user wants one concrete open-source contribution opportunity for an indexed GitHub login. Read-only, rate limited, and does not reserve the issue. Example: {"login":"sajeetharan"}.
Solo lectura Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['login'], 'properties': {'login': {'type': 'string', 'maxLength': 39, 'minLength': 1, 'description': 'Public GitHub login already indexed by DevGlobe'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['profile', 'mission', 'resultCount', 'reservationDisclaimer'], 'properties': {'mission': {'anyOf': [{'type': 'object', 'required': ['type', 'durationMinutes', 'opportunity'], 'properties': {'type': {'type': 'string'}, 'opportunity': {'type': 'object', 'required': ['id', 'title', 'url', 'repository', 'language', 'labels', 'updatedAt', 'estimatedMinutes', 'reasons'], 'properties': {'id': {'type': 'string'}, 'url': {'type': 'string', 'format': 'uri'}, 'title': {'type': 'string'}, 'labels': {'type': 'array', 'items': {'type': 'string'}}, 'reasons': {'type': 'array', 'items': {'type': 'string'}}, 'language': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'updatedAt': {'type': 'string'}, 'repository': {'type': 'string'}, 'estimatedMinutes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}, 'durationMinutes': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}, {'type': 'null'}]}, 'profile': {'type': 'object', 'required': ['login', 'name', 'avatarUrl'], 'properties': {'name': {'type': 'string'}, 'login': {'type': 'string'}, 'avatarUrl': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'resultCount': {'type': 'integer', 'maximum': 1, 'minimum': 0}, 'reservationDisclaimer': {'type': 'string'}}, 'additionalProperties': False}
request_introduction
Use only after the user explicitly asks to contact an opted-in developer. Requires a bearer token, creates a consent-gated pending request, and never returns private contact details. Example: {"developerLogin":"octocat","reason":"We would like help maintaining our open-source React library.","project":"Example UI"}.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['developerLogin', 'reason', 'project'], 'properties': {'reason': {'type': 'string', 'maxLength': 1000, 'minLength': 20, 'description': 'Specific collaboration reason of at least 20 characters'}, 'project': {'type': 'string', 'maxLength': 200, 'minLength': 2, 'description': 'Project or organization name'}, 'developerLogin': {'type': 'string', 'maxLength': 39, 'minLength': 1, 'description': 'GitHub login selected by the user'}}}
search_developers
Use when the user wants to find public developers by skill, name, language, location, agent availability, or active opportunity intent. Start discovery here; no authentication is required. Example: {"query":"TypeScript maintainers","location":"Germany","availableForAgents":true,"limit":5}.
Solo lectura Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1, 'description': 'Maximum results from 1 to 20'}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Required natural-language public search intent, such as "TypeScript maintainers" or a developer name'}, 'language': {'type': 'string', 'maxLength': 50, 'description': 'Optional primary programming language, such as "TypeScript"'}, 'location': {'type': 'string', 'maxLength': 100, 'description': 'Optional public location text, such as "Germany" or "Colombo"'}, 'opportunityType': {'enum': ['employment', 'contract', 'open-source', 'speaking', 'mentoring'], 'type': 'string', 'description': 'Optional active self-declared opportunity type; do not infer availability'}, 'availableForAgents': {'type': 'boolean', 'default': False, 'description': 'Set true only when the user needs profiles accepting verified agent requests'}}}
Esquema de salida
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results', 'resultCount', 'methodologyDisclaimer'], 'properties': {'results': {'type': 'array', 'items': {'type': 'object', 'required': ['login', 'name', 'profileUrl', 'whyMatched', 'publicEvidence', 'dataFreshness', 'availableForAgents', 'methodologyDisclaimer'], 'properties': {'name': {'type': 'string'}, 'login': {'type': 'string'}, 'match': {'type': 'object', 'required': ['score', 'label', 'reasons', 'signals', 'method', 'disclaimer'], 'properties': {'label': {'enum': ['Strong match', 'Good match', 'Related match'], 'type': 'string'}, 'score': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'method': {'enum': ['text', 'semantic', 'hybrid'], 'type': 'string'}, 'reasons': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}, 'signals': {'type': 'array', 'items': {'enum': ['text', 'semantic'], 'type': 'string'}}, 'disclaimer': {'type': 'string'}}, 'additionalProperties': False}, 'score': {'type': 'number'}, 'location': {'type': 'string'}, 'globalRank': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'profileUrl': {'type': 'string', 'format': 'uri'}, 'whyMatched': {'type': 'array', 'items': {'type': 'string'}}, 'topLanguage': {'type': 'string'}, 'dataFreshness': {'type': 'object', 'required': ['updatedAt', 'status'], 'properties': {'status': {'enum': ['reported', 'unknown'], 'type': 'string'}, 'updatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'publicEvidence': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'value'], 'properties': {'label': {'type': 'string'}, 'value': {'type': 'number'}}, 'additionalProperties': False}}, 'availableForAgents': {'type': 'boolean'}, 'methodologyDisclaimer': {'type': 'string'}, 'opportunityPreferences': {'type': 'object', 'required': ['enabled', 'types', 'roles', 'locations', 'workModes', 'expiresAt', 'source'], 'properties': {'roles': {'type': 'array', 'items': {'type': 'string'}}, 'types': {'type': 'array', 'items': {'enum': ['employment', 'contract', 'open-source', 'speaking', 'mentoring'], 'type': 'string'}}, 'source': {'type': 'string', 'const': 'self-declared'}, 'enabled': {'type': 'boolean', 'const': True}, 'expiresAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$'}, 'locations': {'type': 'array', 'items': {'type': 'string'}}, 'workModes': {'type': 'array', 'items': {'enum': ['remote', 'hybrid', 'onsite'], 'type': 'string'}}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'resultCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'methodologyDisclaimer': {'type': 'string'}}, 'additionalProperties': False}
Añadido
get_introduction_status
17 de September de 2026 a las 12:52
Añadido
request_introduction
17 de September de 2026 a las 12:52
Añadido
preview_contribution_mission
17 de September de 2026 a las 12:52
Añadido
get_trending_developers
17 de September de 2026 a las 12:52
Añadido
match_developers_to_repository
17 de September de 2026 a las 12:52
Añadido
find_similar_developers
17 de September de 2026 a las 12:52
Añadido
get_developer_profile
17 de September de 2026 a las 12:52
Añadido
search_developers
17 de September de 2026 a las 12:52