MCP-Server

Soham-bakshi/MCP-Server

3.2

If you are the rightful owner of MCP-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Tax Alert Chatbot is an interactive Streamlit-based application that connects to a custom MCP server, allowing users to manage tax alerts stored in a local SQLite database.

Tools
  1. query

    Run SELECT queries on the tax_alerts table

  2. insert

    Insert a new tax alert into the database

  3. update

    Update existing tax alerts based on a condition

  4. delete

    Delete tax alerts using WHERE conditions

  5. schema_info

    Return schema and column info of the table

πŸ“Š 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


πŸš€ 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

LayerTools / Frameworks
FrontendStreamlit, LangGraph, LangChain
BackendFastMCP, SQLite
LLM ProviderGoogle Gemini 1.5 Flash / Pro (via LangChain)
TransportSSE (Server-Sent Events) or STDIO
RuntimePython 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-chatbot

2. Create and Activate Virtual Environment

python -m venv venv
source venv/bin/activate         # On Windows: venv\Scripts\activate

3. 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 NameDescription
query(sql)Run SELECT queries on the tax_alerts table
insert(...)Insert a new tax alert into the database
update(...)Update existing tax alerts based on a condition
delete(...)Delete tax alerts using WHERE conditions
schema_info()Return schema and column info of the table

▢️ Running the Server

python server.py

or

python server.py --transport stdio

Make sure your .env contains a valid path to dummy_tax_alerts.db.

πŸ’¬ Running the Client (Chat UI)

streamlit run client.py

It 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.