[project] name = "vox-mcp" version = "0.6.0" description = "Multi-model AI gateway for MCP clients — routes prompts to Gemini, OpenAI, Anthropic, xAI, DeepSeek, Moonshot, OpenRouter, and local models with conversation memory" requires-python = ">=3.10" license = "Apache-2.0" authors = [{ name = "Xule Lin" }] readme = "README.md" keywords = ["mcp", "ai", "gateway", "llm", "gemini", "openai", "anthropic", "deepseek", "moonshot", "openrouter"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Libraries", ] urls = { Homepage = "https://github.com/linxule/vox-mcp", Repository = "https://github.com/linxule/vox-mcp", Changelog = "https://github.com/linxule/vox-mcp/blob/main/CHANGELOG.md", Issues = "https://github.com/linxule/vox-mcp/issues" } dependencies = [ # SDK 2 removes the low-level decorator API used by server.py. "mcp>=1.30.0,<2", "google-genai>=2.3.0", "openai>=2.0.0,<3", "pydantic>=2.11.0", "python-dotenv>=1.0.0", "anthropic>=0.69.0,<1", ] [tool.setuptools.packages.find] include = ["tools*", "providers*", "utils*", "conf*"] [tool.setuptools] py-modules = ["server", "config"] [tool.setuptools.package-data] "conf" = ["*.json"] [project.scripts] vox-mcp = "server:run" [tool.ruff] target-version = "py310" line-length = 120 [tool.ruff.lint] select = ["E", "W", "F", "I", "B", "C4", "UP"] ignore = ["E501", "B008", "C901", "B904"] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] "tests/*" = ["B011"] "tests/conftest.py" = ["E402"] [build-system] requires = ["setuptools>=45", "wheel"] build-backend = "setuptools.build_meta" [dependency-groups] dev = [ "pytest>=9.0.2", "pytest-asyncio>=1.3.0", "ruff>=0.1.0", "pip-audit>=2.10.1", ]