diff --git a/mcp_server/docker/Dockerfile b/mcp_server/docker/Dockerfile index d4c4d37d..4b37e16c 100644 --- a/mcp_server/docker/Dockerfile +++ b/mcp_server/docker/Dockerfile @@ -33,16 +33,20 @@ ENV UV_COMPILE_BYTECODE=1 \ WORKDIR /app/mcp # Accept graphiti-core version as build argument -ARG GRAPHITI_CORE_VERSION=0.22.0 +ARG GRAPHITI_CORE_VERSION=0.23.0 # Copy project files for dependency installation COPY pyproject.toml uv.lock ./ # Remove the local path override for graphiti-core in Docker builds +# and regenerate lock file to match the PyPI version RUN sed -i '/\[tool\.uv\.sources\]/,/graphiti-core/d' pyproject.toml && \ if [ -n "${GRAPHITI_CORE_VERSION}" ]; then \ - sed -i "s/graphiti-core\[falkordb\]>=0\.16\.0/graphiti-core[falkordb]==${GRAPHITI_CORE_VERSION}/" pyproject.toml; \ - fi + sed -i "s/graphiti-core\[falkordb\]>=0\.23\.0/graphiti-core[falkordb]==${GRAPHITI_CORE_VERSION}/" pyproject.toml; \ + fi && \ + echo "Regenerating lock file for PyPI graphiti-core..." && \ + rm -f uv.lock && \ + uv lock # Install Python dependencies RUN --mount=type=cache,target=/root/.cache/uv \ diff --git a/mcp_server/docker/Dockerfile.standalone b/mcp_server/docker/Dockerfile.standalone index 6db22d95..042d22d5 100644 --- a/mcp_server/docker/Dockerfile.standalone +++ b/mcp_server/docker/Dockerfile.standalone @@ -28,15 +28,19 @@ ENV UV_COMPILE_BYTECODE=1 \ WORKDIR /app/mcp # Accept graphiti-core version as build argument -ARG GRAPHITI_CORE_VERSION=0.22.0 +ARG GRAPHITI_CORE_VERSION=0.23.0 # Copy project files for dependency installation COPY pyproject.toml uv.lock ./ # Remove the local path override for graphiti-core in Docker builds # Install with BOTH neo4j and falkordb extras for maximum flexibility +# and regenerate lock file to match the PyPI version RUN sed -i '/\[tool\.uv\.sources\]/,/graphiti-core/d' pyproject.toml && \ - sed -i "s/graphiti-core\[falkordb\]>=0\.16\.0/graphiti-core[neo4j,falkordb]==${GRAPHITI_CORE_VERSION}/" pyproject.toml + sed -i "s/graphiti-core\[falkordb\]>=0\.23\.0/graphiti-core[neo4j,falkordb]==${GRAPHITI_CORE_VERSION}/" pyproject.toml && \ + echo "Regenerating lock file for PyPI graphiti-core..." && \ + rm -f uv.lock && \ + uv lock # Install Python dependencies RUN --mount=type=cache,target=/root/.cache/uv \ diff --git a/mcp_server/docker/docker-compose.yml b/mcp_server/docker/docker-compose.yml index 9ec7daf0..a4f8b257 100644 --- a/mcp_server/docker/docker-compose.yml +++ b/mcp_server/docker/docker-compose.yml @@ -5,7 +5,7 @@ services: context: .. dockerfile: docker/Dockerfile args: - GRAPHITI_CORE_VERSION: ${GRAPHITI_CORE_VERSION:-0.22.0} + GRAPHITI_CORE_VERSION: ${GRAPHITI_CORE_VERSION:-0.23.0} MCP_SERVER_VERSION: ${MCP_SERVER_VERSION:-1.0.0} BUILD_DATE: ${BUILD_DATE:-} VCS_REF: ${VCS_REF:-} diff --git a/mcp_server/pyproject.toml b/mcp_server/pyproject.toml index 65e8a2d6..bab59fd7 100644 --- a/mcp_server/pyproject.toml +++ b/mcp_server/pyproject.toml @@ -7,7 +7,7 @@ requires-python = ">=3.10,<4" dependencies = [ "mcp>=1.9.4", "openai>=1.91.0", - "graphiti-core[falkordb]>=0.16.0", + "graphiti-core[falkordb]>=0.23.0", "pydantic-settings>=2.0.0", "pyyaml>=6.0", ] @@ -24,7 +24,7 @@ providers = [ "sentence-transformers>=2.0.0", ] dev = [ - "graphiti-core>=0.16.0", + "graphiti-core>=0.23.0", "httpx>=0.28.1", "mcp>=1.9.4", "pyright>=1.1.404", diff --git a/mcp_server/src/graphiti_mcp_server.py b/mcp_server/src/graphiti_mcp_server.py index 0c9a568a..1bf276c2 100644 --- a/mcp_server/src/graphiti_mcp_server.py +++ b/mcp_server/src/graphiti_mcp_server.py @@ -931,6 +931,11 @@ async def run_mcp_server(): logger.info(f' Base URL: http://{display_host}:{mcp.settings.port}/') logger.info(f' MCP Endpoint: http://{display_host}:{mcp.settings.port}/mcp/') logger.info(' Transport: HTTP (streamable)') + + # Show FalkorDB Browser UI access if enabled + if os.environ.get('BROWSER', '1') == '1': + logger.info(f' FalkorDB Browser UI: http://{display_host}:3000/') + logger.info('=' * 60) logger.info('For MCP clients, connect to the /mcp/ endpoint above') diff --git a/mcp_server/src/models/response_types.py b/mcp_server/src/models/response_types.py index eca20324..16d96bca 100644 --- a/mcp_server/src/models/response_types.py +++ b/mcp_server/src/models/response_types.py @@ -1,6 +1,8 @@ """Response type definitions for Graphiti MCP Server.""" -from typing import Any, TypedDict +from typing import Any + +from typing_extensions import TypedDict class ErrorResponse(TypedDict):