Squirrels - SDK for Data Analytics API & MCP Server
Project description
Squirrels
Squirrels is an API framework that lets you create REST APIs for dynamic data analytics!
Documentation: https://docs.pysquirrels.com
Source Code: https://github.com/squirrels-analytics/squirrels
Table of Contents
Main Features
Here are a few of the things that Squirrels can do:
- Connect to any database by specifying its SQLAlchemy url (in
squirrels.yml) or by using its native connector library in python (inconnections.py). - Configure API routes for datasets (in
squirrels.yml) without writing code. - Configure parameter widgets (types include single-select, multi-select, date, number, etc.) for your datasets (in
parameters.py). - Use SQL templates (templated with Jinja, like dbt) or python functions (that return a Python dataframe in polars or pandas) to define dynamic query logic based on parameter selections.
- Query multiple databases and join the results together in a final view in one API endpoint/dataset!
- Test your API endpoints with Squirrels Studio or by a command line that generates rendered sql queries and results as files (for a given set of parameter selections).
- Define User model (in
user.py) and authorize privacy scope per dataset (insquirrels.yml). The user's attributes can even be used in your query logic! - Serve dataset metadata and results to AI agents via MCP (Model Context Protocol)
Quick Start
In a new virtual environment, install squirrels. Then, in your project directory, activate the virtual environment and run the following commands:
sqrl new --use-defaults --curr-dir
sqrl build
To run the API server, simply run:
sqrl run
License
Squirrels is released under the Apache 2.0 license.
See the file LICENSE for more details.
Contributing to Squirrels
The sections below describe how to set up your local environment for Squirrels development and run unit tests. A high level overview of the project structure is also provided.
Setup
This project requires the python package manager uv with Python 3.10 or above. Information on setting up uv can be found at: https://docs.astral.sh/uv/getting-started/installation/.
Then, to install all dependencies in a virtual environment, run:
uv sync -p 3.10
And activate the virtual environment with:
source .venv/bin/activate
To confirm that the setup worked, run the following to show the help page for all Squirrels CLI commands:
sqrl -h
Project Structure
From the root of the git repo, the source code can be found in the squirrels folder and unit tests can be found in the tests folder.
The documentation contents are in the docs/ folder and are built with Mintlify.
To understand what a specific Squirrels command is doing, start from the _command_line.py file as your entry point.
The library version is maintained in both the pyproject.toml and the squirrels/_version.py files.
Testing
Run uv run pytest. Or if you have the virtual environment activated, simply run pytest.
Documentation
Install the Mintlify CLI to preview your documentation changes locally. To install, use the following command:
npm i -g mint
Run the following command in the docs/ folder, where the docs.json is located:
mint dev
View your local preview at http://localhost:3000.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file squirrels-0.6.0.post0.tar.gz.
File metadata
- Download URL: squirrels-0.6.0.post0.tar.gz
- Upload date:
- Size: 178.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c803290f5068f81eac89f30a87d50882532525f3521a3d0722202a9ee1fa5d1
|
|
| MD5 |
b8e20f61b72bc15e4369550e06b66e1a
|
|
| BLAKE2b-256 |
b884306b7287b43a9638735d53e725f9938f1748456560e24d1bcf06fa992e21
|
File details
Details for the file squirrels-0.6.0.post0-py3-none-any.whl.
File metadata
- Download URL: squirrels-0.6.0.post0-py3-none-any.whl
- Upload date:
- Size: 215.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45fcf99526a311d4b73e3f549992f110fbfd24a940d72aa5070f4015935f1811
|
|
| MD5 |
59d60f3c44de69bd815ea43cef163539
|
|
| BLAKE2b-256 |
be69489b3c82d21de0a7e04f1a42b8162514c03aae9b39d9f11bc0c29e765c01
|