mirror of
https://wget.la/https://github.com/leookun/cursor-byok
synced 2026-10-08 07:21:13 +08:00
Merge pull request #425 from kevin9327/fix/mcp-resource-truncation-notice
fix(tools): report the ListMcpResources cap in resources, not bytes
This commit is contained in:
@@ -517,11 +517,9 @@ fn gate_mcp_resources(tool: &mut pb::ListMcpResourcesToolCall) {
|
|||||||
.push(pb::list_mcp_resources_exec_result::McpResource {
|
.push(pb::list_mcp_resources_exec_result::McpResource {
|
||||||
uri: "truncated:list-mcp-resources".into(),
|
uri: "truncated:list-mcp-resources".into(),
|
||||||
name: Some("truncated".into()),
|
name: Some("truncated".into()),
|
||||||
description: Some(truncation_notice(
|
description: Some(format!(
|
||||||
"ListMcpResources",
|
"[truncated: ListMcpResources result exceeded {MCP_RESOURCE_LIMIT} resources; showing {} of {original} resources]",
|
||||||
MCP_TEXT_LIMIT,
|
success.resources.len()
|
||||||
success.resources.len(),
|
|
||||||
original,
|
|
||||||
)),
|
)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
@@ -861,4 +859,39 @@ mod tests {
|
|||||||
let mut content = String::new();
|
let mut content = String::new();
|
||||||
tool_completion("Grep", &mut tool, &mut content);
|
tool_completion("Grep", &mut tool, &mut content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn list_mcp_resources_reports_the_cap_it_actually_applied() {
|
||||||
|
let resources = (0..MCP_RESOURCE_LIMIT + 50)
|
||||||
|
.map(|index| pb::list_mcp_resources_exec_result::McpResource {
|
||||||
|
uri: format!("mcp://resource/{index}"),
|
||||||
|
..Default::default()
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
let mut tool = pb::ListMcpResourcesToolCall {
|
||||||
|
args: None,
|
||||||
|
result: Some(pb::ListMcpResourcesExecResult {
|
||||||
|
result: Some(pb::list_mcp_resources_exec_result::Result::Success(
|
||||||
|
pb::ListMcpResourcesSuccess { resources },
|
||||||
|
)),
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
gate_mcp_resources(&mut tool);
|
||||||
|
|
||||||
|
let pb::list_mcp_resources_exec_result::Result::Success(success) =
|
||||||
|
tool.result.unwrap().result.unwrap()
|
||||||
|
else {
|
||||||
|
panic!("expected a successful result");
|
||||||
|
};
|
||||||
|
let notice = success.resources.last().unwrap();
|
||||||
|
assert_eq!(notice.uri, "truncated:list-mcp-resources");
|
||||||
|
assert_eq!(
|
||||||
|
notice.description.as_deref(),
|
||||||
|
Some(
|
||||||
|
"[truncated: ListMcpResources result exceeded 200 resources; \
|
||||||
|
showing 200 of 250 resources]"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user