SmartHub MCP extension for Goose
Project description
SmartHub MCP Extension
A natural language interface for SmartHub data and portfolio management.
Features
- Natural language queries for merchant data
- Comprehensive merchant information lookup
- AM ownership and team data
- Business relationship mapping
- Integration with Goose AI assistant
Installation
- Clone the repository:
git clone git@github.com:squareup/smarthub-extension.git
cd smarthub-extension
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -e ".[test,dev]"
Configuration
- Set up environment variables:
export SNOWFLAKE_USER="your_username"
export SNOWFLAKE_ACCOUNT="your_account"
export SNOWFLAKE_ROLE="your_role"
export SNOWFLAKE_WAREHOUSE="your_warehouse"
- Or create a configuration file:
# config.py
config = {
"snowflake_user": "your_username",
"snowflake_account": "your_account",
"snowflake_role": "your_role",
"snowflake_warehouse": "your_warehouse",
"log_file": "/path/to/log/file.log",
"debug": False
}
Example Queries
Basic Merchant Lookup
# Look up merchant by token
result = await get_merchant_info("MLM7X617NKATG")
print(f"Business Name: {result['summary']['business_name']}")
print(f"Current AM: {result['summary']['current_am']}")
# Look up merchant by business ID
result = await get_merchant_info("302718489")
print(f"Merchant Token: {result['summary']['merchant_token']}")
print(f"AM Team: {result['summary']['am_team']}")
List Available Tables
# Get all available tables
result = await list_available_tables()
for table in result["tables"]:
print(f"Table: {table['name']} in {table['schema']}")
Test Connection
# Verify Snowflake connection
result = await test_snowflake_connection()
if result["status"] == "success":
print(f"Connected as role: {result['role']}")
else:
print(f"Connection failed: {result['message']}")
Development
Running Tests
# Run all tests with coverage
pytest tests/ -v --cov=smarthub_extension
# Run specific test file
pytest tests/test_server.py -v
# Run tests and generate coverage report
pytest tests/ -v --cov=smarthub_extension --cov-report=html
Code Quality
# Run linter
ruff check .
# Run type checker
mypy smarthub_extension
# Format code
black .
Creating a Release
- Update version in
pyproject.toml - Create and push a tag:
git tag -a v0.1.2 -m "Release version 0.1.2"
git push origin v0.1.2
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
License
MIT License - see LICENSE for details
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
smarthub_extension-0.1.4.tar.gz
(10.4 kB
view details)
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 smarthub_extension-0.1.4.tar.gz.
File metadata
- Download URL: smarthub_extension-0.1.4.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa21ad9a08b146459ce875d72399b5ab13835423635f679e127eff07b50db879
|
|
| MD5 |
3fa2148c26562bc42f4d75d72ee6982d
|
|
| BLAKE2b-256 |
dbb518bec3845551a2bd0dda1af43b8d852a9b773e666aad796fe48a39ffdc9b
|
File details
Details for the file smarthub_extension-0.1.4-py3-none-any.whl.
File metadata
- Download URL: smarthub_extension-0.1.4-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c51fe3926ba756dc5ea96a5ec3af03b604c9a6f8c075dfde5decf13b5252c6f
|
|
| MD5 |
f1c20f79fa20afc22fabec6df491c3e9
|
|
| BLAKE2b-256 |
c86028816c18cb9cf04f75a45bf3485c27809708f5b7fd87ba11f674fd0dbcba
|