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.3.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.3.tar.gz.
File metadata
- Download URL: smarthub_extension-0.1.3.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 |
efa7f74d2ea89a994a9f57ee2babef8f3d5d6f463fa64b8f2ddc0a2e649d993c
|
|
| MD5 |
f7f0d2545c6450dcbfcaa537f9f3b5c1
|
|
| BLAKE2b-256 |
0c59e0168421b090de49aaa6fa87f1d4227b7991b2397f06371ef4a03ca0b979
|
File details
Details for the file smarthub_extension-0.1.3-py3-none-any.whl.
File metadata
- Download URL: smarthub_extension-0.1.3-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 |
815363075ca6c741f03fda11280b6d485fa29b29637dab71313465128a6c6285
|
|
| MD5 |
8713953bbb6d358e0f8c08e86087af4d
|
|
| BLAKE2b-256 |
cb748aa268ea1f209c15b20d81adc15ed56c79f1e60815c319f06b0d9082f478
|