Construye tu propio servidor MCP
Etapa 4 de 5v1 · c1e1f8c9

Expone recursos

Enumera y lee recursos de texto mediante URI.

Constrúyelo en tu lenguaje

El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.

Proveedor de Recursos (resources/list y resources/read)

Los recursos (Resources) en MCP proporcionan datos de solo lectura identificados mediante un esquema URI (como memo://welcome).

Modelo mental: Catálogo y Lectura de Recursos

  • resources/list: Lista los recursos disponibles:
    json
    {
      "resources": [
        {
          "uri": "memo://welcome",
          "name": "Welcome memo",
          "mimeType": "text/plain"
        }
      ]
    }
    
  • resources/read: Recibe params: {"uri": "memo://welcome"} y devuelve el contenido del recurso:
    json
    {
      "contents": [
        {
          "uri": "memo://welcome",
          "mimeType": "text/plain",
          "text": "Welcome to Shipcode MCP."
        }
      ]
    }
    

Tu objetivo en esta etapa

Implementar los métodos resources/list y resources/read.

Formato de Entrada (resources/list)

json
{ "jsonrpc": "2.0", "id": 6, "method": "resources/list" }

Formato de Salida (resources/list)

json
{
  "jsonrpc": "2.0",
  "id": 6,
  "result": {
    "resources": [
      {
        "uri": "memo://welcome",
        "name": "Welcome memo",
        "mimeType": "text/plain"
      }
    ]
  }
}

Formato de Entrada (resources/read)

json
{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "resources/read",
  "params": { "uri": "memo://welcome" }
}

Formato de Salida (resources/read)

json
{
  "jsonrpc": "2.0",
  "id": 7,
  "result": {
    "contents": [
      {
        "uri": "memo://welcome",
        "mimeType": "text/plain",
        "text": "Welcome to Shipcode MCP."
      }
    ]
  }
}

Qué debes hacer paso a paso

  1. Para method === "resources/list":
    • Devuelve la lista con el recurso memo://welcome.
  2. Para method === "resources/read":
    • Verifica que params.uri === "memo://welcome".
    • Devuelve el contenido con texto "Welcome to Shipcode MCP." y mimeType "text/plain".
  3. Emite la respuesta: Escribe la respuesta JSON-RPC en stdout.

Criterios de aceptación

  • ✅ Lista el recurso de bienvenida con su URI y MIME type.
  • ✅ Sirve el contenido del texto en resources/read.

Formato de salida y errores

Los ejemplos multilínea se muestran así para facilitar la lectura. Emite JSON compacto, sin espacios opcionales, con las propiedades en el orden de los ejemplos de salida y un salto de línea final. No escribas logs en stdout. Las pruebas comparan texto exacto.

Soluciones

Ver soluciones · Se abre en una pestaña nueva