Fresha

by 199-biotechnologies

Not rated
GitHub

About

Access the Fresha Data Connector through Snowflake.

Details

Author
199-biotechnologies
Categories
Database, Other
Tags
#snowflake, #analytics

Setup

Install Fresha in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/199-biotechnologies/mcp-fresha

Follow the installation instructions in the repository README, then restart your MCP client.

MCP (Model Context Protocol) server for accessing Fresha Data Connector via Snowflake. Query your Fresha business data directly through AI assistants like Claude.

Add to~/Library/Application Support/Claude/claude_desktop_config.json:

{ "mcpServers": { "fresha": { "command": "mcp-fresha", "env": { "SNOWFLAKE_ACCOUNT": "your-account.snowflakecomputing.com", "SNOWFLAKE_USER": "FRESHA_DATA_XXX_XXX", "SNOWFLAKE_PASSWORD": "your-password", "SNOWFLAKE_DATABASE": "FRESHA_DATA_CONNECTOR", "SNOWFLAKE_SCHEMA": "FRESHA_DATA_XXX", "SNOWFLAKE_WAREHOUSE": "FRESHA_DATA_XXX" } } } }

Important: If your password contains#, wrap it in quotes:"password#123"

Get these credentials from your Fresha Data Connector settings.

- Real-time Data Access: Direct connection to your Fresha business data through Snowflake
- Flexible Querying: Support for date ranges, custom filters, sorting, and pagination
- Smart Date Parsing: Natural language date inputs like "yesterday", "last week", "this month"
- Comprehensive Schema Discovery: Automatic discovery of all available tables and their structures
- Type-safe Operations: Built with TypeScript for reliability and maintainability
- Mock Mode: Development mode with sample data when Snowflake credentials are not available
- Structured Logging: Detailed logging with Pino for debugging and monitoring

Lists all available tables and views in your Fresha database.

Example: "Show me all tables"

Get data from any Fresha report/table with flexible filtering options.

- report_name(required) - Name of the table (e.g., CASH_FLOW, SALES, BOOKINGS)
- start_date(optional) - Start date filter (YYYY-MM-DD)
- end_date(optional) - End date filter (YYYY-MM-DD)
- limit(optional) - Max records to return (default: 1000)
- order_by(optional) - Column to sort by (e.g., "SALE_DATE DESC")
- filters(optional) - Additional filters as key-value pairs

- "Get yesterday's cash flow"
- "Show me top 10 clients by appointment count"
- "Get all bookings for this week"
- "Show sales from location 123"

- CASH_FLOW- Transaction-level cash flow data
- BOOKINGS- Service bookings and appointments
- CLIENTS- Client information and history
- PAYMENTS- Payment transactions
- SALES- Sales records
- LOCATIONS- Business locations
- TEAM_MEMBERS- Staff information
- And more...

- Ensure credentials match exactly from Fresha Data Connector
- Check for special characters in password (especially#)
- Removehttps://from account URL if present

- Verify you have the correct database and schema names
- Check Fresha Data Connector is active (8-hour daily limit)

- Environment Variables: All sensitive credentials are stored as environment variables, never in code
- No Credential Logging: The server automatically masks Snowflake credentials in logs
- Read-Only Access: Designed for read-only operations to prevent accidental data modifications
- Input Validation: All tool inputs are validated using Zod schemas to prevent injection attacks
- Parameterized Queries: All database queries use parameterized statements to prevent SQL injection
- Session Management: Each connection is properly managed with automatic cleanup

- Credentials are never exposed in error messages or logs
- Mock mode prevents accidental production data access during development
- All database connections are encrypted using Snowflake's secure protocols

# Clone and install git clone https://github.com/199-biotechnologies/mcp-fresha.git cd mcp-fresha/fresha-mcp-server npm install # Configure environment cp .env.example .env # Edit .env with your credentials # Build and test npm run build npm test # Development mode with mock data npm run dev # Watch mode for development npm run watch # Lint and type check npm run lint npm run typecheck

The project follows a clean architecture pattern:

- Controllers: Business logic for handling data queries and transformations
- Services: Data access layer with Snowflake connection management
- Tools: MCP tool definitions that expose functionality to AI assistants
- Utils: Shared utilities for logging, date parsing, and error handling

Contributions are welcome! Please ensure:

- All code passes linting (npm run lint)
- TypeScript types are properly defined
- New features include appropriate error handling
- Security best practices are followed

A comprehensive Model Context Protocol (MCP) server for interacting with Snowflake using natural language and AI.

LangGrant turns AI data questions into reusable, governed Data Plans, joining data across multiple databases (Snowflake, Oracle, Postgres, BigQuery and more) and plugging into your MCP tools.

API-first engine and MCP server that transforms declarative YAML model definitions into optimized SQL for Postgres, Snowflake, ClickHouse, Dremio, and Databricks

An experimental MCP server to access Snowflake Cortex insights from your development environment.

Official MCP server for dbt (data build tool) providing integration with dbt Core/Cloud CLI, project metadata discovery, model information, and semantic layer querying capabilities.

Build robust data workflows, integrations, and analytics on a single intuitive platform.

Query and analyze data with MotherDuck and local DuckDB

A Python-based MCP server that connects to an Elasticsearch index with Apple HealthKit data.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.