From 2401d20e862e30c305abdfc2f834c970b34eb602 Mon Sep 17 00:00:00 2001 From: Tyler Lafleur Date: Sat, 20 Sep 2025 10:56:33 -0500 Subject: [PATCH] Switch MCP server from SSE to HTTP transport MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update graphiti_mcp_server.py to use HTTP transport as default - Modify start.sh to use --transport http instead of sse - Update all documentation to reference /mcp endpoint instead of /sse - Rename mcp_config_sse_example.json to mcp_config_http_example.json - HTTP transport provides better compatibility and is actively supported 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- mcp_server/DEPLOY_RAILWAY.md | 6 +++--- mcp_server/graphiti_mcp_server.py | 13 +++++++++---- mcp_server/mcp_config_http_example.json | 8 ++++++++ mcp_server/mcp_config_sse_example.json | 8 -------- mcp_server/start.sh | 2 +- 5 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 mcp_server/mcp_config_http_example.json delete mode 100644 mcp_server/mcp_config_sse_example.json diff --git a/mcp_server/DEPLOY_RAILWAY.md b/mcp_server/DEPLOY_RAILWAY.md index dde63011..7723b8e0 100644 --- a/mcp_server/DEPLOY_RAILWAY.md +++ b/mcp_server/DEPLOY_RAILWAY.md @@ -39,7 +39,7 @@ PORT=8080 bash start.sh You should see the log line: ``` -Graphiti MCP Server listening on 0.0.0.0:8080 (transport=sse) +Graphiti MCP Server listening on 0.0.0.0:8080 (transport=http) ``` ## Remote validation with MCP Inspector @@ -48,8 +48,8 @@ After deploying to Railway, validate the endpoint with [MCP Inspector](https://g ```bash npx @modelcontextprotocol/inspector \ - --transport sse \ - --url https://.railway.app/sse \ + --transport http \ + --url https://.railway.app/mcp \ --headers "Authorization: Bearer " ``` diff --git a/mcp_server/graphiti_mcp_server.py b/mcp_server/graphiti_mcp_server.py index 44fd00e5..b8860427 100644 --- a/mcp_server/graphiti_mcp_server.py +++ b/mcp_server/graphiti_mcp_server.py @@ -512,7 +512,7 @@ class GraphitiConfig(BaseModel): class MCPConfig(BaseModel): """Configuration for MCP server.""" - transport: str = 'sse' # Default to SSE transport + transport: str = 'http' # Default to HTTP transport @classmethod def from_cli(cls, args: argparse.Namespace) -> 'MCPConfig': @@ -1173,9 +1173,9 @@ async def initialize_server() -> MCPConfig: ) parser.add_argument( '--transport', - choices=['sse', 'stdio'], - default='sse', - help='Transport to use for communication with the client. (default: sse)', + choices=['http', 'sse', 'stdio'], + default='http', + help='Transport to use for communication with the client. (default: http)', ) parser.add_argument( '--model', help=f'Model name to use with the LLM client. (default: {DEFAULT_LLM_MODEL})' @@ -1258,6 +1258,11 @@ async def run_mcp_server(): logger.info(f'Starting MCP server with transport: {mcp_config.transport}') if mcp_config.transport == 'stdio': await mcp.run_stdio_async() + elif mcp_config.transport == 'http': + logger.info( + f'Running MCP server with HTTP transport on {mcp.settings.host}:{mcp.settings.port}' + ) + await mcp.run_http_async() elif mcp_config.transport == 'sse': logger.info( f'Running MCP server with SSE transport on {mcp.settings.host}:{mcp.settings.port}' diff --git a/mcp_server/mcp_config_http_example.json b/mcp_server/mcp_config_http_example.json new file mode 100644 index 00000000..dddf72a5 --- /dev/null +++ b/mcp_server/mcp_config_http_example.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "graphiti": { + "transport": "http", + "url": "http://localhost:8000/mcp" + } + } +} \ No newline at end of file diff --git a/mcp_server/mcp_config_sse_example.json b/mcp_server/mcp_config_sse_example.json deleted file mode 100644 index 5f878448..00000000 --- a/mcp_server/mcp_config_sse_example.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "mcpServers": { - "graphiti": { - "transport": "sse", - "url": "http://localhost:8000/sse" - } - } -} \ No newline at end of file diff --git a/mcp_server/start.sh b/mcp_server/start.sh index 88d2b29f..859f5d15 100755 --- a/mcp_server/start.sh +++ b/mcp_server/start.sh @@ -7,4 +7,4 @@ if [[ -z "${PYTHON_BIN}" && -x "./.venv/bin/python" ]]; then PYTHON_BIN="$(pwd)/.venv/bin/python" fi PYTHON_BIN="${PYTHON_BIN:-python}" -exec "$PYTHON_BIN" graphiti_mcp_server.py --transport sse --host 0.0.0.0 --port "$PORT" +exec "$PYTHON_BIN" graphiti_mcp_server.py --transport http --host 0.0.0.0 --port "$PORT"