Snowflake MCP Agent System
Snowflake MCP Agent System
Enhanced MCP Snowflake server with LangGraph agentic architecture for intelligent data analysis and querying.
Overview
This system provides:
MCP Server: 20+ specialized tools for Snowflake data operations
Agentic Client: LangGraph-powered multi-agent system with few-shot learning
Session Management: State persistence and intelligent caching
Training Capabilities: Continuous improvement through user feedback
Prerequisites
Python 3.12+
Snowflake account with appropriate permissions
JWT token for authentication (if using corporate endpoints)
Installation
pip install -e .Configuration
Create a .env file with your Snowflake credentials:
# Required
SNOWFLAKE_USER=your_username
SNOWFLAKE_ACCOUNT=your_account
SNOWFLAKE_WAREHOUSE=your_warehouse
SNOWFLAKE_DATABASE=your_database
SNOWFLAKE_SCHEMA=your_schema
# Authentication (choose one)
SNOWFLAKE_PASSWORD=your_password
# OR
SNOWFLAKE_PRIVATE_KEY_PATH=path/to/private_key.pem
SNOWFLAKE_PRIVATE_KEY_PASSPHRASE=optional_passphrase
# Optional
SNOWFLAKE_ROLE=your_role
JWT_TOKEN=your_jwt_tokenQuick Start
1. Start the MCP Server
# Terminal 1
python -m mcp_code serverServer runs on http://127.0.0.1:8000/mcp
2. Run the Agentic Client
# Terminal 2
python -m mcp_code --mode interactiveUsage Modes
Interactive Mode (Default)
python -m mcp_codeChat interface with multi-agent responses and few-shot learning.
Single Query Mode
python -m mcp_code --mode query --query "What are the top 5 most used tables?"Batch Processing Mode
python -m mcp_code --mode batch --file queries.txtTraining Mode
python -m mcp_code --mode trainCollects positive feedback examples for agent improvement.
Agent Archetypes
The system includes specialized agents:
Analyst: EDA, statistical analysis, trend identification
Lineage Expert: Data flow tracing, impact analysis
Usage Auditor: Resource monitoring, anomaly detection
Query Optimizer: Performance analysis, optimization recommendations
Metadata Curator: Schema documentation, data cataloging
Data Sources
The system analyzes six Snowflake datasets:
AAI_USAGE: User access patterns and resource consumption
AAI_LINEAGE: Source-to-target table mappings
AAI_MD: Table metadata and data product information
AAI_PROFILER: Column-level statistics and data quality metrics
AAI_ACCESS: Role-based permissions and access control
AAI_SQL_ANALYZER: Query execution metadata and performance metrics
API Reference
Core Tools
list_databases()- List available databaseslist_schemas(database)- List schemas in databaselist_tables(database, schema)- List tables in schemarun_query(sql)- Execute SELECT queries
Analysis Tools
analyze_usage(time_period, business_unit)- Usage pattern analysisget_lineage(table_name, direction, depth)- Data lineage tracingidentify_heavy_users(metric, top_n)- Resource consumption analysisanalyze_slow_queries(threshold_seconds)- Performance bottleneck identificationget_table_metadata(table_name)- Comprehensive metadata retrievalrecommend_data_products(analysis_scope)- Data product recommendations
Session Management
save_feedback(session_id, query, response, feedback_type)- Training data collectionget_session_history(session_id)- Query history and statistics
Architecture
┌─────────────────┐ HTTP/MCP ┌──────────────────┐
│ Agentic Client │ ◄───────────► │ MCP Server │
│ (LangGraph) │ │ (FastMCP) │
└─────────────────┘ └──────────────────┘
│ │
│ │
▼ ▼
┌─────────────────┐ ┌──────────────────┐
│ Few-Shot │ │ Snowflake │
│ Training Store │ │ Database │
└─────────────────┘ └──────────────────┘Error Handling
Common issues and solutions:
Connection Failed: Verify Snowflake credentials in
.envJWT Token Invalid: Update
JWT_TOKENin environmentImport Errors: Run
pip install -e .to install dependenciesPort 8000 Busy: Server already running or port in use
Development
Project Structure
mcp_code/
├── __init__.py # Main entry point and CLI
├── server.py # Enhanced MCP server with tools
├── client_refactored.py # LangGraph agentic client
├── db_client.py # Snowflake database client
├── config.py # Configuration management
├── query_utils.py # Query analysis utilities
└── training_examples.json # Few-shot training dataAdding New Agents
Create agent class inheriting from
BaseAgentDefine
_get_base_prompt()methodAdd corresponding MCP tools in
server.pyUpdate routing logic in
client_refactored.py
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/silverknight404/mcp_code2'
If you have feedback or need assistance with the MCP directory API, please join our Discord server