diff --git a/mcp_server/pyproject.toml b/mcp_server/pyproject.toml index cef71e27..a6c854fb 100644 --- a/mcp_server/pyproject.toml +++ b/mcp_server/pyproject.toml @@ -59,6 +59,10 @@ select = [ ] ignore = ["E501"] +[tool.ruff.lint.flake8-tidy-imports.banned-api] +# Required by Pydantic on Python < 3.12 +"typing.TypedDict".msg = "Use typing_extensions.TypedDict instead." + [tool.ruff.format] quote-style = "single" indent-style = "space" diff --git a/mcp_server/src/graphiti_mcp_server.py b/mcp_server/src/graphiti_mcp_server.py index 1bf276c2..833bc5d9 100644 --- a/mcp_server/src/graphiti_mcp_server.py +++ b/mcp_server/src/graphiti_mcp_server.py @@ -245,35 +245,35 @@ class GraphitiService: db_provider = self.config.database.provider if db_provider.lower() == 'falkordb': raise RuntimeError( - f"\n{'='*70}\n" - f"Database Connection Error: FalkorDB is not running\n" - f"{'='*70}\n\n" - f"FalkorDB at {db_config['host']}:{db_config['port']} is not accessible.\n\n" - f"To start FalkorDB:\n" - f" - Using Docker Compose: cd mcp_server && docker compose up\n" - f" - Or run FalkorDB manually: docker run -p 6379:6379 falkordb/falkordb\n\n" - f"{'='*70}\n" + f'\n{"=" * 70}\n' + f'Database Connection Error: FalkorDB is not running\n' + f'{"=" * 70}\n\n' + f'FalkorDB at {db_config["host"]}:{db_config["port"]} is not accessible.\n\n' + f'To start FalkorDB:\n' + f' - Using Docker Compose: cd mcp_server && docker compose up\n' + f' - Or run FalkorDB manually: docker run -p 6379:6379 falkordb/falkordb\n\n' + f'{"=" * 70}\n' ) from db_error elif db_provider.lower() == 'neo4j': raise RuntimeError( - f"\n{'='*70}\n" - f"Database Connection Error: Neo4j is not running\n" - f"{'='*70}\n\n" - f"Neo4j at {db_config.get('uri', 'unknown')} is not accessible.\n\n" - f"To start Neo4j:\n" - f" - Using Docker Compose: cd mcp_server && docker compose -f docker/docker-compose-neo4j.yml up\n" - f" - Or install Neo4j Desktop from: https://neo4j.com/download/\n" - f" - Or run Neo4j manually: docker run -p 7474:7474 -p 7687:7687 neo4j:latest\n\n" - f"{'='*70}\n" + f'\n{"=" * 70}\n' + f'Database Connection Error: Neo4j is not running\n' + f'{"=" * 70}\n\n' + f'Neo4j at {db_config.get("uri", "unknown")} is not accessible.\n\n' + f'To start Neo4j:\n' + f' - Using Docker Compose: cd mcp_server && docker compose -f docker/docker-compose-neo4j.yml up\n' + f' - Or install Neo4j Desktop from: https://neo4j.com/download/\n' + f' - Or run Neo4j manually: docker run -p 7474:7474 -p 7687:7687 neo4j:latest\n\n' + f'{"=" * 70}\n' ) from db_error else: raise RuntimeError( - f"\n{'='*70}\n" - f"Database Connection Error: {db_provider} is not running\n" - f"{'='*70}\n\n" - f"{db_provider} at {db_config.get('uri', 'unknown')} is not accessible.\n\n" - f"Please ensure {db_provider} is running and accessible.\n\n" - f"{'='*70}\n" + f'\n{"=" * 70}\n' + f'Database Connection Error: {db_provider} is not running\n' + f'{"=" * 70}\n\n' + f'{db_provider} at {db_config.get("uri", "unknown")} is not accessible.\n\n' + f'Please ensure {db_provider} is running and accessible.\n\n' + f'{"=" * 70}\n' ) from db_error # Re-raise other errors raise diff --git a/mcp_server/uv.lock b/mcp_server/uv.lock index 2ff3dfc0..77450508 100644 --- a/mcp_server/uv.lock +++ b/mcp_server/uv.lock @@ -1082,6 +1082,7 @@ dependencies = [ { name = "openai" }, { name = "pydantic-settings" }, { name = "pyyaml" }, + { name = "typing-extensions" }, ] [package.optional-dependencies] @@ -1132,6 +1133,7 @@ requires-dist = [ { name = "pyyaml", specifier = ">=6.0" }, { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.7.1" }, { name = "sentence-transformers", marker = "extra == 'providers'", specifier = ">=2.0.0" }, + { name = "typing-extensions", specifier = ">=4.0.0" }, { name = "voyageai", marker = "extra == 'providers'", specifier = ">=0.2.3" }, ] provides-extras = ["azure", "providers", "dev"] diff --git a/pyproject.toml b/pyproject.toml index 5281f22b..5cd89412 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -90,6 +90,10 @@ select = [ ] ignore = ["E501"] +[tool.ruff.lint.flake8-tidy-imports.banned-api] +# Required by Pydantic on Python < 3.12 +"typing.TypedDict".msg = "Use typing_extensions.TypedDict instead." + [tool.ruff.format] quote-style = "single" indent-style = "space"