Update src/mcp.rs
Browse files- src/mcp.rs +8 -2
src/mcp.rs
CHANGED
|
@@ -3,6 +3,7 @@ use crate::parser::{DocumentParser, ParsedDocument};
|
|
| 3 |
use anyhow::Result;
|
| 4 |
use axum::{
|
| 5 |
extract::State,
|
|
|
|
| 6 |
response::sse::{Event, KeepAlive, Sse},
|
| 7 |
routing::{get, post},
|
| 8 |
Json, Router,
|
|
@@ -344,7 +345,12 @@ async fn handle_http_rpc(
|
|
| 344 |
|
| 345 |
async fn handle_sse(
|
| 346 |
State(_server): State<Arc<McpServer>>,
|
| 347 |
-
) -> Sse<impl Stream<Item = Result<Event, Infallible>>> {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 348 |
let initial = tokio_stream::iter(vec![
|
| 349 |
Ok(Event::default().event("endpoint").data("/rpc")),
|
| 350 |
]);
|
|
@@ -354,5 +360,5 @@ async fn handle_sse(
|
|
| 354 |
|
| 355 |
let stream = initial.chain(interval);
|
| 356 |
|
| 357 |
-
Sse::new(stream).keep_alive(KeepAlive::default())
|
| 358 |
}
|
|
|
|
| 3 |
use anyhow::Result;
|
| 4 |
use axum::{
|
| 5 |
extract::State,
|
| 6 |
+
http::{header, HeaderMap, HeaderValue},
|
| 7 |
response::sse::{Event, KeepAlive, Sse},
|
| 8 |
routing::{get, post},
|
| 9 |
Json, Router,
|
|
|
|
| 345 |
|
| 346 |
async fn handle_sse(
|
| 347 |
State(_server): State<Arc<McpServer>>,
|
| 348 |
+
) -> (HeaderMap, Sse<impl Stream<Item = Result<Event, Infallible>>>) {
|
| 349 |
+
let mut headers = HeaderMap::new();
|
| 350 |
+
headers.insert("x-accel-buffering", HeaderValue::from_static("no"));
|
| 351 |
+
headers.insert(header::CACHE_CONTROL, HeaderValue::from_static("no-cache"));
|
| 352 |
+
headers.insert(header::CONNECTION, HeaderValue::from_static("keep-alive"));
|
| 353 |
+
|
| 354 |
let initial = tokio_stream::iter(vec![
|
| 355 |
Ok(Event::default().event("endpoint").data("/rpc")),
|
| 356 |
]);
|
|
|
|
| 360 |
|
| 361 |
let stream = initial.chain(interval);
|
| 362 |
|
| 363 |
+
(headers, Sse::new(stream).keep_alive(KeepAlive::default()))
|
| 364 |
}
|