DevGlobe
The open-source talent graph for humans and AI agents. Find developers.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"devglobe": {
"url": "https://www.devglobe.dev/mcp"
}
}
}Puntos de conexión remotos
https://www.devglobe.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (8)
🟢search_developers(query, location, language, opportunityType, availableForAgents, ...)
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}.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Required natural-language public search intent, such as \"TypeScript maintainers\" or a developer name"
},
"location": {
"description": "Optional public location text, such as \"Germany\" or \"Colombo\"",
"type": "string",
"maxLength": 100
},
"language": {
"description": "Optional primary programming language, such as \"TypeScript\"",
"type": "string",
"maxLength": 50
},
"opportunityType": {
"description": "Optional active self-declared opportunity type; do not infer availability",
"type": "string",
"enum": [
"employment",
"contract",
"open-source",
"speaking",
"mentoring"
]
},
"availableForAgents": {
"default": false,
"description": "Set true only when the user needs profiles accepting verified agent requests",
"type": "boolean"
},
"limit": {
"default": 10,
"description": "Maximum results from 1 to 20",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"login": {
"type": "string"
},
"name": {
"type": "string"
},
"profileUrl": {
"type": "string",
"format": "uri"
},
"location": {
"type": "string"
},
"topLanguage": {
"type": "string"
},
"score": {
"type": "number"
},
"globalRank": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"whyMatched": {
"type": "array",
"items": {
"type": "string"
}
},
"match": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"label": {
"type": "string",
"enum": [
"Strong match",
"Good match",
"Related match"
]
},
"reasons": {
"maxItems": 3,
"type": "array",
"items": {
"type": "string"
}
},
"signals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"text",
"semantic"
]
}
},
"method": {
"type": "string",
"enum": [
"text",
"semantic",
"hybrid"
]
},
"disclaimer": {
"type": "string"
}
},
"required": [
"score",
"label",
"reasons",
"signals",
"method",
"disclaimer"
],
"additionalProperties": false
},
"publicEvidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"dataFreshness": {
"type": "object",
"properties": {
"updatedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"reported",
"unknown"
]
}
},
"required": [
"updatedAt",
"status"
],
"additionalProperties": false
},
"availableForAgents": {
"type": "boolean"
},
"opportunityPreferences": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"employment",
"contract",
"open-source",
"speaking",
"mentoring"
]
}
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
},
"locations": {
"type": "array",
"items": {
"type": "string"
}
},
"workModes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"remote",
"hybrid",
"onsite"
]
}
},
"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))$"
},
"source": {
"type": "string",
"const": "self-declared"
}
},
"required": [
"enabled",
"types",
"roles",
"locations",
"workModes",
"expiresAt",
"source"
],
"additionalProperties": false
},
"methodologyDisclaimer": {
"type": "string"
}
},
"required": [
"login",
"name",
"profileUrl",
"whyMatched",
"publicEvidence",
"dataFreshness",
"availableForAgents",
"methodologyDisclaimer"
],
"additionalProperties": false
}
},
"resultCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"methodologyDisclaimer": {
"type": "string"
}
},
"required": [
"results",
"resultCount",
"methodologyDisclaimer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_developer_profile(login)
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"}.
Esquema de entrada
{
"type": "object",
"properties": {
"login": {
"type": "string",
"minLength": 1,
"maxLength": 39,
"description": "GitHub login"
}
},
"required": [
"login"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"profile": {
"type": "object",
"properties": {
"login": {
"type": "string"
},
"name": {
"type": "string"
},
"profileUrl": {
"type": "string",
"format": "uri"
},
"location": {
"type": "string"
},
"topLanguage": {
"type": "string"
},
"score": {
"type": "number"
},
"globalRank": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"whyMatched": {
"type": "array",
"items": {
"type": "string"
}
},
"match": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"label": {
"type": "string",
"enum": [
"Strong match",
"Good match",
"Related match"
]
},
"reasons": {
"maxItems": 3,
"type": "array",
"items": {
"type": "string"
}
},
"signals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"text",
"semantic"
]
}
},
"method": {
"type": "string",
"enum": [
"text",
"semantic",
"hybrid"
]
},
"disclaimer": {
"type": "string"
}
},
"required": [
"score",
"label",
"reasons",
"signals",
"method",
"disclaimer"
],
"additionalProperties": false
},
"publicEvidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"dataFreshness": {
"type": "object",
"properties": {
"updatedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"reported",
"unknown"
]
}
},
"required": [
"updatedAt",
"status"
],
"additionalProperties": false
},
"availableForAgents": {
"type": "boolean"
},
"opportunityPreferences": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"employment",
"contract",
"open-source",
"speaking",
"mentoring"
]
}
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
},
"locations": {
"type": "array",
"items": {
"type": "string"
}
},
"workModes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"remote",
"hybrid",
"onsite"
]
}
},
"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))$"
},
"source": {
"type": "string",
"const": "self-declared"
}
},
"required": [
"enabled",
"types",
"roles",
"locations",
"workModes",
"expiresAt",
"source"
],
"additionalProperties": false
},
"methodologyDisclaimer": {
"type": "string"
}
},
"required": [
"login",
"name",
"profileUrl",
"whyMatched",
"publicEvidence",
"dataFreshness",
"availableForAgents",
"methodologyDisclaimer"
],
"additionalProperties": false
},
"methodologyDisclaimer": {
"type": "string"
}
},
"required": [
"profile",
"methodologyDisclaimer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢find_similar_developers(login, limit)
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}.
Esquema de entrada
{
"type": "object",
"properties": {
"login": {
"type": "string",
"minLength": 1,
"maxLength": 39,
"description": "GitHub login of the source profile"
},
"limit": {
"default": 10,
"description": "Maximum similar profiles from 1 to 20",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"login"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"source": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"login": {
"type": "string"
},
"name": {
"type": "string"
},
"profileUrl": {
"type": "string",
"format": "uri"
},
"location": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"topLanguage": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"score": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"similarity": {
"type": "string",
"enum": [
"Very similar",
"Similar",
"Related"
]
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"login",
"name",
"profileUrl",
"location",
"topLanguage",
"score",
"similarity",
"reasons"
],
"additionalProperties": false
}
},
"resultCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"methodologyDisclaimer": {
"type": "string"
}
},
"required": [
"source",
"results",
"resultCount",
"methodologyDisclaimer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢match_developers_to_repository(repository, limit)
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}.
Esquema de entrada
{
"type": "object",
"properties": {
"repository": {
"type": "string",
"minLength": 3,
"maxLength": 141,
"description": "Public GitHub repository as owner/repository or a github.com URL"
},
"limit": {
"default": 10,
"description": "Maximum matches from 1 to 20",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"repository"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"repository": {
"type": "object",
"properties": {
"owner": {
"type": "string"
},
"name": {
"type": "string"
},
"fullName": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"topics": {
"type": "array",
"items": {
"type": "string"
}
},
"stars": {
"type": "number",
"minimum": 0
},
"contributorCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"owner",
"name",
"fullName",
"url",
"description",
"language",
"topics",
"stars",
"contributorCount"
],
"additionalProperties": false
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"login": {
"type": "string"
},
"name": {
"type": "string"
},
"profileUrl": {
"type": "string",
"format": "uri"
},
"location": {
"type": "string"
},
"topLanguage": {
"type": "string"
},
"score": {
"type": "number"
},
"globalRank": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"whyMatched": {
"type": "array",
"items": {
"type": "string"
}
},
"match": {
"type": "object",
"properties": {
"score": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"label": {
"type": "string",
"enum": [
"Strong match",
"Good match",
"Related match"
]
},
"reasons": {
"maxItems": 3,
"type": "array",
"items": {
"type": "string"
}
},
"signals": {
"type": "array",
"items": {
"type": "string",
"enum": [
"text",
"semantic"
]
}
},
"method": {
"type": "string",
"enum": [
"text",
"semantic",
"hybrid"
]
},
"disclaimer": {
"type": "string"
}
},
"required": [
"score",
"label",
"reasons",
"signals",
"method",
"disclaimer"
],
"additionalProperties": false
},
"publicEvidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"label",
"value"
],
"additionalProperties": false
}
},
"dataFreshness": {
"type": "object",
"properties": {
"updatedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"type": "string",
"enum": [
"reported",
"unknown"
]
}
},
"required": [
"updatedAt",
"status"
],
"additionalProperties": false
},
"availableForAgents": {
"type": "boolean"
},
"opportunityPreferences": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": true
},
"types": {
"type": "array",
"items": {
"type": "string",
"enum": [
"employment",
"contract",
"open-source",
"speaking",
"mentoring"
]
}
},
"roles": {
"type": "array",
"items": {
"type": "string"
}
},
"locations": {
"type": "array",
"items": {
"type": "string"
}
},
"workModes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"remote",
"hybrid",
"onsite"
]
}
},
"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))$"
},
"source": {
"type": "string",
"const": "self-declared"
}
},
"required": [
"enabled",
"types",
"roles",
"locations",
"workModes",
"expiresAt",
"source"
],
"additionalProperties": false
},
"methodologyDisclaimer": {
"type": "string"
}
},
"required": [
"login",
"name",
"profileUrl",
"whyMatched",
"publicEvidence",
"dataFreshness",
"availableForAgents",
"methodologyDisclaimer"
],
"additionalProperties": false
}
},
"resultCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"methodologyDisclaimer": {
"type": "string"
}
},
"required": [
"repository",
"results",
"resultCount",
"methodologyDisclaimer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_trending_developers(days, limit)
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}.
Esquema de entrada
{
"type": "object",
"properties": {
"days": {
"default": 30,
"description": "Trend window from 1 to 90 days",
"type": "integer",
"minimum": 1,
"maximum": 90
},
"limit": {
"default": 10,
"description": "Maximum gainers and new entries from 1 to 20 each",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"windowDays": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"generatedAt": {
"type": "string"
},
"gainers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"login": {
"type": "string"
},
"name": {
"type": "string"
},
"profileUrl": {
"type": "string",
"format": "uri"
},
"topLanguage": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"score": {
"type": "number"
},
"globalRank": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"scoreDelta": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"rankDelta": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"isNew": {
"type": "boolean"
},
"indicator": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"login",
"name",
"profileUrl",
"topLanguage",
"score",
"globalRank",
"scoreDelta",
"rankDelta",
"isNew",
"indicator"
],
"additionalProperties": false
}
},
"newEntries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"login": {
"type": "string"
},
"name": {
"type": "string"
},
"profileUrl": {
"type": "string",
"format": "uri"
},
"topLanguage": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"score": {
"type": "number"
},
"globalRank": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"scoreDelta": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"rankDelta": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"isNew": {
"type": "boolean"
},
"indicator": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"login",
"name",
"profileUrl",
"topLanguage",
"score",
"globalRank",
"scoreDelta",
"rankDelta",
"isNew",
"indicator"
],
"additionalProperties": false
}
},
"hasHistory": {
"type": "boolean"
},
"resultCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"methodologyDisclaimer": {
"type": "string"
}
},
"required": [
"windowDays",
"gainers",
"newEntries",
"hasHistory",
"resultCount",
"methodologyDisclaimer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢preview_contribution_mission(login)
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"}.
Esquema de entrada
{
"type": "object",
"properties": {
"login": {
"type": "string",
"minLength": 1,
"maxLength": 39,
"description": "Public GitHub login already indexed by DevGlobe"
}
},
"required": [
"login"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"profile": {
"type": "object",
"properties": {
"login": {
"type": "string"
},
"name": {
"type": "string"
},
"avatarUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"login",
"name",
"avatarUrl"
],
"additionalProperties": false
},
"mission": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string"
},
"durationMinutes": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"opportunity": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"repository": {
"type": "string"
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"labels": {
"type": "array",
"items": {
"type": "string"
}
},
"updatedAt": {
"type": "string"
},
"estimatedMinutes": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"title",
"url",
"repository",
"language",
"labels",
"updatedAt",
"estimatedMinutes",
"reasons"
],
"additionalProperties": false
}
},
"required": [
"type",
"durationMinutes",
"opportunity"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"resultCount": {
"type": "integer",
"minimum": 0,
"maximum": 1
},
"reservationDisclaimer": {
"type": "string"
}
},
"required": [
"profile",
"mission",
"resultCount",
"reservationDisclaimer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}⚪request_introduction(developerLogin, reason, project)
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"}.
Esquema de entrada
{
"type": "object",
"properties": {
"developerLogin": {
"type": "string",
"minLength": 1,
"maxLength": 39,
"description": "GitHub login selected by the user"
},
"reason": {
"type": "string",
"minLength": 20,
"maxLength": 1000,
"description": "Specific collaboration reason of at least 20 characters"
},
"project": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "Project or organization name"
}
},
"required": [
"developerLogin",
"reason",
"project"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_introduction_status(id, developerLogin)
Use after request_introduction to check a request created by the same authenticated agent. An accepted request returns only the public GitHub contact route.
Esquema de entrada
{
"type": "object",
"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",
"minLength": 1,
"maxLength": 39
}
},
"required": [
"id",
"developerLogin"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia