Switch MCP server from SSE to HTTP transport

- 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 <noreply@anthropic.com>
This commit is contained in:
Tyler Lafleur 2025-09-20 10:56:33 -05:00
parent d6b032eb42
commit 2401d20e86
5 changed files with 21 additions and 16 deletions

View file

@ -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>.railway.app/sse \
--transport http \
--url https://<railway-app>.railway.app/mcp \
--headers "Authorization: Bearer <KEY-if-configured>"
```

View file

@ -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}'

View file

@ -0,0 +1,8 @@
{
"mcpServers": {
"graphiti": {
"transport": "http",
"url": "http://localhost:8000/mcp"
}
}
}

View file

@ -1,8 +0,0 @@
{
"mcpServers": {
"graphiti": {
"transport": "sse",
"url": "http://localhost:8000/sse"
}
}
}

View file

@ -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"