Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
6e69900
fix: revisit MCP support, remove MCP resources, and discover and exec…
maralbahari Jul 21, 2026
5a9955a
fix: align MCP call responses and streaming events with OpenAI
maralbahari Jul 21, 2026
b35f56d
update mcp gateway support
maralbahari Jul 21, 2026
610b960
Merge remote-tracking branch 'origin/fix-mcp-tool-call-1' into fix-mc…
maralbahari Jul 21, 2026
6ca6166
address PR about name collision and tighter param contract and some c…
maralbahari Jul 22, 2026
2643942
Merge remote-tracking branch 'origin/main' into fix-mcp-tool-call-1
maralbahari Jul 22, 2026
2897b86
fix: validate MCP tool registry name collisions
maralbahari Jul 22, 2026
1da8bda
Merge remote-tracking branch 'origin/fix-mcp-tool-call-1' into fix-mc…
maralbahari Jul 22, 2026
3eedc96
clean code
maralbahari Jul 22, 2026
21287fd
Merge remote-tracking branch 'origin/main' into fix-mcp-tool-call-1
maralbahari Jul 23, 2026
f380e0d
Merge remote-tracking branch 'origin/fix-mcp-tool-call-1' into fix-mc…
maralbahari Jul 23, 2026
9207b9e
fix clippy
maralbahari Jul 23, 2026
3752d63
Merge remote-tracking branch 'origin/fix-mcp-tool-call-1' into fix-mc…
maralbahari Jul 23, 2026
5cc909d
fix test
maralbahari Jul 23, 2026
7e6fea4
harden MCP discovery, approval, and credential handling
maralbahari Jul 24, 2026
6db6b3f
update mcp support design document
maralbahari Jul 24, 2026
a2f4901
remove read_resources test fixtures
maralbahari Jul 24, 2026
001b921
Merge remote-tracking branch 'origin/fix-mcp-tool-call-1' into fix-mc…
maralbahari Jul 24, 2026
8d3e423
harden MCP argument and metadata handling
maralbahari Jul 29, 2026
f190e3f
Merge remote-tracking branch 'origin/fix-mcp-tool-call-1' into fix-mc…
maralbahari Jul 29, 2026
dbcaf70
Merge remote-tracking branch 'origin/main' into fix-mcp-tool-call-2
maralbahari Jul 29, 2026
14409c2
address comments bugfixes and re-record cassettes
maralbahari Jul 30, 2026
5028c04
reuse MCP item IDs across streaming lifecycle
maralbahari Jul 30, 2026
83e1fd0
cover failed MCP stream sequencing and document discovery gap
maralbahari Jul 30, 2026
0268631
fix: address MCP review follow-ups
franciscojavierarceo Jul 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions crates/agentic-server-core/src/events/normalize.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,11 @@ fn extract_payload(event_type: SSEEventType, json: &Value) -> EventPayload {
| SSEEventType::WebSearchCallInProgress
| SSEEventType::WebSearchCallSearching
| SSEEventType::WebSearchCallCompleted
| SSEEventType::McpToolCallInProgress
| SSEEventType::McpToolCallCompleted
| SSEEventType::McpCallInProgress
| SSEEventType::McpCallArgumentsDelta
| SSEEventType::McpCallArgumentsDone
| SSEEventType::McpCallCompleted
| SSEEventType::McpCallFailed
| SSEEventType::Other => EventPayload::Raw(json.clone()),
}
}
Expand Down
34 changes: 23 additions & 11 deletions crates/agentic-server-core/src/events/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ pub enum SSEItemType {
FunctionCall,
CustomToolCall,
WebSearchCall,
McpToolCall,
McpCall,
Message,
}

Expand All @@ -22,7 +22,7 @@ impl SSEItemType {
Self::FunctionCall => "function_call",
Self::CustomToolCall => "custom_tool_call",
Self::WebSearchCall => "web_search_call",
Self::McpToolCall => "mcp_tool_call",
Self::McpCall => "mcp_call",
Self::Message => "message",
}
}
Expand All @@ -35,7 +35,7 @@ impl From<&str> for SSEItemType {
"function_call" => Self::FunctionCall,
"custom_tool_call" => Self::CustomToolCall,
"web_search_call" => Self::WebSearchCall,
"mcp_tool_call" => Self::McpToolCall,
"mcp_call" => Self::McpCall,
_ => Self::Message,
}
}
Expand Down Expand Up @@ -103,8 +103,11 @@ pub enum SSEEventType {
WebSearchCallInProgress,
WebSearchCallSearching,
WebSearchCallCompleted,
McpToolCallInProgress,
McpToolCallCompleted,
McpCallInProgress,
McpCallArgumentsDelta,
McpCallArgumentsDone,
McpCallCompleted,
McpCallFailed,

// Catch-all for unrecognized events
Other,
Expand Down Expand Up @@ -139,8 +142,11 @@ impl From<&str> for SSEEventType {
"response.web_search_call.in_progress" => Self::WebSearchCallInProgress,
"response.web_search_call.searching" => Self::WebSearchCallSearching,
"response.web_search_call.completed" => Self::WebSearchCallCompleted,
"response.mcp_tool_call.in_progress" => Self::McpToolCallInProgress,
"response.mcp_tool_call.completed" => Self::McpToolCallCompleted,
"response.mcp_call.in_progress" => SSEEventType::McpCallInProgress,
"response.mcp_call_arguments.delta" => SSEEventType::McpCallArgumentsDelta,
"response.mcp_call_arguments.done" => SSEEventType::McpCallArgumentsDone,
"response.mcp_call.completed" => SSEEventType::McpCallCompleted,
"response.mcp_call.failed" => SSEEventType::McpCallFailed,
_ => Self::Other,
}
}
Expand Down Expand Up @@ -177,8 +183,11 @@ impl TryFrom<SSEEventType> for &'static str {
SSEEventType::WebSearchCallInProgress => Ok("response.web_search_call.in_progress"),
SSEEventType::WebSearchCallSearching => Ok("response.web_search_call.searching"),
SSEEventType::WebSearchCallCompleted => Ok("response.web_search_call.completed"),
SSEEventType::McpToolCallInProgress => Ok("response.mcp_tool_call.in_progress"),
SSEEventType::McpToolCallCompleted => Ok("response.mcp_tool_call.completed"),
SSEEventType::McpCallInProgress => Ok("response.mcp_call.in_progress"),
SSEEventType::McpCallArgumentsDelta => Ok("response.mcp_call_arguments.delta"),
SSEEventType::McpCallArgumentsDone => Ok("response.mcp_call_arguments.done"),
SSEEventType::McpCallCompleted => Ok("response.mcp_call.completed"),
SSEEventType::McpCallFailed => Ok("response.mcp_call.failed"),
SSEEventType::Other => Err(()),
}
}
Expand Down Expand Up @@ -362,8 +371,11 @@ mod tests {
SSEEventType::WebSearchCallInProgress,
SSEEventType::WebSearchCallSearching,
SSEEventType::WebSearchCallCompleted,
SSEEventType::McpToolCallInProgress,
SSEEventType::McpToolCallCompleted,
SSEEventType::McpCallInProgress,
SSEEventType::McpCallArgumentsDelta,
SSEEventType::McpCallArgumentsDone,
SSEEventType::McpCallCompleted,
SSEEventType::McpCallFailed,
] {
let wire_name = <&str>::try_from(event_type).expect("known event type has a wire name");
assert_eq!(SSEEventType::from(wire_name), event_type);
Expand Down
Loading