README.md•3.04 kB
## RentSmart MCP
This repository contains a minimal Multi‑Channel Plugin (MCP) service for **RentSmart**,
an AI‑powered WhatsApp bot that generates rental agreements and receipts on the fly.
### Features
* **/validate** – Performs a simple bearer token check and returns a dummy phone number.  
  Update the token in `app/main.py` to secure your deployment.
* **/tool/generate_agreement** – Accepts rental agreement details, fills a text template,
  converts it into a PDF and serves it back via a public link under `/files/agreements`.
* **/tool/generate_rent_receipt** – Creates a PDF rent receipt with the specified
  particulars and exposes it under `/files/receipts`.
* **/tool/stamp_duty_info** – Returns state‑specific stamp duty information for quick
  reference.  A default set of values has been provided for demonstration and can
  easily be expanded to include all Indian states.
* **/health** – A simple heartbeat endpoint returning `{"status":"ok"}`.
### Directory Structure
```
rentsmart_mcp/
├── app/
│   ├── __init__.py
│   ├── main.py             # FastAPI application
│   └── templates/
│       ├── agreement_template.txt
│       └── receipt_template.txt
├── files/                  # Generated PDFs will be saved here
├── requirements.txt        # Python dependencies
└── README.md
```
### Quick Start
```bash
python -m venv .venv
source .venv/bin/activate  # or .venv\Scripts\activate on Windows
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000
```
Navigate to <http://localhost:8000/health> to verify the server is running.
### Deployment
Deploy on any platform that supports FastAPI: Render, Railway, Vercel or your own
server.  Make sure to expose the service over HTTPS for compatibility with Puch AI.
### Puch AI Integration
After deployment, connect your MCP service to Puch AI using the `/mcp connect` command
in your WhatsApp chat.  Replace the URL and token below with your deployment:
```
/mcp connect https://YOUR-DEPLOYED-URL your_test_token
```
On successful connection you’ll see the available tools (`generate_agreement`,
`generate_rent_receipt` and `stamp_duty_info`).
### Customisation
* **Templates** – Edit the files in `app/templates` to customise the layout and wording
  of your generated agreements and receipts.  Placeholders in curly braces
  (e.g. `{landlord}`, `{rent}`) will be replaced with the values supplied in
  the JSON request.
* **Stamp Duty Data** – Modify the `STAMP_DUTY_DATA` dictionary in
  `app/main.py` to reflect accurate state‑wise stamp duty charges and links.  This
  example contains a few states for illustration.
* **Token Validation** – Change the `VALID_TOKEN` constant in `app/main.py` to
  enforce your own bearer token.  In production you should implement a proper
  authentication mechanism.
### License
This starter is provided as‑is for hackathon or educational use.  Feel free to
modify and extend it to suit your needs.