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: Recibeparams: {"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)
{ "jsonrpc": "2.0", "id": 6, "method": "resources/list" }
Formato de Salida (resources/list)
{
"jsonrpc": "2.0",
"id": 6,
"result": {
"resources": [
{
"uri": "memo://welcome",
"name": "Welcome memo",
"mimeType": "text/plain"
}
]
}
}
Formato de Entrada (resources/read)
{
"jsonrpc": "2.0",
"id": 7,
"method": "resources/read",
"params": { "uri": "memo://welcome" }
}
Formato de Salida (resources/read)
{
"jsonrpc": "2.0",
"id": 7,
"result": {
"contents": [
{
"uri": "memo://welcome",
"mimeType": "text/plain",
"text": "Welcome to Shipcode MCP."
}
]
}
}
Qué debes hacer paso a paso
- Para
method === "resources/list":- Devuelve la lista con el recurso
memo://welcome.
- Devuelve la lista con el recurso
- Para
method === "resources/read":- Verifica que
params.uri === "memo://welcome". - Devuelve el contenido con texto
"Welcome to Shipcode MCP."y mimeType"text/plain".
- Verifica que
- 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.