[build-system]
requires = ["setuptools>=65.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "chatexcel-mcp"
version = "2.1.1"
description = "ChatExcel MCP Server - 企业级Excel智能处理与数据分析MCP服务器 v2.1.1 (pandas导入完全修复版 + 项目结构优化)"
requires-python = ">=3.11"
authors = [
{ name = "ChatExcel Team", email = "support@chatexcel.com" }
]
maintainers = [
{name = "ChatExcel Team", email = "support@chatexcel.com"}
]
readme = "README.md"
license = {text = "MIT"}
keywords = [
"excel", "mcp", "data-analysis", "pandas", "openpyxl",
"fastmcp", "claude", "ai-assistant", "spreadsheet", "data-processing",
"formulas", "enterprise", "business-intelligence", "data-quality",
"pandas-fix", "import-fix", "execution-environment", "project-optimization",
"structure-cleanup", "production-ready", "enhanced-globals", "mcp-integration"
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Intended Audience :: Data Scientists",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Office/Business :: Financial :: Spreadsheet",
"Topic :: Scientific/Engineering :: Information Analysis",
"Topic :: Software Development :: Libraries :: Python Modules",
"Framework :: FastAPI",
"Environment :: Console"
]
[project.urls]
Homepage = "https://github.com/chatexcel/chatExcel-mcp"
Documentation = "https://github.com/chatexcel/chatExcel-mcp/blob/main/README.md"
Repository = "https://github.com/chatexcel/chatExcel-mcp.git"
"Bug Tracker" = "https://github.com/chatexcel/chatExcel-mcp/issues"
"Changelog" = "https://github.com/chatexcel/chatExcel-mcp/blob/main/CHANGELOG.md"
[project.scripts]
chatexcel-server = "server:main"
chatexcel-verify = "comprehensive_mcp_verification:main"
dependencies = [
"mcp>=1.9.4",
"fastmcp>=2.8.0",
"pandas>=1.5.3",
"numpy>=1.26.4",
"pandasai>=2.3.0",
"openpyxl>=3.1.5",
"xlsxwriter>=3.2.5",
"torch>=2.1.0",
"torchvision>=0.16.0",
"transformers>=4.39.2",
"scikit-learn>=1.2.2",
"matplotlib>=3.10.1",
"seaborn>=0.13.2",
"plotly>=6.0.1",
"httpx>=0.28.1",
"requests>=2.32.3",
"pydantic>=2.11.7",
"uvicorn>=0.30.6",
"starlette>=0.46.2",
"python-multipart>=0.0.20",
"websockets>=11.0.3",
"sse-starlette>=2.3.3",
"rich>=14.0.0",
"typer>=0.15.2",
"PyYAML>=6.0.2",
"python-dotenv>=1.1.0",
"psutil>=7.0.0",
"packaging>=24.2",
"toml>=0.10.2",
"cryptography>=45.0.4",
"structlog>=24.4.0",
"loguru>=0.7.2",
"pytest>=8.3.4",
"black>=24.10.0",
"flake8>=7.1.1",
"mypy>=1.13.0",
"isort>=5.13.2",
"bandit>=1.8.0",
"sphinx>=8.1.3",
"Pygments>=2.19.1",
"duckdb>=1.3.1",
"sqlglot>=25.34.1",
"formulas>=1.2.10",
"numpy-financial>=1.0.0",
"fuzzywuzzy>=0.18.0",
"python-Levenshtein>=0.27.1",
"mpld3>=0.3",
"tabulate>=0.9.0",
"Jinja2>=3.1.6",
"lxml>=5.4.0",
"et_xmlfile>=2.0.0",
"Faker>=19.13.0",
"groovy>=0.1.2",
"astor>=0.8.1",
"schedula>=1.5.62",
"pyodbc>=5.2.0",
"SQLAlchemy>=2.0.40",
"fastapi>=0.115.12",
"gradio>=5.23.3",
"openai>=1.75.0",
"dashscope>=1.20.14",
"huggingface-hub>=0.30.2",
"safetensors>=0.5.3",
"tokenizers>=0.15.1",
"accelerate>=0.27.2",
"peft>=0.4.0",
"bitsandbytes>=0.41.0",
"einops>=0.6.1",
"xformers>=0.0.16",
"sentencepiece>=0.1.99",
"ipython>=8.35.0",
"jupyter>=1.1.1",
"notebook>=7.3.1",
"jupyterlab>=4.3.4",
"altair>=5.5.0",
"narwhals>=1.35.0",
"orjson>=3.10.16",
"jsonschema>=4.23.0",
"fastjsonschema>=2.21.1",
"shortuuid>=1.0.13",
"pydub>=0.25.1",
"ffmpy>=0.5.0",
"aiofiles>=23.2.1",
"httpx-sse>=0.4.0",
"gradio-client>=1.8.0",
"anyio>=4.9.0",
"httpcore>=1.0.8",
"sniffio>=1.3.1",
"h11>=0.14.0",
"certifi>=2022.12.7",
"charset-normalizer>=3.1.0",
"idna>=3.4",
"urllib3>=2.0.2",
"aiohttp>=3.11.18",
"aiosignal>=1.3.2",
"attrs>=25.3.0",
"frozenlist>=1.6.0",
"multidict>=6.4.3",
"yarl>=1.20.0",
"propcache>=0.3.1",
"aiohappyeyeballs>=2.6.1",
"typing_extensions>=4.13.2",
"annotated-types>=0.7.0",
"pydantic-core>=2.33.2",
"pydantic-settings>=2.9.1",
"python-dateutil>=2.9.0.post0",
"pytz>=2025.2",
"six>=1.17.0",
"tzdata>=2025.2",
"scipy>=1.15.2",
"threadpoolctl>=3.6.0",
"joblib>=1.4.2",
"pillow>=10.4.0",
"kiwisolver>=1.4.8",
"fonttools>=4.57.0",
"cycler>=0.12.1",
"pyparsing>=3.2.3",
"contourpy>=1.3.2",
"tenacity>=9.0.0",
"click>=8.1.8",
"itsdangerous>=2.2.0",
"Werkzeug>=3.1.3",
"MarkupSafe>=2.1.2",
"blinker>=1.9.0",
"Flask>=3.1.0",
"markdown-it-py>=3.0.0",
"mdurl>=0.1.2",
"websocket-client>=1.8.0",
"tqdm>=4.67.1",
"filelock>=3.18.0",
"fsspec>=2025.3.2",
"networkx>=3.1",
"sympy>=1.11.1",
"mpmath>=1.3.0",
"jinja2>=3.1.6",
"regex>=2024.11.6",
"requests>=2.32.3",
"packaging>=24.2",
"pyyaml>=6.0.2",
"cffi>=1.17.1",
"pycparser>=2.22",
"cryptography>=45.0.4",
"Authlib>=1.6.0",
"greenlet>=3.2.0",
"msgpack>=1.1.0",
"sqlglotrs>=0.3.0",
"RapidFuzz>=3.13.0",
"Levenshtein>=0.27.1",
"decorator>=5.2.1",
"executing>=2.2.0",
"asttokens>=3.0.0",
"stack-data>=0.6.3",
"pure_eval>=0.2.3",
"prompt_toolkit>=3.0.51",
"wcwidth>=0.2.13",
"parso>=0.19.2",
"jedi>=0.19.2",
"matplotlib-inline>=0.1.7",
"traitlets>=5.14.3",
"pexpect>=4.9.0",
"ptyprocess>=0.7.0",
"jiter>=0.9.0",
"distro>=1.9.0",
"mypy-extensions>=1.0.0",
"typing-inspect>=0.8.0",
"typing-inspection>=0.4.0",
"pyre-extensions>=0.0.23",
"openapi-pydantic>=0.5.1",
"safehttpx>=0.1.6",
"jsonschema-specifications>=2024.10.1",
"referencing>=0.36.2",
"rpds-py>=0.24.0",
"importlib_metadata>=8.6.1",
"zipp>=3.21.0",
"importlib_resources>=6.5.2",
]
[project.optional-dependencies]
dev = [
"pytest==8.4.0",
"black>=23.0.0",
"flake8>=6.0.0",
"rich==14.0.0",
"typer==0.16.0",
]
web = [
"uvicorn==0.34.3",
"starlette==0.47.0",
"httpx==0.28.1",
"websockets==15.0.1",
]
[tool.setuptools]
py-modules = [
"server",
"config",
"comprehensive_data_verification",
"data_verification",
"excel_enhanced_tools",
"excel_smart_tools",
"excel_go_client",
"enhanced_globals_config",
"pandas_fix_patch",
"mcp_pandas_integration"
]
[tool.setuptools.package-data]
"*" = [
"templates/*.html",
"static/**/*",
"charts/*.html",
"record/*.md",
"record/*.txt",
"record/*.py",
"*.json",
"*.md",
"*.yaml",
"*.yml"
]