Enables voice control capabilities through ElevenLabs speech-to-text API, allowing users to execute commands like refreshing catalog, showing orders, and accessing help through voice input.
Provides hand gesture recognition for interactive controls, enabling users to toggle item status, select rows, refresh views, and switch between dashboards using gestures like thumbs up, pointing, open palm, and peace sign.
Integrates with Square's API to manage catalog items and monitor orders, providing dashboard views and status updates for Square sellers in sandbox and production environments.
Qanat Goose MCP Extension
๐ Looking for the standalone prototype? See Qanat.
Qanat Goose MCP Extension is an agentโbased Goose MCPโUI extension that wraps the Square MCP Server, integrating sandbox catalog/orders with voice and gesture agents for an interactive seller dashboard.
๐๏ธ Architecture
Qanat integrates with Goose Desktop as a custom MCP-UI extension:
๐ Quick Start
Setup Environment
# Copy environment template cp env.example .env # Edit .env with your API keys # SQUARE_API_KEY=your_key_here # ELEVENLABS_API_KEY=your_key_hereInstall Dependencies
pip install -r requirements.txtRun the MCP Server
npm run dev # or python -m backend.mcp_servers.qanat_serverConnect to Goose Desktop
Add Qanat as MCP-UI extension in Goose settings
Server will run on localhost:3001
๐ Running Both Qanat Demos
There are two versions of Qanat available: Qanat (Baseline Prototype)
Standalone dashboard using Web Speech API and seeded demo data.
Runs entirely in the browser, with fallback APIs when Square is unreachable.
To run:
Clone the qanat repo.
Install dependencies (npm install).
Start the backend mock server (npm run dev).
Start the frontend (cd frontend && npm run dev).
Visit http://localhost:5173 in Chrome and allow microphone access. Qanat Goose MCP Extension (Advanced)
Goose MCPโUI extension wrapping Square MCP Server.
Integrates Square sandbox catalog/orders with voice and gesture agents.
To run:
Clone the qanat-goose-mcp repo.
Copy env.template โ .env and add your Square sandbox OAuth credentials.
Start the MCP server (npm run dev or python -m backend.mcp_servers.qanat_server).
In Goose Desktop, add Qanat as an MCPโUI extension with endpoint http://localhost:3001.
Interact via voice, gesture, or UI buttons.
๐ Project Structure
๐ฏ MVP Features
Catalog Dashboard: View and manage Square catalog items
Orders Dashboard: Monitor recent orders and status updates
Voice Control: "Refresh catalog" command via ElevenLabs
Gesture Control: Toggle item status with thumb-up gesture via MediaPipe
Interactive UI: Clickable tables and action buttons in Goose Desktop
๐ ๏ธ Development
See docs/PROJECT_BOARD.md for detailed development tasks and timeline.
Key Components
MCP-UI Server:
backend/mcp_servers/qanat_server.pySquare Integration:
backend/services/Voice Agent: Uses ElevenLabs for speech-to-text
Gesture Agent: Uses MediaPipe for hand gesture recognition
Configuration Files
config/extensions/square_mcp.json- Square API integration configconfig/extensions/qanat_mcp_ui.json- UI component definitionsconfig/extensions/elevenlabs_voice.json- Voice command mappingsconfig/extensions/mediapipe_gesture.json- Gesture recognition setup
๐ง Scripts
๐ Environment Variables
Required variables (copy from env.example):
SQUARE_API_KEY- Your Square API keySQUARE_ENVIRONMENT- sandbox/productionELEVENLABS_API_KEY- ElevenLabs API key for voice featuresMEDIAPIPE_CONFIDENCE_THRESHOLD- Gesture detection sensitivity
๐ฎ Usage
Voice Commands
"Refresh catalog" - Reload catalog items
"Show orders" - Display recent orders
"Help" - Show available commands
Gesture Controls
๐ Thumb up - Toggle item active/inactive status
๐ Point - Select table row
โ Open palm - Refresh current view
โ๏ธ Peace sign - Switch catalog/orders view
๐งช Testing
๐ License
MIT License - see LICENSE file for details.
Built with โค๏ธ for Square sellers using Goose Desktop
Contact
Reach me here or on Discord: @professordnyc
This server cannot be installed