Skip to content

Commit 12ff269

Browse files
committed
chore: add lastUpdatedAt
Signed-off-by: He-Pin <[email protected]>
1 parent 923b524 commit 12ff269

File tree

1 file changed

+35
-3
lines changed

1 file changed

+35
-3
lines changed

mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1755,6 +1755,11 @@ public interface TaskInfo {
17551755
*/
17561756
String createdAt();
17571757

1758+
/**
1759+
* ISO 8601 timestamp when the task status was last updated
1760+
*/
1761+
String lastUpdatedAt();
1762+
17581763
/**
17591764
* Actual retention duration from creation in milliseconds, null for unlimited.
17601765
*/
@@ -1778,11 +1783,15 @@ public record Task( //@formatter:off
17781783
@JsonProperty("status") TaskStatus status,
17791784
@JsonProperty("statusMessage") String statusMessage,
17801785
@JsonProperty("createdAt") String createdAt,
1786+
@JsonProperty("lastUpdatedAt") String lastUpdatedAt,
17811787
@JsonProperty("ttl") Long ttl,
17821788
@JsonProperty("pollInterval") Long pollInterval) implements TaskInfo { // @formatter:on
17831789

1790+
/**
1791+
* Binary compatibility constructor
1792+
*/
17841793
public Task(String taskId, TaskStatus status, String statusMessage, String createdAt) {
1785-
this(taskId, status, statusMessage, createdAt, null, null);
1794+
this(taskId, status, statusMessage, createdAt, null, null, null);
17861795
}
17871796

17881797
public static Builder builder() {
@@ -1799,6 +1808,8 @@ public static class Builder {
17991808

18001809
private String createdAt;
18011810

1811+
private String lastUpdatedAt;
1812+
18021813
private long ttl;
18031814

18041815
private long pollInterval;
@@ -1823,6 +1834,11 @@ public Builder createdAt(String createdAt) {
18231834
return this;
18241835
}
18251836

1837+
public Builder lastUpdatedAt(String lastUpdatedAt) {
1838+
this.lastUpdatedAt = lastUpdatedAt;
1839+
return this;
1840+
}
1841+
18261842
public Builder ttl(long ttl) {
18271843
this.ttl = ttl;
18281844
return this;
@@ -1834,7 +1850,7 @@ public Builder pollInterval(long pollInterval) {
18341850
}
18351851

18361852
public Task build() {
1837-
return new Task(taskId, status, statusMessage, createdAt, ttl, pollInterval);
1853+
return new Task(taskId, status, statusMessage, createdAt, lastUpdatedAt, ttl, pollInterval);
18381854
}
18391855

18401856
}
@@ -1873,6 +1889,7 @@ public record GetTaskRequest( // @formatter:off
18731889
* @param status task status
18741890
* @param statusMessage task status message
18751891
* @param createdAt task creation time
1892+
* @param lastUpdatedAt task last updated time
18761893
* @param ttl optional task time to live
18771894
* @param pollInterval optional recommended poll interval
18781895
* @param meta Optional metadata about the request.
@@ -1884,6 +1901,7 @@ public record GetTaskResult( // @formatter:off
18841901
@JsonProperty("status") TaskStatus status,
18851902
@JsonProperty("statusMessage") String statusMessage,
18861903
@JsonProperty("createdAt") String createdAt,
1904+
@JsonProperty("lastUpdatedAt") String lastUpdatedAt,
18871905
@JsonProperty("ttl") Long ttl,
18881906
@JsonProperty("pollInterval") Long pollInterval,
18891907
@JsonProperty("_meta") Map<String, Object> meta) implements TaskInfo, Result { // @formatter:on
@@ -1920,6 +1938,7 @@ public record CancelTaskRequest( // @formatter:off
19201938
* @param status task status
19211939
* @param statusMessage task status message
19221940
* @param createdAt task creation time
1941+
* @param lastUpdatedAt task last updated time
19231942
* @param ttl optional task time to live
19241943
* @param pollInterval optional recommended poll interval
19251944
* @param meta Optional metadata about the request.
@@ -1931,6 +1950,7 @@ public record CancelTaskResult( // @formatter:off
19311950
@JsonProperty("status") TaskStatus status,
19321951
@JsonProperty("statusMessage") String statusMessage,
19331952
@JsonProperty("createdAt") String createdAt,
1953+
@JsonProperty("lastUpdatedAt") String lastUpdatedAt,
19341954
@JsonProperty("ttl") Long ttl,
19351955
@JsonProperty("pollInterval") Long pollInterval,
19361956
@JsonProperty("_meta") Map<String, Object> meta) implements TaskInfo, Result { // @formatter:on
@@ -1960,6 +1980,7 @@ public record ListTasksResult( // @formatter:off
19601980
* @param status task status
19611981
* @param statusMessage task status message
19621982
* @param createdAt task creation time
1983+
* @param lastUpdatedAt task last updated time
19631984
* @param ttl optional task time to live
19641985
* @param pollInterval optional recommended poll interval
19651986
* @param meta Optional metadata about the request.
@@ -1969,6 +1990,7 @@ public record TaskStatusNotification( // @formatter:off
19691990
@JsonProperty("status") TaskStatus status,
19701991
@JsonProperty("statusMessage") String statusMessage,
19711992
@JsonProperty("createdAt") String createdAt,
1993+
@JsonProperty("lastUpdatedAt") String lastUpdatedAt,
19721994
@JsonProperty("ttl") Long ttl,
19731995
@JsonProperty("pollInterval") Long pollInterval,
19741996
@JsonProperty("_meta") Map<String, Object> meta) implements TaskInfo, Notification { // @formatter:on
@@ -2126,7 +2148,17 @@ public record CallToolAuxResult( // @formatter:off
21262148
@JsonProperty("isError") Boolean isError,
21272149
@JsonProperty("structuredContent") Object structuredContent,
21282150
@JsonProperty("task") Task task,
2129-
@JsonProperty("_meta") Map<String, Object> meta) implements Result {} // @formatter:on
2151+
@JsonProperty("_meta") Map<String, Object> meta) implements Result {
2152+
2153+
public CreateTaskResult toCreateTaskResult() {
2154+
return new CreateTaskResult(task, meta);
2155+
}
2156+
2157+
public CallToolResult toCallToolResult() {
2158+
return new CallToolResult(content, isError, structuredContent, meta);
2159+
}
2160+
2161+
} // @formatter:on
21302162

21312163
/**
21322164
* The server's response to a tools/call request from the client.

0 commit comments

Comments
 (0)