mcp fresha
MCP(模型上下文协议)服务器,用于通过Snowflake访问Fresha数据连接器。通过Claude等人工智能助手直接查询您的Fresha业务数据。
作者鲍里斯·乔尔杰维奇
快速开始
npm install -g mcp-fresha配置
克劳德桌面
增添 ~/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"
}
}
}
}重要:如果您的密码包含 #,用引号括起来: "password#123"
从Fresha数据连接器设置中获取这些凭据。
特性
- 实时数据访问:通过Snowflake直接连接到您的Fresha业务数据
- 灵活查询:支持日期范围、自定义筛选器、排序和分页
- 智能日期解析:自然语言日期输入,如“昨天”、“上周”、“本月”
- 全面的模式发现:自动发现所有可用表及其结构
- 类型安全操作:使用TypeScript构建,具有可靠性和可维护性
- 模拟模式:当Snowflake凭据不可用时,使用示例数据的开发模式
- 结构化日志记录:使用Pino进行详细的日志记录,用于调试和监控
可用工具
list_fresha_reports
列出Fresha数据库中所有可用的表和视图。
示例:“显示所有表”
get_fresha_report
使用灵活的筛选选项从任何Fresha报告/表中获取数据。
参数:
report_name(必填)-表格名称(例如,现金流、销售、预订)start_date(可选)-开始日期筛选器(YYYY-MM-DD)end_date(可选)-结束日期筛选器(YYYY-MM-DD)limit(可选)-要返回的最大记录数(默认值:1000)order_by(可选)-要排序的列(例如,“SALE_DATE DESC”)filters(可选)-附加过滤器作为键值对
例子:
- “获取昨天的现金流”
- “按预约次数显示前10名客户”
- “获取本周的所有预订”
- “显示123号位置的销售额”
可用表
您的Fresha数据库包括:
CASH_FLOW-交易级现金流数据BOOKINGS-服务预订和预约CLIENTS-客户信息和历史PAYMENTS-付款交易SALES-销售记录LOCATIONS-营业地点TEAM_MEMBERS-员工信息- 还有更多。..
故障排除
认证失败
- 确保来自Fresha数据连接器的凭据完全匹配
- 检查密码中的特殊字符(尤其是
#) - 移除
https://来自帐户URL(如果存在)
未返回数据
- 验证您是否具有正确的数据库和架构名称
- 检查Fresha数据连接器是否处于活动状态(每天限制8小时)
安全
最佳实践
- 环境变量:所有敏感凭据都存储为环境变量,从不存储在代码中
- 无凭据记录:服务器会自动在日志中屏蔽Snowflake凭据
- 只读访问:专为只读操作而设计,以防止意外的数据修改
- 输入验证:所有工具输入都使用Zod模式进行验证,以防止注入攻击
- 参数化查询:所有数据库查询都使用参数化语句来防止SQL注入
- 会话管理:每个连接都通过自动清理进行了适当的管理
数据保护
- 凭据永远不会在错误消息或日志中公开
- 模拟模式可防止在开发过程中意外访问生产数据
- 所有数据库连接都使用Snowflake的安全协议进行加密
发展
# 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建筑
该项目遵循干净的架构模式:
- 控制器:用于处理数据查询和转换的业务逻辑
- 服务:具有Snowflake连接管理的数据访问层
- 工具:向AI助手公开功能的MCP工具定义
- 有用:用于日志记录、日期解析和错误处理的共享实用程序
贡献
欢迎投稿!请确保:
- 所有代码都通过linting(
npm run lint) - TypeScript类型定义正确
- 新功能包括适当的错误处理
- 遵循安全最佳实践
许可证
麻省理工学院
