Skip to main content
Glama

ToolFront MCP Server

by kruskal-labs
pyproject.toml4.57 kB
[project] name = "toolfront" version = "0.2.14" description = "ToolFront helps you retrieve information from large databases, APIs, and documents with AI." readme = "README.md" authors = [ {name = "Esteban Safranchik", email = "esteban@kruskal.ai"}, {name = "Gavin Chan", email = "gavin@kruskal.ai"} ] license = {text = "MIT"} classifiers = [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Operating System :: OS Independent", ] requires-python = ">=3.11" dependencies = [ "click>=8.1.8", "httpx>=0.28.1", "mcp[cli]>=1.9.0", "numpy>=1.24.0", "pandas>=2.2.3", "pydantic>=2.11.4", "pytest>=8.3.5", "python-decouple>=3.8", "openapi-spec-validator>=0.7.2", "jsonref>=1.1.0", "pydantic-ai>=0.4.2", "yarl>=1.20.1", "rich>=14.0.0", "sqlparse>=0.5.3", "tabulate>=0.9.0", "ibis-framework>=10.6.0", "pyarrow<19.0.0", "executing>=2.2.0", ] [project.scripts] toolfront = "toolfront.mcp:main" [tool.setuptools] include-package-data = true [tool.setuptools.packages.find] where = ["src"] include = ["toolfront*"] [tool.setuptools.package-data] "toolfront" = ["instructions/*.txt"] [project.optional-dependencies] test = [ "pytest>=7.0.0", "pytest-asyncio>=0.21.0", ] dev = [ "pre-commit>=3.0.0", "ruff>=0.1.0", "mkdocs-material[imaging]>=9.6.16", "mkdocstrings[python]>=0.30.0", "markitdown[docx,pdf,pptx,xls,xlsx]>=0.1.2", ] bigquery = [ "ibis-framework[bigquery]>=10.6.0", ] clickhouse = [ "ibis-framework[clickhouse]>=10.6.0", ] databricks = [ "ibis-framework[databricks]>=10.6.0", ] druid = [ "ibis-framework[druid]>=10.6.0", ] duckdb = [ "ibis-framework[duckdb]>=10.6.0", ] flink = [ "ibis-framework[flink]>=10.6.0", ] mssql = [ "ibis-framework[mssql]>=10.6.0", ] mysql = [ "ibis-framework[mysql]>=10.6.0", ] oracle = [ "ibis-framework[oracle]>=10.6.0", ] postgres = [ "ibis-framework[postgres]>=10.6.0", ] risingwave = [ "ibis-framework[risingwave]>=10.6.0", ] snowflake = [ "ibis-framework[snowflake]>=10.6.0", ] sqlite = [ "ibis-framework[sqlite]>=10.6.0", ] trino = [ "ibis-framework[trino]>=10.6.0", ] pyspark = [ "ibis-framework[pyspark]>=10.6.0", ] all = [ "toolfront[bigquery]", "toolfront[clickhouse]", "toolfront[databricks]", "toolfront[druid]", "toolfront[duckdb]", "toolfront[mssql]", "toolfront[mysql]", "toolfront[oracle]", "toolfront[postgres]", "toolfront[pyspark]", "toolfront[risingwave]", "toolfront[snowflake]", "toolfront[sqlite]", "toolfront[trino]", ] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [dependency-groups] dev = [ "pre-commit>=4.2.0", "pytest-asyncio>=0.26.0", "ruff>=0.11.13", ] [tool.ruff] line-length = 120 indent-width = 4 target-version = "py311" [tool.ruff.lint] # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. select = [ "E4", # Import errors "E7", # Statement errors "E9", # Runtime errors "F", # Pyflakes "I", # isort "N", # pep8-naming "UP", # pyupgrade "B", # flake8-bugbear "A", # flake8-builtins "C4", # flake8-comprehensions "T20", # flake8-print "SIM", # flake8-simplify "PTH", # flake8-use-pathlib ] ignore = [ "T201", # Allow print statements "N806", # Allow non-lowercase variable names in functions (for pandas) "A003", # Allow builtin attribute shadowing (common with 'type', 'id', etc.) "N805", # Allow non-self first arg in class methods (for Pydantic validators) "N818", # Allow exception names without Error suffix "B008", # Allow function calls in argument defaults (common in FastAPI/Pydantic) "B904", # Allow exception raises without explicit chaining (for now) ] # Allow fix for all enabled rules (when `--fix`) is provided. fixable = ["ALL"] unfixable = [] # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.pytest.ini_options] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "function" testpaths = ["tests"] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] markers = [ "asyncio: mark test as an async test", ]

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kruskal-labs/toolfront'

If you have feedback or need assistance with the MCP directory API, please join our Discord server