folosat-mcp 0.1.0

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.
package/README.md ADDED
@@ -0,0 +1,94 @@
1
+ # folosat-mcp
2
+
3
+ Connect AI assistants (Claude, ChatGPT, Cursor) to [Folosat](https://folosat.com) — your income allocation system, savings goals, group expenses, and wealth overview.
4
+
5
+ Available in **English and Arabic** — the only bilingual personal finance MCP server.
6
+
7
+ ---
8
+
9
+ ## What this MCP server exposes
10
+
11
+ ### Resources (read-only data your AI can query)
12
+
13
+ | Resource | What it returns |
14
+ |---|---|
15
+ | `folosat://buckets` | Your 5-bucket income allocation — balances, targets, % used |
16
+ | `folosat://transactions/{period}` | Categorized transactions for a period |
17
+ | `folosat://goals` | All savings goals — progress, contribution history, projected completion |
18
+ | `folosat://groups/{id}/balances` | Who owes whom in a group expense split |
19
+ | `folosat://wealth/networth` | Net worth snapshot and time series |
20
+ | `folosat://budget/{id}/summary` | Budget manager spending vs. plan |
21
+
22
+ ### Tools (actions, always require your approval)
23
+
24
+ | Tool | What it does |
25
+ |---|---|
26
+ | `create_expense` | Add a new expense to your account |
27
+ | `add_goal_contribution` | Contribute to a savings goal |
28
+ | `get_cashflow_forecast` | 30 or 60-day cash flow projection |
29
+
30
+ ### Built-in prompts
31
+
32
+ - `/monthly_review` — How was my spending vs. plan this month?
33
+ - `/salary_allocation` — I just got paid — how should I allocate it?
34
+ - `/goal_check` — Am I on track for all my savings goals?
35
+
36
+ ---
37
+
38
+ ## Example conversations
39
+
40
+ **Check your month:**
41
+ > "How did my spending look this month versus my plan?"
42
+
43
+ **Plan a purchase:**
44
+ > "I want to buy a laptop for $800. Can I afford it without hurting my savings goals?"
45
+
46
+ **Group trip:**
47
+ > "Did everyone settle up from the Dubai trip?"
48
+
49
+ **Salary day:**
50
+ > "I just received my salary of 12,000 SAR. How should I split it across my buckets?"
51
+
52
+ ---
53
+
54
+ ## Status
55
+
56
+ > **Coming soon.** Full live integration is under active development.
57
+ >
58
+ > The server spec and namespace are published. Authentication and live data access will be available in a future release.
59
+ >
60
+ > [Get Folosat](https://folosat.com) to be notified when the MCP integration launches.
61
+
62
+ ---
63
+
64
+ ## Installation (when available)
65
+
66
+ ```json
67
+ {
68
+ "mcpServers": {
69
+ "folosat": {
70
+ "command": "npx",
71
+ "args": ["folosat-mcp"]
72
+ }
73
+ }
74
+ }
75
+ ```
76
+
77
+ Add this to your Claude Desktop config at:
78
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
79
+ - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
80
+
81
+ ---
82
+
83
+ ## Philosophy
84
+
85
+ Folosat is built around the **Income Growth System** — not just tracking where your money went, but actively directing it toward growing what you earn. The 5-bucket allocation (Obligations / Investment / Personal / Reserve / Savings) gives every riyal and dollar a purpose before you spend it.
86
+
87
+ The MCP integration brings this system into your AI assistant — so you can ask natural questions about your finances and get answers grounded in your actual data.
88
+
89
+ ---
90
+
91
+ ## Links
92
+
93
+ - [Folosat app](https://folosat.com)
94
+ - [GitHub](https://github.com/eng-mohaemad/folosat_testing)
package/dist/index.js ADDED
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env node
2
+ // Folosat MCP server — stub
3
+ // Full implementation coming in a future release.
4
+ // See README.md for the planned resources, tools, and prompts.
5
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
6
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
7
+ import { ListResourcesRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
8
+ const server = new Server({ name: "folosat-mcp", version: "0.1.0" }, { capabilities: { resources: {}, tools: {}, prompts: {} } });
9
+ server.setRequestHandler(ListResourcesRequestSchema, async () => ({
10
+ resources: [
11
+ {
12
+ uri: "folosat://buckets",
13
+ name: "Income Buckets",
14
+ description: "5-bucket income allocation — balances, targets, % used",
15
+ mimeType: "application/json",
16
+ },
17
+ {
18
+ uri: "folosat://goals",
19
+ name: "Savings Goals",
20
+ description: "All savings goals — progress, contribution history, projected completion",
21
+ mimeType: "application/json",
22
+ },
23
+ {
24
+ uri: "folosat://wealth/networth",
25
+ name: "Net Worth",
26
+ description: "Net worth snapshot and time series",
27
+ mimeType: "application/json",
28
+ },
29
+ ],
30
+ }));
31
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
32
+ tools: [
33
+ {
34
+ name: "create_expense",
35
+ description: "Add a new expense to Folosat. Requires user confirmation.",
36
+ inputSchema: {
37
+ type: "object",
38
+ properties: {
39
+ amount: { type: "number" },
40
+ category: { type: "string" },
41
+ note: { type: "string" },
42
+ },
43
+ required: ["amount", "category"],
44
+ },
45
+ },
46
+ {
47
+ name: "add_goal_contribution",
48
+ description: "Contribute to a savings goal. Requires user confirmation.",
49
+ inputSchema: {
50
+ type: "object",
51
+ properties: {
52
+ goal_id: { type: "string" },
53
+ amount: { type: "number" },
54
+ note: { type: "string" },
55
+ },
56
+ required: ["goal_id", "amount"],
57
+ },
58
+ },
59
+ ],
60
+ }));
61
+ server.setRequestHandler(ListPromptsRequestSchema, async () => ({
62
+ prompts: [
63
+ {
64
+ name: "monthly_review",
65
+ description: "How was my spending vs. plan this month?",
66
+ },
67
+ {
68
+ name: "salary_allocation",
69
+ description: "I just got paid — how should I allocate it?",
70
+ arguments: [{ name: "amount", description: "Salary amount", required: true }],
71
+ },
72
+ {
73
+ name: "goal_check",
74
+ description: "Am I on track for all my savings goals?",
75
+ },
76
+ ],
77
+ }));
78
+ const transport = new StdioServerTransport();
79
+ await server.connect(transport);
80
+ console.error("Folosat MCP server running. Full integration coming soon — see https://folosat.com");
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "folosat-mcp",
3
+ "version": "0.1.0",
4
+ "description": "Folosat MCP server — connect AI assistants to your income, expenses, savings goals, and group finances",
5
+ "keywords": [
6
+ "mcp",
7
+ "personal-finance",
8
+ "budgeting",
9
+ "savings",
10
+ "groups",
11
+ "expense-splitting",
12
+ "wealth",
13
+ "income",
14
+ "arabic",
15
+ "bilingual"
16
+ ],
17
+ "homepage": "https://folosat.com",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/eng-mohaemad/folosat_testing"
21
+ },
22
+ "license": "MIT",
23
+ "mcpName": "io.github.eng-mohaemad/folosat-mcp",
24
+ "type": "module",
25
+ "main": "dist/index.js",
26
+ "bin": {
27
+ "folosat-mcp": "dist/index.js"
28
+ },
29
+ "files": [
30
+ "dist",
31
+ "server.json",
32
+ "README.md"
33
+ ],
34
+ "scripts": {
35
+ "build": "tsc",
36
+ "dev": "ts-node src/index.ts",
37
+ "start": "node dist/index.js"
38
+ },
39
+ "dependencies": {
40
+ "@modelcontextprotocol/sdk": "^1.0.0"
41
+ },
42
+ "devDependencies": {
43
+ "@types/node": "^20.0.0",
44
+ "typescript": "^5"
45
+ },
46
+ "engines": {
47
+ "node": ">=18"
48
+ }
49
+ }
package/server.json ADDED
@@ -0,0 +1,112 @@
1
+ {
2
+ "name": "folosat-mcp",
3
+ "version": "0.1.0",
4
+ "description": "Connect AI assistants to Folosat — your income allocation, savings goals, group expenses, and wealth overview. Available in English and Arabic.",
5
+ "homepage": "https://folosat.com",
6
+ "icon": "https://folosat.com/icon.png",
7
+ "categories": ["finance", "productivity", "personal-finance"],
8
+ "languages": ["en", "ar"],
9
+ "transport": [
10
+ {
11
+ "type": "stdio",
12
+ "command": "node",
13
+ "args": ["dist/index.js"]
14
+ }
15
+ ],
16
+ "resources": [
17
+ {
18
+ "name": "buckets",
19
+ "uri": "folosat://buckets",
20
+ "description": "5-bucket income allocation — Obligations, Investment, Personal, Reserve, Savings. Current balances and % vs. targets."
21
+ },
22
+ {
23
+ "name": "transactions",
24
+ "uri": "folosat://transactions/{period}",
25
+ "description": "Categorized transaction history for a given period (e.g. 'current-month', 'last-month', 'last-3-months')."
26
+ },
27
+ {
28
+ "name": "goals",
29
+ "uri": "folosat://goals",
30
+ "description": "Savings goals — name, target amount, current amount, contribution history, projected completion date."
31
+ },
32
+ {
33
+ "name": "group_balances",
34
+ "uri": "folosat://groups/{group_id}/balances",
35
+ "description": "Who owes whom in a group expense split. Pending settlements and confirmed ones."
36
+ },
37
+ {
38
+ "name": "net_worth",
39
+ "uri": "folosat://wealth/networth",
40
+ "description": "Net worth snapshot — wealth containers, savings, debts — and a time series of how it has changed."
41
+ },
42
+ {
43
+ "name": "budget_summary",
44
+ "uri": "folosat://budget/{budget_id}/summary",
45
+ "description": "Budget manager spending vs. allocated amounts for the current period."
46
+ }
47
+ ],
48
+ "tools": [
49
+ {
50
+ "name": "create_expense",
51
+ "description": "Add a new expense to Folosat. Requires user confirmation before executing.",
52
+ "inputSchema": {
53
+ "type": "object",
54
+ "properties": {
55
+ "amount": { "type": "number" },
56
+ "category": { "type": "string" },
57
+ "note": { "type": "string" },
58
+ "group_id": { "type": "string", "description": "Optional — assign to a group expense" }
59
+ },
60
+ "required": ["amount", "category"]
61
+ }
62
+ },
63
+ {
64
+ "name": "add_goal_contribution",
65
+ "description": "Add a contribution to a savings goal. Requires user confirmation before executing.",
66
+ "inputSchema": {
67
+ "type": "object",
68
+ "properties": {
69
+ "goal_id": { "type": "string" },
70
+ "amount": { "type": "number" },
71
+ "note": { "type": "string" }
72
+ },
73
+ "required": ["goal_id", "amount"]
74
+ }
75
+ },
76
+ {
77
+ "name": "get_cashflow_forecast",
78
+ "description": "Read-only forecast — based on current income allocation and spending patterns, projects cash flow for the next 30 or 60 days.",
79
+ "inputSchema": {
80
+ "type": "object",
81
+ "properties": {
82
+ "days": { "type": "number", "enum": [30, 60] }
83
+ },
84
+ "required": ["days"]
85
+ }
86
+ }
87
+ ],
88
+ "prompts": [
89
+ {
90
+ "name": "monthly_review",
91
+ "description": "How was my spending vs. plan this month?",
92
+ "template": "Review my Folosat data for the current month. Compare actual spending in each bucket against the planned allocation. Highlight any buckets where I overspent or underspent significantly, and give me 1-2 concrete suggestions."
93
+ },
94
+ {
95
+ "name": "salary_allocation",
96
+ "description": "I just got paid — how should I allocate it?",
97
+ "template": "I just received a salary of {amount}. Based on my current Folosat bucket setup, obligations, and savings goals, suggest how to distribute this amount across my buckets. Show the breakdown and explain the reasoning."
98
+ },
99
+ {
100
+ "name": "goal_check",
101
+ "description": "Am I on track for my savings goals?",
102
+ "template": "Check all my active savings goals in Folosat. For each one, tell me whether I'm on track to hit the target by the deadline, how much I need to contribute per month to stay on track, and flag any that are falling behind."
103
+ }
104
+ ],
105
+ "auth": {
106
+ "type": "oauth2",
107
+ "description": "Authenticate with your Folosat account via OAuth 2.1 + PKCE. You will be redirected to folosat.com to authorize access.",
108
+ "status": "coming-soon"
109
+ },
110
+ "status": "coming-soon",
111
+ "availability": "This MCP server is under active development. Full integration with live Folosat data will be available in a future release. Follow @folosat for updates."
112
+ }