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
mcp_smarthub-0.2.5.tar.gz
(8.0 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 mcp_smarthub-0.2.5.tar.gz.
File metadata
- Download URL: mcp_smarthub-0.2.5.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
085b5dd2386fa8d5538e4eb6c9dbff97a4e3194f0569866d14530669a4a77a47
|
|
| MD5 |
8f3ee4a733562c30d1a3649a259e9c90
|
|
| BLAKE2b-256 |
1f3d67b612d48ad14f2a7e25e6449b494a168ed3b49a7acab26df304fe3aa847
|
File details
Details for the file mcp_smarthub-0.2.5-py3-none-any.whl.
File metadata
- Download URL: mcp_smarthub-0.2.5-py3-none-any.whl
- Upload date:
- Size: 7.7 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 |
b7ffcf98cdd40951f3f7cb86ad1399751876a8d06ba128ae66809ef7a5ac3342
|
|
| MD5 |
7e8bc7d6946d8e76a28db0bcd6710ab8
|
|
| BLAKE2b-256 |
ace17f4cc37f28ddaccd7543a4db112d760b9e1c7ef3af83bc685bcc400655b4
|