Manages environment variables for API keys and database configuration
Powers the AI reasoning capabilities using Gemini 1.5 Flash and Pro models for the conversational interface
Provides the foundation for connecting to language models and structuring agent interactions
Implements the REACT-style reasoning agent framework for processing user queries and determining appropriate actions
Enables storage and retrieval of tax alert data with tools for querying, inserting, updating, and deleting records
Powers the interactive frontend chat interface that connects to the MCP server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tax Alert Chatbot MCP ServerShow me recent tax alerts for California"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π Tax Alert Chatbot (MCP-Powered)
An interactive Streamlit-based chatbot that connects to a custom MCP (Model Context Protocol) server. It allows users to query, insert, update, and delete tax alerts stored in a local SQLite database. The app uses LangGraphβs REACT agent framework with Google Gemini models and supports both SSE and STDIO transport modes.
π Project Structure
.
βββ client.py # Frontend Streamlit Chat UI
βββ server.py # MCP tool & Backend FastMCP SQLite server
βββ dummy_tax_alerts.db # SQLite database (if present)
βββ .env # Environment variables
βββ.venv # virtual environment
βββ README.md # Documentation
Related MCP server: Zendesk MCP Server
π Features
π€ Conversational interface with Google Gemini 1.5 models
π§ REACT-style reasoning agent via LangGraph
π οΈ Tool execution via MCP server
π Query, insert, update, and delete operations on tax alert data
π Real-time responses using SSE or STDIO
π οΈ Tech Stack
Layer | Tools / Frameworks |
Frontend | Streamlit, LangGraph, LangChain |
Backend | FastMCP, SQLite |
LLM Provider | Google Gemini 1.5 Flash / Pro (via LangChain) |
Transport | SSE (Server-Sent Events) or STDIO |
Runtime | Python 3.10+, venv, python-dotenv |
βοΈ Setup Instructions
1. Clone the Repository
git clone https://github.com/your-repo/tax-alert-chatbot.git
cd tax-alert-chatbot2. Create and Activate Virtual Environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate3. Install Dependencies
pip install -r requirements.txt
(Optional: Split into client/requirements.txt and server/requirements.txt if needed.)4. Configure Environment Variables
Create a .env file in the root folder:
GOOGLE_API_KEY=your_google_api_key
ALERTS_DB=dummy_tax_alerts.dbποΈ SQLite Schema
CREATE TABLE tax_alerts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
date TEXT,
jurisdiction TEXT,
topics TEXT,
summary TEXT,
full_text TEXT,
source_url TEXT,
tags TEXT,
created_at TIMESTAMP,
updated_at TIMESTAMP
);π§ MCP Server Tools
Tool Name | Description |
| Run |
| Insert a new tax alert into the database |
| Update existing tax alerts based on a condition |
| Delete tax alerts using |
| Return schema and column info of the table |
βΆοΈ Running the Server
python server.pyor
python server.py --transport stdioMake sure your .env contains a valid path to dummy_tax_alerts.db.
π¬ Running the Client (Chat UI)
streamlit run client.pyIt will automatically open streamlit localhost:8501 in your browser.
βοΈ Configuration (via Sidebar) Gemini Model: Choose between gemini-1.5-flash or gemini-1.5-pro
Server Mode: Only single server supported
Server Type: SSE or STDIO
Server URL: Required only for SSE mode
Clear Chat / Show Tool Executions: Debug & reset tools
π§ͺ Sample Interaction
User Input:
"Show me tax alerts from 2024 in California"Agent Response (Tool Call):
SELECT * FROM tax_alerts WHERE jurisdiction='California' AND date LIKE '2024%'π§Ό Debugging & Notes MCP server must be running before starting the client.
Full traceback is shown in the client if errors occur.
Ensure correct database path in .env.