Skip to content

Commit 267886e

Browse files
author
Charlie Tonneslan
committed
fix: use HTTP 404 instead of 400 for invalid session IDs
Per the MCP spec, servers should return 404 (Not Found) when a client provides a session ID that the server does not recognize, not 400 (Bad Request). Updated all example and conformance test server files. Fixes #389
1 parent ccb78f2 commit 267886e

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

examples/server/src/simpleStreamableHttp.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,7 @@ if (useOAuth && authMiddleware) {
726726
const mcpGetHandler = async (req: Request, res: Response) => {
727727
const sessionId = req.headers['mcp-session-id'] as string | undefined;
728728
if (!sessionId || !transports[sessionId]) {
729-
res.status(400).send('Invalid or missing session ID');
729+
res.status(404).send('Invalid or missing session ID');
730730
return;
731731
}
732732

@@ -757,7 +757,7 @@ if (useOAuth && authMiddleware) {
757757
const mcpDeleteHandler = async (req: Request, res: Response) => {
758758
const sessionId = req.headers['mcp-session-id'] as string | undefined;
759759
if (!sessionId || !transports[sessionId]) {
760-
res.status(400).send('Invalid or missing session ID');
760+
res.status(404).send('Invalid or missing session ID');
761761
return;
762762
}
763763

examples/server/src/standaloneSseWithGetStreamableHttp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ app.post('/mcp', async (req: Request, res: Response) => {
120120
app.get('/mcp', async (req: Request, res: Response) => {
121121
const sessionId = req.headers['mcp-session-id'] as string | undefined;
122122
if (!sessionId || !transports[sessionId]) {
123-
res.status(400).send('Invalid or missing session ID');
123+
res.status(404).send('Invalid or missing session ID');
124124
return;
125125
}
126126

test/conformance/src/everythingServer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -962,7 +962,7 @@ app.get('/mcp', async (req: Request, res: Response) => {
962962
const sessionId = req.headers['mcp-session-id'] as string | undefined;
963963
964964
if (!sessionId || !transports[sessionId]) {
965-
res.status(400).send('Invalid or missing session ID');
965+
res.status(404).send('Invalid or missing session ID');
966966
return;
967967
}
968968
@@ -989,7 +989,7 @@ app.delete('/mcp', async (req: Request, res: Response) => {
989989
const sessionId = req.headers['mcp-session-id'] as string | undefined;
990990

991991
if (!sessionId || !transports[sessionId]) {
992-
res.status(400).send('Invalid or missing session ID');
992+
res.status(404).send('Invalid or missing session ID');
993993
return;
994994
}
995995

0 commit comments

Comments
 (0)