[build-system] requires = ["hatchling>=1.31,<2"] build-backend = "hatchling.build" [project] name = "akbridge" version = "0.2.1" description = "Complete, automatically discovered MCP access to AKShare" readme = "README.md" requires-python = ">=3.11" license = "MIT" license-files = ["LICENSE"] keywords = ["akshare", "mcp", "finance", "market-data", "llm"] classifiers = [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Topic :: Office/Business :: Financial", ] dependencies = [ "akshare==1.19.3", "mcp==1.30.0", "pandas>=2.2.0", "jsonschema>=4.20.0", "starlette>=0.27.0", "uvicorn>=0.31.1", ] [project.urls] Homepage = "https://github.com/kevynf/akshare-mcp-bridge" Repository = "https://github.com/kevynf/akshare-mcp-bridge.git" Issues = "https://github.com/kevynf/akshare-mcp-bridge/issues" Documentation = "https://github.com/kevynf/akshare-mcp-bridge#readme" [project.optional-dependencies] release = [ "twine==7.0.0", ] [dependency-groups] dev = [ "pytest>=8.3.0", "pytest-cov>=6.0.0", "ruff==0.16.2", # Starlette's TestClient emits a deprecation warning when driven by httpx; # httpx2 is the supported path and keeps the HTTP transport tests warning-free. "httpx2>=2.16.0", ] [project.scripts] akbridge = "akbridge.server:main" akbridge-accept = "akbridge.acceptance:main" akbridge-maintain = "akbridge.maintenance:main" akbridge-docs = "akbridge.documents:main" [tool.hatch.build.targets.wheel] packages = ["src/akbridge"] [tool.hatch.build.targets.sdist] include = [ "/LICENSE", "/README.md", "/README.en.md", "/server.json", "/pyproject.toml", "/src/akbridge", ] [tool.pytest.ini_options] testpaths = ["tests"] # Keep temporary files in the workspace. This makes the automated test suite # independent of a locked or enterprise-managed system temp directory. addopts = "-q --basetemp=.pytest-tmp" [tool.ruff] line-length = 100 target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "SIM"]