finance-intelligence-mcp 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ronit
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,278 @@
1
+ Metadata-Version: 2.4
2
+ Name: finance-intelligence-mcp
3
+ Version: 0.1.0
4
+ Summary: A production-ready Model Context Protocol (MCP) server for private personal finance management.
5
+ Author-email: Ronit Rajput <ronitrajput182005@gmail.com>
6
+ License: MIT
7
+ Keywords: mcp,fastmcp,finance,postgresql,ai,llm
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: License :: OSI Approved :: MIT License
10
+ Classifier: Operating System :: OS Independent
11
+ Requires-Python: >=3.10
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: asyncpg>=0.31.0
15
+ Requires-Dist: fastmcp>=3.4.2
16
+ Requires-Dist: sqlalchemy[asyncio]>=2.0.51
17
+ Requires-Dist: python-dotenv>=1.0.1
18
+ Requires-Dist: matplotlib>=3.8.0
19
+ Requires-Dist: openpyxl>=3.1.2
20
+ Dynamic: license-file
21
+
22
+ # Finance Intelligence MCP Server
23
+
24
+ [![Python Version](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue.svg)](https://www.python.org/)
25
+ [![FastMCP](https://img.shields.io/badge/framework-FastMCP-brightgreen.svg)](https://github.com/jlowin/fastmcp)
26
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
27
+ [![MCP Specification](https://img.shields.io/badge/MCP-Compatible-orange.svg)](https://modelcontextprotocol.io/)
28
+ [![Database](https://img.shields.io/badge/database-PostgreSQL-blue.svg)](https://www.postgresql.org/)
29
+
30
+ Finance Intelligence MCP is a production-ready **Model Context Protocol (MCP)** server that enables AI assistants (like Claude, Cursor, and others) to securely manage and analyze personal finances through natural language.
31
+
32
+ Released under the MIT License and designed to be extended with additional finance tools.
33
+
34
+ ---
35
+
36
+ ## 🔍 Overview
37
+
38
+ Unlike standard cloud-based personal finance apps, **Finance Intelligence MCP** keeps all financial data under your absolute control.
39
+
40
+ * **No Accounts / Subscriptions**: Direct connection to your private database with zero SaaS dependencies.
41
+ * **Zero Telemetry**: Your financial logs never go to external analytic APIs.
42
+ * **Full AI Context**: Your AI assistant can query history, check budget status, make charts, and answer financial questions instantly.
43
+
44
+
45
+
46
+ ---
47
+
48
+ ## 🛠️ Architecture
49
+
50
+ ```
51
+ ┌────────────────────────────────┐
52
+ │ MCP Client │
53
+ │ (Claude Desktop, Cursor, etc) │
54
+ └───────────────┬────────────────┘
55
+
56
+ │ (STDIO Transport Protocol)
57
+
58
+ ┌────────────────────────────────┐
59
+ │ Finance Intelligence Server │
60
+ │ (Local) │
61
+ └───────────────┬────────────────┘
62
+
63
+ │ (Direct SQL Pool Connection)
64
+
65
+ ┌────────────────────────────────┐
66
+ │ PostgreSQL Database │
67
+ │ (Supabase, Local, RDS, etc) │
68
+ └────────────────────────────────┘
69
+ ```
70
+
71
+ ---
72
+
73
+ ## ✨ Features
74
+
75
+ * **Expense Operations**: Create, view, edit, and bulk-delete expense entries.
76
+ * **Multi-level Budgeting**: Set limits for `overall` spending, specific `category` thresholds, or down to nested `subcategory` targets.
77
+ * **Analytics Breakdowns**: Aggregate expenses by category, subcategory, notes, or dates over weekly/monthly/yearly time blocks.
78
+ * **Visual Charts**: Exposes tools that generate Matplotlib line/bar charts of historical spending automatically.
79
+ * **Excel Spreadsheet Export**: Truncates long list responses and generates download-ready Excel spreadsheets for massive datasets.
80
+ * **Financial Health Scoring**: Calculates a deterministic financial health score grade based on 6 core personal finance KPIs.
81
+
82
+ ---
83
+
84
+ ## ⚙️ Requirements & Compatibility
85
+
86
+ * **Transport**: `stdio`
87
+ * **Supported Platforms**:
88
+ * Windows
89
+ * macOS
90
+ * Linux
91
+ * **Python Compatibility**: Python 3.10, 3.11, and 3.12 (Tested)
92
+ * **Database**: PostgreSQL 12+ (e.g. Supabase, RDS, or local Postgres)
93
+ * **Supported Clients**:
94
+ * Claude Desktop
95
+ * Cursor
96
+ * *Compatible with any MCP client supporting stdio.*
97
+
98
+ ---
99
+
100
+ ## 💾 Installation & Setup
101
+
102
+ ### 1. Quick Setup (Shortcut)
103
+ If you have `uv` installed, get started in 2 lines:
104
+ ```bash
105
+ git clone https://github.com/Ronit-019/Finance-Intelligence-MCP.git
106
+ cd Finance-Intelligence-MCP
107
+ uv sync
108
+ ```
109
+
110
+ ### 2. Detailed Installation
111
+
112
+ #### Step A: Get a PostgreSQL Connection URL
113
+ The easiest, free option is **Supabase**:
114
+ 1. Go to [Supabase](https://supabase.com/) and create a free project.
115
+ 2. Go to **Project Settings** (gear icon) > **Database**.
116
+ 3. Under **Connection string**, select **URI** and copy the string.
117
+ * *Example*: `postgresql://postgres.[your-project-ref]:[your-password]@aws-0-us-east-1.pooler.supabase.com:5432/postgres`
118
+ * *(Replace `[your-password]` with your database password).*
119
+
120
+ #### Step B: Clone the Repository
121
+ Clone the codebase to a directory on your machine:
122
+ ```bash
123
+ git clone https://github.com/Ronit-019/Finance-Intelligence-MCP.git
124
+ cd Finance-Intelligence-MCP
125
+ ```
126
+ Copy the absolute path of this directory (e.g. `C:/Users/Admin/Desktop/Finance-Intelligence-MCP`).
127
+ *Note: Always use forward slashes (`/`) for paths in JSON configs.*
128
+
129
+ #### Step C: Install Dependencies
130
+ If you do not have `uv` installed, install from the project metadata:
131
+ ```bash
132
+ pip install -e .
133
+ ```
134
+
135
+ ---
136
+
137
+ ### 3. Client Integration
138
+
139
+ #### Claude Desktop Setup
140
+ 1. Open your Claude configuration file (`claude_desktop_config.json`):
141
+ * **Windows**: Press `Win + R`, paste `%APPDATA%\Claude\claude_desktop_config.json` and press Enter.
142
+ * **macOS**: Paste `~/Library/Application Support/Claude/claude_desktop_config.json` in Finder's Go to Folder.
143
+ 2. Add this entry to `mcpServers`:
144
+
145
+ ```json
146
+ {
147
+ "mcpServers": {
148
+ "finance-intelligence": {
149
+ "command": "uv",
150
+ "args": [
151
+ "--directory",
152
+ "REPLACE_WITH_ABSOLUTE_PATH_TO_CLONED_DIRECTORY",
153
+ "run",
154
+ "python",
155
+ "main.py"
156
+ ],
157
+ "env": {
158
+ "DATABASE_URL": "REPLACE_WITH_YOUR_SUPABASE_CONNECTION_STRING"
159
+ }
160
+ }
161
+ }
162
+ }
163
+ ```
164
+ 3. Save and completely **restart Claude Desktop**.
165
+
166
+ #### Cursor IDE Setup
167
+ 1. Go to **Settings** > **Features** > **MCP**.
168
+ 2. Click **+ Add New MCP Server**:
169
+ * **Name**: `Finance Intelligence`
170
+ * **Type**: `command`
171
+ * **Command**:
172
+ ```bash
173
+ uv --directory "REPLACE_WITH_ABSOLUTE_PATH_TO_CLONED_DIRECTORY" run python main.py
174
+ ```
175
+ 3. Click **+ Add Env Var**:
176
+ * **Key**: `DATABASE_URL`
177
+ * **Value**: `REPLACE_WITH_YOUR_SUPABASE_CONNECTION_STRING`
178
+ 4. Click **Save** and refresh.
179
+
180
+ ---
181
+
182
+ ## 💬 Example Prompts
183
+
184
+ Once configured, try talking to your AI assistant:
185
+ * *"Add ₹250 for lunch today under food."*
186
+ * *"Show my spending breakdown this month."*
187
+ * *"Generate an Excel report of all my expenses between May and July."*
188
+ * *"Am I exceeding my monthly budget limit?"*
189
+ * *"How much did I spend on dining out this week?"*
190
+ * *"Calculate my monthly financial health score and give me feedback."*
191
+ * *"Generate a spending chart for the last 30 days."*
192
+
193
+ ---
194
+
195
+ ## 🛠️ Available Tools
196
+
197
+ The server registers 12 core tools on the client:
198
+
199
+ | Tool Name | Parameters | Description |
200
+ | :--- | :--- | :--- |
201
+ | `add_expense` | `date`, `amount`, `category`, `subcategory`, `note` | Inserts a new expense transaction. |
202
+ | `list_expenses` | `start_date`, `end_date` | Lists transactions, exports to Excel if count > 50. |
203
+ | `expense_breakdown`| `start_date`, `end_date`, `group_by`, `breakdown`, `category`, `subcategory` | Aggregates spending sums and counts. |
204
+ | `delete_expenses` | `expense_ids`, `start_date`, `end_date`, `category`, `subcategory` | Deletes expenses matching filters. |
205
+ | `update_expenses` | `expense_ids`, `filter_...`, `date`, `amount`, `category`, `subcategory`, `note` | Edits expense records. |
206
+ | `create_budget` | `budget_type`, `amount`, `period`, `start_date`, `end_date`, `category`, `subcategory`, `budgets` | Registers new spending limits. |
207
+ | `list_budgets` | `budget_type`, `category`, `subcategory`, `period` | Returns registered budgets. |
208
+ | `update_budgets` | `budget_ids`, `filter_...`, `budget_type`, `amount`, `period`, `start_date`, `end_date`, `category`, `subcategory` | Modifies active budgets. |
209
+ | `delete_budgets` | `budget_ids`, `start_date`, `end_date`, `budget_type`, `category`, `subcategory`, `period` | Deletes target budget limits. |
210
+ | `compare_budget_vs_expenses` | `reference_date`, `budget_type`, `category`, `subcategory`, `period` | Compares budget vs actual spending. |
211
+ | `expense_summary` | `period`, `group_by`, `category`, `subcategory`, `start_date`, `end_date` | Generates a Matplotlib line/bar chart. |
212
+ | `financial_health_score` | `reference_month` | Evaluates 6 key personal finance indicators. |
213
+
214
+ ---
215
+
216
+ ## 💡 Troubleshooting
217
+
218
+ ### 1. `uv: command not found`
219
+ If the client cannot locate `uv`, update your config file to run standard Python:
220
+ * Ensure you ran `pip install -e .` inside the repository.
221
+ * Update config:
222
+ ```json
223
+ "finance-intelligence": {
224
+ "command": "python",
225
+ "args": [
226
+ "REPLACE_WITH_ABSOLUTE_PATH_TO_CLONED_DIRECTORY/main.py"
227
+ ],
228
+ "env": {
229
+ "DATABASE_URL": "REPLACE_WITH_YOUR_SUPABASE_CONNECTION_STRING"
230
+ }
231
+ }
232
+ ```
233
+
234
+ ### 2. Invalid `DATABASE_URL` / PostgreSQL Connection Errors
235
+ * Make sure you replaced `[your-password]` with your actual database password in the Supabase URI string.
236
+ * Ensure there are no surrounding spaces or special characters in the URL string.
237
+ * Verify your Supabase instance is active and not paused.
238
+
239
+ ### 3. Claude Not Detecting the Server
240
+ * Double check that the folder paths in `claude_desktop_config.json` use **forward slashes** (`/`), even on Windows.
241
+ * Check the logs at `%APPDATA%\Claude\logs\mcp*.log` (Windows) or `~/Library/Logs/Claude/mcp*.log` (macOS) to see the exact startup error.
242
+
243
+ ---
244
+
245
+ ## 📁 Repository Structure
246
+ ```
247
+ ├── src/ # Helper packages
248
+ │ ├── __init__.py
249
+ │ ├── budget.py # Budget database operations
250
+ │ ├── analytics.py # Breakdown aggregations & Matplotlib routines
251
+ │ └── health.py # KPIs and financial health calculator
252
+ ├── main.py # FastMCP Server application
253
+ ├── categories.json # Category mapping catalog
254
+ ├── pyproject.toml # Dependencies
255
+ ├── LICENSE # MIT License file
256
+ └── README.md # This file
257
+ ```
258
+
259
+ ---
260
+
261
+ ## 🤝 Contributing
262
+ Contributions, bug reports, and feature requests are welcome!
263
+ Please open an issue before submitting major changes or pull requests.
264
+
265
+ ---
266
+
267
+ ## 📄 License
268
+ This project is licensed under the [MIT License](LICENSE) - see the LICENSE file for details.
269
+
270
+ ---
271
+
272
+ ## 👨‍💻 Author
273
+
274
+ Ronit Rajput
275
+
276
+ - Portfolio: https://ronitportfolio-seven.vercel.app/assistant
277
+ - GitHub: https://github.com/Ronit-019
278
+ - LinkedIn: https://www.linkedin.com/in/ronit-rajput/
@@ -0,0 +1,257 @@
1
+ # Finance Intelligence MCP Server
2
+
3
+ [![Python Version](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue.svg)](https://www.python.org/)
4
+ [![FastMCP](https://img.shields.io/badge/framework-FastMCP-brightgreen.svg)](https://github.com/jlowin/fastmcp)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+ [![MCP Specification](https://img.shields.io/badge/MCP-Compatible-orange.svg)](https://modelcontextprotocol.io/)
7
+ [![Database](https://img.shields.io/badge/database-PostgreSQL-blue.svg)](https://www.postgresql.org/)
8
+
9
+ Finance Intelligence MCP is a production-ready **Model Context Protocol (MCP)** server that enables AI assistants (like Claude, Cursor, and others) to securely manage and analyze personal finances through natural language.
10
+
11
+ Released under the MIT License and designed to be extended with additional finance tools.
12
+
13
+ ---
14
+
15
+ ## 🔍 Overview
16
+
17
+ Unlike standard cloud-based personal finance apps, **Finance Intelligence MCP** keeps all financial data under your absolute control.
18
+
19
+ * **No Accounts / Subscriptions**: Direct connection to your private database with zero SaaS dependencies.
20
+ * **Zero Telemetry**: Your financial logs never go to external analytic APIs.
21
+ * **Full AI Context**: Your AI assistant can query history, check budget status, make charts, and answer financial questions instantly.
22
+
23
+
24
+
25
+ ---
26
+
27
+ ## 🛠️ Architecture
28
+
29
+ ```
30
+ ┌────────────────────────────────┐
31
+ │ MCP Client │
32
+ │ (Claude Desktop, Cursor, etc) │
33
+ └───────────────┬────────────────┘
34
+
35
+ │ (STDIO Transport Protocol)
36
+
37
+ ┌────────────────────────────────┐
38
+ │ Finance Intelligence Server │
39
+ │ (Local) │
40
+ └───────────────┬────────────────┘
41
+
42
+ │ (Direct SQL Pool Connection)
43
+
44
+ ┌────────────────────────────────┐
45
+ │ PostgreSQL Database │
46
+ │ (Supabase, Local, RDS, etc) │
47
+ └────────────────────────────────┘
48
+ ```
49
+
50
+ ---
51
+
52
+ ## ✨ Features
53
+
54
+ * **Expense Operations**: Create, view, edit, and bulk-delete expense entries.
55
+ * **Multi-level Budgeting**: Set limits for `overall` spending, specific `category` thresholds, or down to nested `subcategory` targets.
56
+ * **Analytics Breakdowns**: Aggregate expenses by category, subcategory, notes, or dates over weekly/monthly/yearly time blocks.
57
+ * **Visual Charts**: Exposes tools that generate Matplotlib line/bar charts of historical spending automatically.
58
+ * **Excel Spreadsheet Export**: Truncates long list responses and generates download-ready Excel spreadsheets for massive datasets.
59
+ * **Financial Health Scoring**: Calculates a deterministic financial health score grade based on 6 core personal finance KPIs.
60
+
61
+ ---
62
+
63
+ ## ⚙️ Requirements & Compatibility
64
+
65
+ * **Transport**: `stdio`
66
+ * **Supported Platforms**:
67
+ * Windows
68
+ * macOS
69
+ * Linux
70
+ * **Python Compatibility**: Python 3.10, 3.11, and 3.12 (Tested)
71
+ * **Database**: PostgreSQL 12+ (e.g. Supabase, RDS, or local Postgres)
72
+ * **Supported Clients**:
73
+ * Claude Desktop
74
+ * Cursor
75
+ * *Compatible with any MCP client supporting stdio.*
76
+
77
+ ---
78
+
79
+ ## 💾 Installation & Setup
80
+
81
+ ### 1. Quick Setup (Shortcut)
82
+ If you have `uv` installed, get started in 2 lines:
83
+ ```bash
84
+ git clone https://github.com/Ronit-019/Finance-Intelligence-MCP.git
85
+ cd Finance-Intelligence-MCP
86
+ uv sync
87
+ ```
88
+
89
+ ### 2. Detailed Installation
90
+
91
+ #### Step A: Get a PostgreSQL Connection URL
92
+ The easiest, free option is **Supabase**:
93
+ 1. Go to [Supabase](https://supabase.com/) and create a free project.
94
+ 2. Go to **Project Settings** (gear icon) > **Database**.
95
+ 3. Under **Connection string**, select **URI** and copy the string.
96
+ * *Example*: `postgresql://postgres.[your-project-ref]:[your-password]@aws-0-us-east-1.pooler.supabase.com:5432/postgres`
97
+ * *(Replace `[your-password]` with your database password).*
98
+
99
+ #### Step B: Clone the Repository
100
+ Clone the codebase to a directory on your machine:
101
+ ```bash
102
+ git clone https://github.com/Ronit-019/Finance-Intelligence-MCP.git
103
+ cd Finance-Intelligence-MCP
104
+ ```
105
+ Copy the absolute path of this directory (e.g. `C:/Users/Admin/Desktop/Finance-Intelligence-MCP`).
106
+ *Note: Always use forward slashes (`/`) for paths in JSON configs.*
107
+
108
+ #### Step C: Install Dependencies
109
+ If you do not have `uv` installed, install from the project metadata:
110
+ ```bash
111
+ pip install -e .
112
+ ```
113
+
114
+ ---
115
+
116
+ ### 3. Client Integration
117
+
118
+ #### Claude Desktop Setup
119
+ 1. Open your Claude configuration file (`claude_desktop_config.json`):
120
+ * **Windows**: Press `Win + R`, paste `%APPDATA%\Claude\claude_desktop_config.json` and press Enter.
121
+ * **macOS**: Paste `~/Library/Application Support/Claude/claude_desktop_config.json` in Finder's Go to Folder.
122
+ 2. Add this entry to `mcpServers`:
123
+
124
+ ```json
125
+ {
126
+ "mcpServers": {
127
+ "finance-intelligence": {
128
+ "command": "uv",
129
+ "args": [
130
+ "--directory",
131
+ "REPLACE_WITH_ABSOLUTE_PATH_TO_CLONED_DIRECTORY",
132
+ "run",
133
+ "python",
134
+ "main.py"
135
+ ],
136
+ "env": {
137
+ "DATABASE_URL": "REPLACE_WITH_YOUR_SUPABASE_CONNECTION_STRING"
138
+ }
139
+ }
140
+ }
141
+ }
142
+ ```
143
+ 3. Save and completely **restart Claude Desktop**.
144
+
145
+ #### Cursor IDE Setup
146
+ 1. Go to **Settings** > **Features** > **MCP**.
147
+ 2. Click **+ Add New MCP Server**:
148
+ * **Name**: `Finance Intelligence`
149
+ * **Type**: `command`
150
+ * **Command**:
151
+ ```bash
152
+ uv --directory "REPLACE_WITH_ABSOLUTE_PATH_TO_CLONED_DIRECTORY" run python main.py
153
+ ```
154
+ 3. Click **+ Add Env Var**:
155
+ * **Key**: `DATABASE_URL`
156
+ * **Value**: `REPLACE_WITH_YOUR_SUPABASE_CONNECTION_STRING`
157
+ 4. Click **Save** and refresh.
158
+
159
+ ---
160
+
161
+ ## 💬 Example Prompts
162
+
163
+ Once configured, try talking to your AI assistant:
164
+ * *"Add ₹250 for lunch today under food."*
165
+ * *"Show my spending breakdown this month."*
166
+ * *"Generate an Excel report of all my expenses between May and July."*
167
+ * *"Am I exceeding my monthly budget limit?"*
168
+ * *"How much did I spend on dining out this week?"*
169
+ * *"Calculate my monthly financial health score and give me feedback."*
170
+ * *"Generate a spending chart for the last 30 days."*
171
+
172
+ ---
173
+
174
+ ## 🛠️ Available Tools
175
+
176
+ The server registers 12 core tools on the client:
177
+
178
+ | Tool Name | Parameters | Description |
179
+ | :--- | :--- | :--- |
180
+ | `add_expense` | `date`, `amount`, `category`, `subcategory`, `note` | Inserts a new expense transaction. |
181
+ | `list_expenses` | `start_date`, `end_date` | Lists transactions, exports to Excel if count > 50. |
182
+ | `expense_breakdown`| `start_date`, `end_date`, `group_by`, `breakdown`, `category`, `subcategory` | Aggregates spending sums and counts. |
183
+ | `delete_expenses` | `expense_ids`, `start_date`, `end_date`, `category`, `subcategory` | Deletes expenses matching filters. |
184
+ | `update_expenses` | `expense_ids`, `filter_...`, `date`, `amount`, `category`, `subcategory`, `note` | Edits expense records. |
185
+ | `create_budget` | `budget_type`, `amount`, `period`, `start_date`, `end_date`, `category`, `subcategory`, `budgets` | Registers new spending limits. |
186
+ | `list_budgets` | `budget_type`, `category`, `subcategory`, `period` | Returns registered budgets. |
187
+ | `update_budgets` | `budget_ids`, `filter_...`, `budget_type`, `amount`, `period`, `start_date`, `end_date`, `category`, `subcategory` | Modifies active budgets. |
188
+ | `delete_budgets` | `budget_ids`, `start_date`, `end_date`, `budget_type`, `category`, `subcategory`, `period` | Deletes target budget limits. |
189
+ | `compare_budget_vs_expenses` | `reference_date`, `budget_type`, `category`, `subcategory`, `period` | Compares budget vs actual spending. |
190
+ | `expense_summary` | `period`, `group_by`, `category`, `subcategory`, `start_date`, `end_date` | Generates a Matplotlib line/bar chart. |
191
+ | `financial_health_score` | `reference_month` | Evaluates 6 key personal finance indicators. |
192
+
193
+ ---
194
+
195
+ ## 💡 Troubleshooting
196
+
197
+ ### 1. `uv: command not found`
198
+ If the client cannot locate `uv`, update your config file to run standard Python:
199
+ * Ensure you ran `pip install -e .` inside the repository.
200
+ * Update config:
201
+ ```json
202
+ "finance-intelligence": {
203
+ "command": "python",
204
+ "args": [
205
+ "REPLACE_WITH_ABSOLUTE_PATH_TO_CLONED_DIRECTORY/main.py"
206
+ ],
207
+ "env": {
208
+ "DATABASE_URL": "REPLACE_WITH_YOUR_SUPABASE_CONNECTION_STRING"
209
+ }
210
+ }
211
+ ```
212
+
213
+ ### 2. Invalid `DATABASE_URL` / PostgreSQL Connection Errors
214
+ * Make sure you replaced `[your-password]` with your actual database password in the Supabase URI string.
215
+ * Ensure there are no surrounding spaces or special characters in the URL string.
216
+ * Verify your Supabase instance is active and not paused.
217
+
218
+ ### 3. Claude Not Detecting the Server
219
+ * Double check that the folder paths in `claude_desktop_config.json` use **forward slashes** (`/`), even on Windows.
220
+ * Check the logs at `%APPDATA%\Claude\logs\mcp*.log` (Windows) or `~/Library/Logs/Claude/mcp*.log` (macOS) to see the exact startup error.
221
+
222
+ ---
223
+
224
+ ## 📁 Repository Structure
225
+ ```
226
+ ├── src/ # Helper packages
227
+ │ ├── __init__.py
228
+ │ ├── budget.py # Budget database operations
229
+ │ ├── analytics.py # Breakdown aggregations & Matplotlib routines
230
+ │ └── health.py # KPIs and financial health calculator
231
+ ├── main.py # FastMCP Server application
232
+ ├── categories.json # Category mapping catalog
233
+ ├── pyproject.toml # Dependencies
234
+ ├── LICENSE # MIT License file
235
+ └── README.md # This file
236
+ ```
237
+
238
+ ---
239
+
240
+ ## 🤝 Contributing
241
+ Contributions, bug reports, and feature requests are welcome!
242
+ Please open an issue before submitting major changes or pull requests.
243
+
244
+ ---
245
+
246
+ ## 📄 License
247
+ This project is licensed under the [MIT License](LICENSE) - see the LICENSE file for details.
248
+
249
+ ---
250
+
251
+ ## 👨‍💻 Author
252
+
253
+ Ronit Rajput
254
+
255
+ - Portfolio: https://ronitportfolio-seven.vercel.app/assistant
256
+ - GitHub: https://github.com/Ronit-019
257
+ - LinkedIn: https://www.linkedin.com/in/ronit-rajput/
@@ -0,0 +1,35 @@
1
+ [project]
2
+ name = "finance-intelligence-mcp"
3
+ version = "0.1.0"
4
+ description = "A production-ready Model Context Protocol (MCP) server for private personal finance management."
5
+ readme = "README.md"
6
+ requires-python = ">=3.10"
7
+ license = { text = "MIT" }
8
+
9
+ authors = [
10
+ { name = "Ronit Rajput", email = "ronitrajput182005@gmail.com" }
11
+ ]
12
+
13
+ keywords = [
14
+ "mcp",
15
+ "fastmcp",
16
+ "finance",
17
+ "postgresql",
18
+ "ai",
19
+ "llm"
20
+ ]
21
+
22
+ classifiers = [
23
+ "Programming Language :: Python :: 3",
24
+ "License :: OSI Approved :: MIT License",
25
+ "Operating System :: OS Independent"
26
+ ]
27
+
28
+ dependencies = [
29
+ "asyncpg>=0.31.0",
30
+ "fastmcp>=3.4.2",
31
+ "sqlalchemy[asyncio]>=2.0.51",
32
+ "python-dotenv>=1.0.1",
33
+ "matplotlib>=3.8.0",
34
+ "openpyxl>=3.1.2",
35
+ ]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
File without changes