content: [build-system]
  requires = ["setuptools", "wheel"]
  build-backend = "setuptools.build_meta"
  
  [project]
  name = "tooluniverse"
  version = "1.0.6"
  description = "A comprehensive collection of scientific tools for Agentic AI, offering integration with the ToolUniverse SDK and MCP Server to support advanced scientific workflows."
  authors = [
      { name = "Shanghua Gao", email = "shanghuagao@gmail.com" }
  ]
  dependencies = [
      "requests>=2.32.0",
      "numpy>=2.2.0",
      "graphql-core>=3.2.0",
      "fastapi>=0.116.0",
      "uvicorn>=0.35.0",
      "pydantic>=2.11.0",
      "epam.indigo>=1.34.0",
      "networkx>=3.4.0",
      "openai>=1.107.0",
      "pyyaml>=6.0.0",
      "google-genai>=1.36.0",
      "google-generativeai>=0.7.2",
      "mcp[cli]>=1.9.3",
      "fastmcp>=2.12.0",
      "xmltodict>=1.0.0",
      "lxml>=6.0.0",
      "huggingface_hub>=0.34.0",
      "rcsb-api>=1.4.0",
      "sentence-transformers>=5.1.0",
      "fitz>=0.0.1.dev2",
      "pandas>=2.2.3",
      "admet-ai>=1.2.0",
      "pdfplumber>=0.11.0",
      "playwright>=1.55.0",
      "faiss-cpu>=1.12.0",
      "flask>=2.0.0",
      "chemprop==1.6.1",
      "aiohttp"
  ]
  requires-python = ">=3.10"
  readme = "README.md"
  
  [project.optional-dependencies]
  dev = [
      "pytest>=6.0",
      "pytest-cov>=2.0",
      "pytest-timeout>=2.3.1",
      "pytest-mock>=3.14.0",
      "requests-mock>=1.12.1",
      "black>=22.0",
      "flake8>=4.0",
      "pre-commit>=2.0",
  ]
  docs = [
      "sphinx>=4.0",
      "furo>=2024.8.6",
      "pydata-sphinx-theme>=0.15.0",
      "sphinx-rtd-theme>=1.0",
      "shibuya>=0.10.0",
      "myst-parser>=0.18",
      "linkify-it-py>=2.0.0",
      "sphinx-autobuild>=2021.3.14",
      "sphinx-copybutton>=0.5.0",
      "sphinx-tabs>=3.2.0",
      "sphinx-design>=0.3.0",
      "sphinx-notfound-page>=0.8",
      "sphinx-autodoc-typehints>=1.12.0",
  ]
  embedding = [
      "sentence-transformers>=5.1.0",
      "faiss-cpu>=1.12.0",
      "huggingface_hub>=0.34.0",
  ]
  graph = [
      "flask>=2.0.0",
      "matplotlib>=3.5.0",
      "plotly>=5.0.0",
      "scipy>=1.7.0",
      "pydot>=1.4.0",
      "pygraphviz>=1.7",
      "jinja2>=3.0.0",
      "werkzeug>=2.0.0",
  ]
  all = [
      "tooluniverse[dev,docs,graph]",
  ]
  
  [project.urls]
  Homepage = "https://github.com/mims-harvard/ToolUniverse"
  
  [project.scripts]
  tooluniverse-mcp = "tooluniverse.smcp_server:run_http_server"
  tooluniverse-mcp-claude = "tooluniverse.smcp_server:run_stdio_server"
  tooluniverse-smcp = "tooluniverse.smcp_server:run_smcp_server"
  tooluniverse-smcp-server = "tooluniverse.smcp_server:run_http_server"
  tooluniverse-smcp-stdio = "tooluniverse.smcp_server:run_stdio_server"
  generate-mcp-tools = "tooluniverse.generate_mcp_tools:run_generate"
  # Human Expert Feedback System
  tooluniverse-expert-feedback = "tooluniverse.remote.expert_feedback.human_expert_mcp_tools:main"
  tooluniverse-expert-feedback-web = "tooluniverse.remote.expert_feedback.start_web_interface:main"
  # Literature Search Web UIs
  tooluniverse-regular-search = "tooluniverse.web_tools.literature_search_ui.regular_search_app:main"
  tooluniverse-agent-search = "tooluniverse.web_tools.literature_search_ui.agent_search_app:main"
  tooluniverse-wide-research = "tooluniverse.web_tools.literature_search_ui.simple_app:main"
  
  [tool.setuptools.packages.find]
  where = ["src"]
  
  [tool.setuptools.package-data]
  tooluniverse = ["data/*", "data/packages/*"]
  
  [tool.uv]
  dev-dependencies = [
      "tooluniverse[dev,embedding]",
  ]
  
  [tool.uv.sources]
  tooluniverse = { workspace = true }
  