Hickey_MCP
Personal MCP (Model Context Protocol) server built with FastMCP for Tableau and Snowflake integration.
Features
Snowflake Tools
- execute_snowflake_query: Execute SQL queries and retrieve results
- list_snowflake_databases: List all available databases
- list_snowflake_tables: List tables in a specific database and schema
Tableau Tools
- list_tableau_workbooks: List all workbooks on Tableau Server
- get_tableau_workbook_views: Get all views in a specific workbook
- list_tableau_datasources: List all datasources on Tableau Server
- refresh_tableau_datasource: Trigger a refresh of a datasource
Setup
1. Clone the repository
git clone https://github.com/YOUR_USERNAME/Hickey_MCP.git
cd Hickey_MCP
2. Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
3. Install dependencies
pip install -r requirements.txt
4. Configure environment variables
Copy .env.example to .env and fill in your credentials: ``bash cp .env.example .env ``
Edit .env with your actual credentials:
- Snowflake account, user, password, warehouse, database, and schema
- Tableau server URL, username, password, and site ID
5. Run the server
python hickey_mcp_server.py
Usage with Claude Desktop
Add this configuration to your Claude Desktop config file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"hickey-mcp": {
"command": "python",
"args": ["C:/Users/kylec/OneDrive - CHG Healthcare/Hickey_MCP/hickey_mcp_server.py"]
}
}
}
Restart Claude Desktop after adding this configuration.
Security Notes
- Never commit your
.envfile or any credentials to the repository - The
.gitignorefile is configured to exclude sensitive files - Keep your Snowflake and Tableau credentials secure
- This is a personal server - do not share credentials or expose the server publicly
Example Queries
Once connected, you can ask Claude to:
- "List all databases in Snowflake"
- "Show me the tables in the ANALYTICS schema"
- "Execute this query on Snowflake: SELECT * FROM customers LIMIT 10"
- "List all Tableau workbooks"
- "Get the views from workbook ID xyz123"
- "Refresh datasource abc456"
Development
To add more tools, use the @mcp.tool() decorator in hickey_mcp_server.py:
@mcp.tool()
def your_new_tool(param: str) -> str:
"""
Tool description
Args:
param: Parameter description
Returns:
Return value description
"""
# Your implementation
pass
License
Personal use only.






