Recent Memories(resources/read) 호출 error수정

This commit is contained in:
mskim 2025-12-11 10:40:58 +09:00
parent 8aa086b79f
commit ab6bca3e53
4 changed files with 29 additions and 18 deletions

View File

@ -557,19 +557,21 @@ MCP 서버를 초기화하고 서버 정보 및 지원 기능을 반환합니다
"jsonrpc": "2.0",
"id": "8",
"result": {
"uri": "memory://recent",
"mimeType": "application/json",
"text": "{\"message\": \"Resource content for memory://recent\"}",
"metadata": {
"uri": "memory://recent",
"timestamp": 1701234567890
}
"contents": [
{
"uri": "memory://recent",
"mimeType": "application/json",
"text": "{\"message\": \"Resource content for memory://recent\"}"
}
]
}
}
```
**응답 DTO**: `McpResourceResponse.ResourceReadResponse`
**참고:** MCP 프로토콜에 따라 `contents` 필드는 배열이며 필수입니다. 각 요소는 `uri`, `mimeType`, `text` (또는 바이너리 리소스의 경우 `blob`)를 포함합니다.
---
### 7. prompts/list

View File

@ -39,8 +39,8 @@ AI ↔ Spring Boot(Dewey)
│ ├── api <-- 외부로 노출되는 REST API 계층
│ │ ├── controller <-- 요청을 받아 Service 호출하는 (Endpoint)
│ │ └── dto <-- Controller에서 사용하는 DTO
│ │ ├── request <-- 요청 DTO
│ │ └── response <-- 응답 DTO
│ │ ├── request <-- 요청 DTO
│ │ └── response <-- 응답 DTO
│ │
│ ├── config <-- Spring 설정, Bean 등록, CORS, Filter, ModelConfig
│ │

View File

@ -6,7 +6,6 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
/**
* MCP Resource 응답 DTO (View)
@ -37,11 +36,18 @@ public class McpResourceResponse {
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class ResourceReadResponse {
public static class ResourceContent {
private String uri;
private String mimeType;
private String text;
private Map<String, Object> metadata;
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class ResourceReadResponse {
private List<ResourceContent> contents;
}
}

View File

@ -187,15 +187,18 @@ public class McpServiceImpl implements McpService {
public McpResourceResponse.ResourceReadResponse readResource(String uri) {
log.info("MCP 리소스 읽기: uri={}", uri);
Map<String, Object> metadata = new HashMap<>();
metadata.put("uri", uri);
metadata.put("timestamp", System.currentTimeMillis());
return McpResourceResponse.ResourceReadResponse.builder()
// MCP 프로토콜에 따라 contents 배열을 반환해야
McpResourceResponse.ResourceContent content = McpResourceResponse.ResourceContent.builder()
.uri(uri)
.mimeType("application/json")
.text("{\"message\": \"Resource content for " + uri + "\"}")
.metadata(metadata)
.build();
List<McpResourceResponse.ResourceContent> contents = new ArrayList<>();
contents.add(content);
return McpResourceResponse.ResourceReadResponse.builder()
.contents(contents)
.build();
}