[project]
name = "ue-mcp"
version = "0.1.0"
description = "MCP server for Unreal Editor interaction"
readme = "README.md"
requires-python = ">=3.12"
license = { text = "MIT" }
authors = [{ name = "UE-MCP Contributors" }]
keywords = ["unreal", "ue5", "mcp", "fastmcp", "editor", "automation"]
dependencies = [
"fastmcp>=2.0.0,<3.0.0",
"pillow>=12.1.0",
]
[project.optional-dependencies]
dev = [
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"ruff>=0.1.0",
"pyyaml>=6.0",
]
[tool.uv.sources]
mcp-pytest = { path = "D:/Code/mcp-test/mcp-pytest", editable = true }
[dependency-groups]
dev = [
"mcp-pytest",
]
[project.scripts]
ue-mcp = "ue_mcp.server:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/ue_mcp"]
[tool.ruff]
line-length = 100
target-version = "py310"
[tool.ruff.lint]
select = ["E", "F", "I", "W"]
ignore = ["E501"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "session"
asyncio_default_test_loop_scope = "session"
testpaths = ["tests"]
markers = [
"integration: marks tests as integration tests (require Claude CLI and may require UE5)",
"slow: marks tests as slow (may take minutes to complete)",
]
# Enable logging output when -v flag is used
log_cli = true
log_cli_level = "INFO"
log_cli_format = "[%(levelname)8s] %(name)s - %(message)s"
# Set log level higher by default (only show with -v)
log_level = "INFO"
# File logging configuration (log file path set dynamically in conftest.py)
log_file_level = "DEBUG"
log_file_format = "%(asctime)s [%(levelname)8s] %(name)s:%(lineno)d - %(message)s"
log_file_date_format = "%Y-%m-%d %H:%M:%S"