graphiti/mcp_server/pyproject.toml
Lars Varming 0e52b339b2 Fix: Add shutdown handler for proper connection cleanup
Added GraphitiService.shutdown() and QueueService.shutdown() methods,
and registered shutdown handler in main MCP server lifecycle to ensure
proper cleanup of Neo4j connections on server exit.

Changes:
- Added GraphitiService.shutdown() method to close Neo4j driver
- Added QueueService.shutdown() method to log worker cancellation
- Wrapped run_mcp_server() in try/finally block to call shutdown
- Updated dependency to graphiti-core-varming>=0.23.2 (connection pool config)

This prevents "Response write failure" errors during server shutdown by
ensuring all database connections are properly closed before exit.

Version: graphiti-mcp-varming 1.0.6

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 14:34:40 +01:00

134 lines
3 KiB
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src", "config"]
[tool.hatch.metadata]
allow-direct-references = true
[project]
name = "graphiti-mcp-varming"
version = "1.0.6"
description = "Graphiti MCP Server - Enhanced fork with additional tools by Varming"
readme = "README.md"
requires-python = ">=3.10,<4"
license = {text = "Apache-2.0"}
authors = [
{name = "Varming", email = "varming@example.com"}
]
keywords = ["mcp", "graphiti", "knowledge-graph", "llm", "ai"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
dependencies = [
"mcp>=1.21.0",
"openai>=1.91.0",
"graphiti-core-varming>=0.23.2", # Varming fork with connection pool config (0.23.2)
"pydantic-settings>=2.0.0",
"pyyaml>=6.0",
]
[project.scripts]
graphiti-mcp-varming = "src.graphiti_mcp_server:main"
[project.urls]
Homepage = "https://github.com/Varming73/graphiti"
Repository = "https://github.com/Varming73/graphiti"
Issues = "https://github.com/Varming73/graphiti/issues"
[project.optional-dependencies]
# FalkorDB support (Neo4j is included in graphiti-core-varming by default)
falkordb = ["graphiti-core-varming[falkordb]>=0.23.2"]
# Azure support
azure = [
"azure-identity>=1.21.0",
]
# LLM/Embedder providers (lightweight - no sentence-transformers)
api-providers = [
"google-genai>=1.8.0",
"anthropic>=0.49.0",
"groq>=0.2.0",
"voyageai>=0.2.3",
]
# LLM/Embedder providers (includes heavy sentence-transformers for local embeddings)
providers = [
"google-genai>=1.8.0",
"anthropic>=0.49.0",
"groq>=0.2.0",
"voyageai>=0.2.3",
"sentence-transformers>=2.0.0",
]
# All optional features
all = [
"graphiti-core-varming[falkordb]>=0.23.1",
"azure-identity>=1.21.0",
"google-genai>=1.8.0",
"anthropic>=0.49.0",
"groq>=0.2.0",
"voyageai>=0.2.3",
"sentence-transformers>=2.0.0",
]
dev = [
"graphiti-core-varming>=0.23.2",
"httpx>=0.28.1",
"mcp>=1.21.0",
"pyright>=1.1.404",
"pytest>=8.0.0",
"pytest-asyncio>=0.21.0",
"ruff>=0.7.1",
]
[tool.pyright]
include = ["src", "tests"]
pythonVersion = "3.10"
typeCheckingMode = "basic"
[tool.ruff]
line-length = 100
[tool.ruff.lint]
select = [
# pycodestyle
"E",
# Pyflakes
"F",
# pyupgrade
"UP",
# flake8-bugbear
"B",
# flake8-simplify
"SIM",
# isort
"I",
]
ignore = ["E501"]
[tool.ruff.format]
quote-style = "single"
indent-style = "space"
docstring-code-format = true
# Note: For local development, you can override graphiti-core-varming source:
# [tool.uv.sources]
# graphiti-core-varming = { path = "../", editable = true }
[dependency-groups]
dev = [
"faker>=37.12.0",
"psutil>=7.1.2",
"pytest-timeout>=2.4.0",
"pytest-xdist>=3.8.0",
]