pyproject.toml•4.33 kB
[project]
name = "lightfast-mcp"
version = "0.0.1"
description = "MCP server implementations for creative applications (Blender, etc.)"
readme = "README.md"
requires-python = ">=3.10"
authors = [
{name = "Jeevan Pillay", email = "jp@lightfast.ai"}
]
license = "MIT"
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Operating System :: OS Independent",
]
# 🎯 CORE: Dependencies needed for MCP server implementations and tools
dependencies = [
"fastmcp>=2.0.0",
"rich", # For logging and CLI output
"pyyaml", # For YAML config support (used by orchestration tools)
"anthropic", # Claude AI integration (used by conversation client)
"openai", # OpenAI integration (used by conversation client)
"typer", # CLI framework (used by conversation CLI)
]
[project.optional-dependencies]
# Development dependencies (testing, linting, etc.)
dev = [
"ruff",
"taskipy",
"pytest",
"pytest-asyncio",
"pytest-cov",
"coverage",
"nox",
"mypy",
"build",
]
[project.scripts]
# 🎯 PRIMARY: Individual MCP server entry points (core functionality only)
lightfast-blender-server = "lightfast_mcp.servers.blender_mcp_server:main"
lightfast-mock-server = "lightfast_mcp.servers.mock_server:main"
# Direct modular server access
lightfast-mock = "lightfast_mcp.servers.mock.server:main"
lightfast-blender = "lightfast_mcp.servers.blender.server:main"
# 🤖 Orchestration: Multi-server management CLI
lightfast-mcp-orchestrator = "tools.orchestration.cli:main"
# 🤖 AI: Conversation client CLI
lightfast-conversation-client = "tools.ai.conversation_cli:app"
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
package-dir = {"" = "src"}
packages = [
"lightfast_mcp",
"lightfast_mcp.core",
"lightfast_mcp.servers",
"lightfast_mcp.servers.blender",
"lightfast_mcp.servers.mock",
"lightfast_mcp.utils",
"common", # Required by lightfast_mcp.core
"tools", # Orchestration and AI client tools
"tools.orchestration",
"tools.ai",
"tools.ai.providers",
"tools.common",
]
[project.urls]
"Homepage" = "https://github.com/lightfastai/lightfast-mcp"
"Bug Tracker" = "https://github.com/lightfastai/lightfast-mcp/issues"
[tool.ruff]
line-length = 120
target-version = "py310"
[tool.ruff.lint]
select = [
"E",
"F",
"W",
"I",
"UP",
"B",
"C4",
"SIM",
]
ignore = []
[tool.ruff.format]
quote-style = "double"
skip-magic-trailing-comma = false
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]
markers = [
"integration: marks tests as integration tests",
"slow: marks tests as slow running",
]
[tool.taskipy.tasks]
# Linting and formatting
lint = "uv run ruff check ."
format = "uv run ruff format ."
check_format = "uv run ruff format --check ."
fix = "uv run ruff check . --fix && uv run ruff format ."
# Testing (Simplified - direct pytest commands)
test = "uv run pytest"
test_fast = "nox -s test_fast"
test_unit = "uv run pytest tests/unit -v --tb=short"
test_integration = "nox -s test_integration"
test_e2e = "nox -s test_e2e"
test_coverage = "nox -s test_coverage"
demo = "uv run pytest tests/e2e/test_full_system.py::TestFullSystemWorkflow::test_system_startup_and_discovery -v"
# 🎯 PRIMARY: Individual MCP servers (core functionality)
blender_server = "uv run lightfast-blender-server"
mock_server = "uv run lightfast-mock-server"
# 🔧 ORCHESTRATION: Multi-server management
orchestrator = "uv run lightfast-mcp-orchestrator"
start_servers = "uv run lightfast-mcp-orchestrator start"
list_servers = "uv run lightfast-mcp-orchestrator list"
# 🤖 AI: Conversation client
conversation_client = "uv run lightfast-conversation-client chat"
conversation_test = "uv run lightfast-conversation-client test"
[dependency-groups]
dev = [
"coverage>=7.8.2",
"pytest>=8.3.5",
"pytest-asyncio>=0.26.0",
"pytest-cov>=6.1.1",
"types-pyyaml>=6.0.12.20250516",
]