[project] name = "chess-uci-mcp" version = "0.3.1" description = "An MCP bridge exposing UCI chess engines such as Stockfish or Leela Chess Zero to any MCP client" authors = [ {name = "Alex Myodov", email = "amyodov@gmail.com"} ] license = {text = "MIT License"} readme = "README.md" keywords = ["chess", "UCI", "chess engine", "uci protocol", "uci chess", "MCP", "model context protocol"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: End Users/Desktop", "Topic :: Games/Entertainment :: Board Games", "Topic :: Scientific/Engineering :: Artificial Intelligence", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Operating System :: OS Independent" ] requires-python = ">=3.12" dependencies = [ "esca~=0.4.0", "mcp[cli]>=1.28.1,<2.0.0", "click>=8.1.8,<9.0.0", ] [build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project.optional-dependencies] dev = [ "pytest>=8.3.0", "pyrefly>=0.16.0", "ruff>=0.11.4", "pytest-asyncio>=0.23.0", ] [project.scripts] chess-uci-mcp = "chess_uci_mcp.__main__:main" [tool.setuptools] package-dir = {"" = "."} packages = ["chess_uci_mcp"] [tool.ruff] line-length = 120 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM", "PT", "RUF"] [tool.pyrefly] project-includes = ["chess_uci_mcp", "tests"] search-path = [".", "tests"] python-version = "3.12" [tool.pytest.ini_options] testpaths = ["tests"] addopts = "--strict-markers -ra" asyncio_default_fixture_loop_scope = "function"