Skip to content
Build your own
2 views·0 installs·May 23, 2026
Shared stack plan · /s/ui0S9UvC

Connect Claude to my Snowflake database and Slack for daily reports

I need to connect Claude to my Snowflake database and Slack for daily reports

Install with one command
$ npx mcpflix install ui0S9UvC

Writes claude_desktop_config.json, prompts for any required API keys, and drops skills into ~/.claude/skills/. Backed up automatically.

What this stack is

What you're building

  • Entities: Snowflake database (1 instance), Slack workspace (daily report channel), Claude Code agent (orchestrator), Daily report generation workflow
  • Constraints: Daily scheduling requirement, Human-in-the-loop for report approval before Slack post
  • Out of scope: Custom Snowflake connector (no official MCP exists), Advanced Slack formatting (threads, blocks beyond text), Report caching or versioning, Multi-workspace Slack support

Why this stack fits ask-slack-mcp-server enables human-in-the-loop report approval via Slack messages before posting. loop skill automates daily scheduling. You'll need a custom Snowflake integration since no catalog MCP covers Snowflake; we'll use Python + snowflake-connector-python in a local script that Claude orchestrates.

Architecture

Loading diagram…

MCP Servers

Slack MCP (ask-slack)

ask-slack-mcp-server

Enables Claude to send report drafts to Slack and wait for human approval before posting final reports — critical for daily report workflows.

Install everything in one go

Copy a single setup guide that includes the MCP config and the skills installer script — paste into a doc to keep, or follow it section by section.

Implementation Plan

  1. Install Slack MCP and loop skill ⏱ 15m

Run the MCPFlix CLI to install ask-slack-mcp-server and enable the loop skill. This writes the MCP config to your Claude Code settings and activates daily scheduling. The CLI will prompt for your Slack bot token and workspace ID.

Done when:

  • Running npx mcpflix install ask-slack-mcp-server completes without errors
  • claude_desktop_config.json contains mcpServers.ask_slack entry with bot token
  • loop skill is enabled in Claude Code settings

Files: ~/.claude/claude_desktop_config.json

Accounts: Slack workspace admin access Env vars: SLACK_BOT_TOKEN

Verify:

Loading code…
  1. Create Slack bot and grant permissions ⏱ 10m

Go to api.slack.com, create a new app in your workspace, and add the chat:write and channels:read scopes. Generate a bot token and save it as SLACK_BOT_TOKEN in your environment. Invite the bot to the channel where daily reports will be posted.

Done when:

  • Slack bot token is generated and stored in environment
  • Bot has chat:write and channels:read OAuth scopes
  • Bot is invited to the target report channel

Accounts: Slack workspace (admin role)

  1. Set up Snowflake Python connector locally ⏱ 30m · • medium-risk

Install snowflake-connector-python via pip: pip install snowflake-connector-python. Create a Python script in your Claude Code project that connects to Snowflake using your account credentials (username, password, account URL). Store credentials as environment variables (SNOWFLAKE_USER, SNOWFLAKE_PASSWORD, SNOWFLAKE_ACCOUNT). The script should accept a SQL query as input and return results as JSON.

Done when:

  • snowflake_query.py accepts a SQL query string and returns JSON results
  • Script reads SNOWFLAKE_USER, SNOWFLAKE_PASSWORD, SNOWFLAKE_ACCOUNT from environment
  • Running python scripts/snowflake_query.py 'SELECT COUNT(*) FROM table' returns valid JSON

Files: scripts/snowflake_query.py

Env vars: SNOWFLAKE_USER, SNOWFLAKE_PASSWORD, SNOWFLAKE_ACCOUNT Services: Python 3.8+, pip

Verify:

Loading code…
  1. Create daily report generation prompt ⏱ 30m

Write a Claude Code prompt that (1) calls your Python script to fetch data from Snowflake, (2) formats the results into a readable report, (3) sends the draft to Slack via ask-slack-mcp-server, and (4) waits for user approval. Use the /loop skill to schedule this prompt to run daily at your preferred time (e.g., 9 AM).

Done when:

  • Prompt calls python scripts/snowflake_query.py with a meaningful business query
  • Prompt formats results into a readable Markdown report
  • Prompt sends draft to Slack and waits for approval emoji reaction
  • /loop command schedules the prompt to run daily

Files: prompts/daily_report.md

  1. Test end-to-end workflow ⏱ 15m

Manually trigger the daily report prompt in Claude Code to verify the full flow: Snowflake query → report generation → Slack draft → approval. React to the Slack message with an emoji (e.g., ✅) to trigger the final post. Confirm the report appears in the target channel.

Done when:

  • Snowflake query executes and returns data without errors
  • Report draft appears in Slack within 30 seconds
  • Reacting with ✅ emoji triggers the final post to the channel
  • Final report is formatted and readable in Slack

Verify:

Loading code…
  1. Schedule daily report with /loop ⏱ 5m

Once testing passes, run /loop /daily_report 09:00 America/New_York (or your preferred time zone) in Claude Code. This activates the recurring daily schedule. The loop skill will invoke the prompt at the specified time each day.

Done when:

  • /loop command executes without errors
  • Claude Code shows the scheduled task in the task list
  • First scheduled run occurs at the specified time

Build your own — or save this one

Describe your project and our AI will design a complete stack — architecture diagram, MCP servers, skills, and step-by-step setup. Sign up free to save and share your own.