Skip to main content
Glama
AlanGr12

sportlink-mcp

by AlanGr12

SportLink MCP Server

Servidor de contexto (Model Context Protocol) para exponer la API de SportLink a agentes inteligentes y LLMs (como Antigravity, Claude Desktop o Cursor). Actúa como una capa desacoplada (middleware) consumiendo exclusivamente los endpoints REST.

🚀 Instalación y Uso

  1. Instalar las dependencias:

    npm install
  2. Configurar variables de entorno: Copiar .env.example a .env y asegurar que SPORTLINK_API_URL apunte al backend (ej. http://localhost:3000/api).

  3. Ejecutar localmente (modo stdio):

    npm start

Related MCP server: mcp-sports

🔌 Configuración para Clientes (Claude Desktop / Antigravity)

Añade el siguiente snippet al archivo de configuración de tu cliente MCP (por ejemplo claude_desktop_config.json):

{
  "mcpServers": {
    "sportlink-mcp": {
      "command": "node",
      "args": [
        "c:/Users/48860730/sportlink-mcp/src/index.js"
      ],
      "env": {
        "SPORTLINK_API_URL": "http://localhost:3000/api"
      }
    }
  }
}

🛠️ Herramientas (Tools) Expuestas

El servidor expone un JSON estructurado de retorno { total, filtros_aplicados, resultados } para las siguientes tools:

  1. buscar_pruebas

  2. buscar_entrenamientos

  3. buscar_empleos

  4. buscar_clubes

  5. buscar_entrenadores

  6. consultar_perfil

  7. calcular_match

Available Tools

7 tools
buscar_clubesA

Busca clubes deportivos registrados en SportLink. Filtra opcionalmente por nombre, ubicacion o deporte.

ParametersJSON Schema
NameRequiredDescriptionDefault
nombreNoNombre del club
deporteNoDeporte que ofrece el club
ubicacionNoUbicación del club

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the burden of behavioral disclosure. It correctly implies a read-only search operation and mentions optional filters, but it does not explain the return format, behavior when no filters are provided, pagination, or potential limits. For a low-risk search tool this is acceptable but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences that front-load the action and resource. Every word contributes meaning: the domain, the optional filter behavior, and the filter fields. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with zero required parameters, no nested objects, and no output schema, the description covers the essential aspects: purpose and filter options. It does not mention return values or explicitly route away from sibling tools, but these are minor omissions given how straightforward the tool is.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats the filter names (nombre, ubicacion, deporte) and adds the notion of optionality, but it does not add deeper semantics such as partial matching, case sensitivity, or how multiple filters combine. It does not need to compensate much because the schema already documents each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Busca') on a clear resource ('clubes deportivos registrados en SportLink') and lists the filter dimensions. The resource type 'clubes' clearly distinguishes this from sibling tools like buscar_pruebas, buscar_entrenamientos, and buscar_entrenadores.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: when searching for sports clubs in SportLink, with optional filters. It does not explicitly name alternatives or exclusion criteria, but the sibling tool names make the resource boundary obvious, so this is a minor gap rather than a serious one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

buscar_empleosA

Busca ofertas de empleo deportivo en SportLink. Filtra opcionalmente por deporte o titulo/nombre.

ParametersJSON Schema
NameRequiredDescriptionDefault
nombreNoNombre o título del empleo
deporteNoNombre o ID del deporte

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No hay anotaciones, por lo que la descripción carga con la transparencia conductual. Indica que es una operación de búsqueda y señala los filtros opcionales, pero no describe el formato de salida, paginación ni si devuelve todos los empleos cuando no se aplican filteros. Es adecuada para un caso sencillo, pero deja lagunas.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dos oraciones cortas y direcas: la prímera define la acción y el recurso, la seguinda explica los filtros opcionales. No hay redundancia ni informacón irrelevante y la informacón clave está al principio.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Para una herramienta de búsqueda sencilla con solo dos parámetros opcionales y sin esquema de salida, la descripción cubre lo escencial: qué búsca, dónde y cómofiltrar. Podríra mencionar explícitamente el formatode respuestao distinguirse de los siblings, pero no es crítico para invocar la herramienta correctamente.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

El schema ya documenta ambos parámetros con cobertura del 100%, así que la línea base es 3. La descripción añade valor al indicar que los parámetros son filtros opcionales y al vincularlos con deporte y título/nombre, lo que aclara su propósto de uso.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

La descripción comienza con un verbo específico, 'Busca', y un recurso claro: ofertas de empleo deportivo en SportLink. El ámbito queda bien delimitado y se distingue de los hermanos buscar_pruebas, buscar_entrenamientos y buscar_clubes porque trata específicamente de empleos.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

El contexto de uso es claro: sirve para buscar ofertas de trabajo deportivo y permite filtrar por deporte o título/nombre. No menciona explícitamente cuándo no usarlo ni nombra alternativas, pero el contexto bastantemente claro entre los sibling tools de búsqueda.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

buscar_entrenadoresA

Busca entrenadores registrados en SportLink. Filtra opcionalmente por deporte, ubicacion o tieneclub.

ParametersJSON Schema
NameRequiredDescriptionDefault
deporteNoNombre o ID del deporte
tieneclubNoSi el entrenador pertenece a un club (true/false)
ubicacionNoUbicación del entrenador

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden; it does disclose a query-like action and that all filters are optional. However, it omits behavioral details such as whether filters combine, pagination behavior, or what the result set looks like when no filters are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no fluff; the core action is front-loaded and every word contributes.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and all parameters are documented, so no required arguments are missing. Still, without an output schema or annotations, the description leaves the response shape and filter combination behavior implicit, which is a notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description merely repeats the three filter names and marks them as optional, adding no deeper semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Busca') and resource ('entrenadores registrados en SportLink'), clearly identifying what the tool returns and how it differs from sibling tools like buscar_entrenamientos or buscar_clubes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies usage for finding registered coaches and lists three optional filters, but it never explicitly states when to prefer this tool over sibling search tools or provides exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

buscar_entrenamientosA

Busca entrenamientos deportivos en SportLink. Filtra opcionalmente por deporte, ubicacion o nivel.

ParametersJSON Schema
NameRequiredDescriptionDefault
nivelNoNivel del entrenamiento (ej. Principiante, Avanzado)
deporteNoNombre o ID del deporte
ubicacionNoUbicación del entrenamiento

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It implies a read-only search operation and mentions optional filtering, but it does not disclose details like result format, pagination, or authentication requirements. It is adequate but not deeply transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that states the core purpose first and the optional filters second. There is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with three optional string parameters and no nested objects, the description is mostly complete. It covers what the tool does and the filtering options, though it omits any mention of the return shape or result limits, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already documented. The description only echoes the parameter names (deporte, ubicacion, nivel) without adding new semantic detail, so it stays at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Busca entrenamientos deportivos') and the platform ('SportLink'), with optional filters for deporte, ubicacion, and nivel. It also distinguishes itself from siblings like buscar_entrenadores by targeting 'entrenamientos' rather than people.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context: use this to search sports trainings, with optional filters. However, it does not explicitly state when not to use it or mention alternative tools such as buscar_entrenadores or buscar_clubes, so some inference is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

buscar_pruebasA

Busca pruebas deportivas en SportLink. Filtra opcionalmente por deporte, zona o categoria.

ParametersJSON Schema
NameRequiredDescriptionDefault
zonaNoZona o ubicación de la prueba
deporteNoNombre o ID del deporte
categoriaNoCategoría de la prueba

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the burden of behavioral disclosure. 'Busca' and 'Filtra' make the core search/filter behavior clear, but the description does not disclose details such as result format, limits, or behavior when no filters are supplied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It front-loads the primary purpose and then lists the optional filter dimensions, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple optional-filter search tool with no nested objects and no output schema, the description is mostly sufficient: it names the domain, the action, and the filters. The only minor gap is that it does not explicitly mention returning a list of matching events or any pagination/result behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three parameters with 100% coverage, so the baseline is 3. The description adds only that the filters are optional, which is already conveyed by the absence of required fields, and provides no extra format or syntax detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Busca) and resource (pruebas deportivas en SportLink), and the optional filters clarify scope. This cleanly separates it from sibling tools like buscar_entrenamientos, buscar_empleos, and buscar_clubes, which target different resource types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context (search sport events) and indicates that filters are optional, but it does not explicitly say when to prefer this tool over alternatives or mention any exclusions. Correct usage is mostly implied by the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calcular_matchB

Calcula el porcentaje de compatibilidad (match) entre un atleta y una oportunidad (prueba/entrenamiento).

ParametersJSON Schema
NameRequiredDescriptionDefault
edadAtletaNoEdad del atleta
zonaAtletaNoZona geográfica del atleta
categoriaMaxNoEdad máxima permitida
categoriaMinNoEdad mínima requerida
deporteAtletaYesDeporte principal del atleta
zonaOportunidadNoZona geográfica de la oportunidad
deporteOportunidadYesDeporte requerido en la oportunidad

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the full burden of behavioral disclosure, but it only says 'calcula', giving no information about side effects, required context, return format, or how the match is computed. The tool appears non-destructive, but that is inferred rather than documented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that immediately communicates the core purpose. It avoids fluff and is well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple in concept but has 7 parameters, no annotations, and no output schema; the description does not explain the expected result format or how to interpret the percentage. This leaves significant gaps for an agent that needs to invoke it correctly and use its output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even though the descriptions are terse labels like 'Edad del atleta'. The tool description itself adds no parameter-level insight beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: calculating a compatibility percentage between an athlete and an opportunity. It is specific and distinct from the sibling tools, which are search and profile viewing operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, nor does it mention prerequisites such as having an athlete profile or opportunity details. It only implies a general use case through the phrase 'entre un atleta y una oportunidad'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

consultar_perfilA

Consulta el perfil consolidado de un usuario en SportLink.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipoYesTipo de perfil a buscar
idusuarioYesID del usuario (FK)

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It only states that the tool is a read ('Consulta'), but it does not disclose what 'consolidated' includes, permission requirements, handling of nonexistent users, or any error or response behavior. The single phrase is too thin to be transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It states the verb and resource directly and earns its place without redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and the schema fully documents its parameters, but there is no output schema and the description leaves 'consolidado' undefined. An agent is not told what the returned profile looks like, how empty or invalid IDs are handled, or how this differs from searching for users. This is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%: both required parameters ('idusuario' and 'tipo') already have meaningful descriptions and 'tipo' has an enum. The description adds no extra parameter-level meaning, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Consulta' with a specific object ('el perfil consolidado de un usuario'), clearly identifying the resource and action. It is distinguishable from the sibling 'buscar_*' tools, which are search tools for different entity types, and from 'calcular_match'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use this tool when you need a user's consolidated profile in SportLink. It does not explicitly mention when not to use it or name alternatives, but the unique 'perfil consolidado' scope makes the intended usage evident relative to the search-oriented siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv1.0.0
    • First observedbuscar_clubes
    • First observedbuscar_empleos
    • First observedbuscar_entrenadores
    • First observedbuscar_entrenamientos
    • First observedbuscar_pruebas
    • First observedcalcular_match
    • First observedconsultar_perfil

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct entity type: pruebas, entrenamientos, empleos, clubes, entrenadores, perfil, and match. The repetition of the 'buscar_' prefix is not confusing because the following noun clearly identifies the resource, and consultar_perfil/calcular_match are unique actions.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (buscar_pruebas, buscar_entrenamientos, consultar_perfil, calcular_match). The only minor variation is that not all use the same verb, but the overall pattern remains uniform.

Tool Count5/5

Seven tools is well within the ideal 3-15 range for this server. Each tool covers a meaningful query type in the sports discovery domain without redundancy.

Completeness5/5

For a read-only discovery and matchmaking server, the surface is complete: it searches all relevant sport entities (pruebas, entrenamientos, empleos, clubes, entrenadores), provides user profile lookup, and calculates compatibility. There are no obvious dead ends for the apparent purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides access to comprehensive sports data from 5 major leagues (NBA, NFL, MLB, EPL, NHL) including teams, players, games, statistics, standings, injuries, and betting odds through 67+ endpoints. Enables users to query sports information and analytics through natural language.
    12
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Wraps TheSportsDB API to enable AI agents to query sports data through natural language.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to access comprehensive sports data including football, basketball, American football, and hockey leagues via 11 tools, with no API key required.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI tools to query sports tournaments, leaderboards, predictions, and match stats from the Tulidu Sport platform.
    14
    MIT

Latest Blog Posts

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/AlanGr12/sportlink-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server