Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Consulte contas, cartões, transações e orçamentos da sua conta financeira Vessell.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://mcp.cdf.finance/mcpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http cdf https://mcp.cdf.finance/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"cdf": {
"url": "https://mcp.cdf.finance/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"cdf": {
"type": "http",
"url": "https://mcp.cdf.finance/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://mcp.cdf.finance/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ยังไม่ได้อ่านรายการเครื่องมือของตัวนี้ เราตรวจ endpoint ทีละชุดวนไป
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub VessellTech ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราตรวจ endpoint ทีละชุดวนไป
ยังไม่ได้ตรวจ เราอ่านรายการเครื่องมือตอนตรวจ endpoint
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.8) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Finance Toolkit, SolidInvoice, Korea Tax Calculator
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
Conecte Claude, ChatGPT e qualquer client MCP (OAuth 2.1) à sua conta CDF Finance — consulte e registre sua vida financeira por linguagem natural.
Remoto: https://mcp.cdf.finance/mcp (Streamable HTTP) · Website: https://cdf.finance/mcp · Status: https://status.cdf.finance · Suporte: support@cdf.finance
MCP server stateless e isolado para o CDF Finance — app de controle financeiro pessoal (contas, cartões, transações, faturas, orçamentos, metas, dívidas, investimentos e insights).
backend-husk — só HTTP sobre a API pública que o app mobile já usa.Source-available sob BUSL-1.1: pode auditar, usar com o CDF Finance, contribuir. Uso em produção como produto concorrente exige licença comercial. Vira
Apache-2.0em2030-09-01.
| Você diz | O que acontece |
|---|---|
| "Quanto sobrou do meu salário esse mês?" | current_month_spending + categories_insights |
| "Minha próxima fatura vai caber no orçamento?" | list_pending_invoices + budget_comparison |
| "Lança um Uber de R$ 27,50 no Nubank como Transporte" | list_accounts + list_categories + create_transaction |
English: *"How much is left of my salary?" / "Will my next bill fit the budget?" / "Log an Uber ride of R$27.50 on Nubank as Transportation."*
Isolamento total do backend-husk — este serviço não importa código do backend.
Claude / ChatGPT (MCP client)
│ OAuth 2.1 — DCR + PKCE (S256) ▼ ┌───────────────────────────────┐ │ cdf-mcp-server (este repo) │ Postgres isolado (Railway) │ • Authorization Server │ ├─ oauth_clients / oauth_codes │ • Resource Server (/mcp) │ ├─ oauth_tokens (hash SHA-256) │ • Catálogo declarativo │ └─ sessions (JWT mobile criptografado │ ~50 tools → REST │ AES-256-GCM) └───────────────┬───────────────┘ │ HTTPS — Bearer ▼ backend-husk (api.vessell.app) API pública — mesmo contrato do app mobile
Fluxo de login:
/register./authorize (form server-rendered, sem terceiros) → POST /api/mobile/auth/login com device_id=mcp- , platform=mcp.access/refresh do backend ficam criptografados em sessions; client MCP recebe apenas token opaco (oauth_tokens).access_token via refresh automaticamente (getValidAccessToken).GET /api/mobile/devices — revogável em DELETE /api/mobile/devices/:id.Por que isolado (README original): sem dependência circular, deploy/escala independentes (Railway vs Coolify no backend) e imune a troca de linguagem do backend — só fala HTTP.
Catálogo 100% declarativo em src/tools/catalog/ — cada tool é { name, method, path, input(zod) } executada por src/tools/register.ts. Nova rota no backend = nova entrada, sem handler.
| Domínio | Tools (exemplos) |
|---|---|
| User | get_profile, update_profile |
| Accounts / Cards | list_accounts, create_account, list_cards, current_invoice |
| Categories / Cost Centers | list_categories, create_category, list_cost_centers |
| Transactions | list_transactions, create_transaction, confirm_pending_transaction, upcoming_transactions |
| Recurring / Invoices | list_recurring_transactions, list_invoices, pay_invoice |
| Goals / Budgets / Debts | list_goals, budget_comparison, create_debt, debt_payoff_simulation |
| Equities / Investments | list_equities, add_equity_valuation, investments_workspace |
| Insights / Analytics | cashflow_forecast, spending_projection, networth_projection, categories_insights, behavior_insights, can_afford, analytics_history |
| Tags | list_tags, create_tag |
Fora de escopo de propósito (igual ao backend): admin, Stripe/pagamentos, webhooks, S3/anexos, /api/ai/*.
Modo somente leitura:
MCP_TOOLS_MODE=readonlyexpõe sóreadOnly:true— ideal para diretórios curados.
cp .env.example .env # preencha DATABASE_URL, TOKEN_ENCRYPTION_KEY, SESSION_SECRET
npm install npm run db:migrate npm run dev # http://localhost:8090
Teste com MCP Inspector:
npx @modelcontextprotocol/inspector
| Var | Obrigatória | Descrição |
|---|---|---|
PUBLIC_URL | sim | URL pública deste serviço (entra nos metadados OAuth). Gere o domínio antes do primeiro deploy |
PORT | não | default 8090 |
BACKEND_API_URL | sim | https://api.vessell.app (ou staging) |
DATABASE_URL | sim | Postgres isolado deste serviço |
TOKEN_ENCRYPTION_KEY | sim | 32 bytes base64: node -e "console.log(require('crypto').randomBytes(32).toString('base64'))" |
SESSION_SECRET | sim | string longa aleatória p/ cookies /authorize |
MCP_SERVICE_TOKEN | não | segredo serviço-a-serviço (backend-husk → MCP via X-CDF-User-Token). Se ausente, só OAuth |
MCP_TOOLS_MODE | não | full (default) ou readonly |
OPENAI_APPS_CHALLENGE_TOKEN | não | verificação de domínio OpenAI |
ALLOWED_ORIGINS | não | CORS do /authorize — default https://claude.ai,https://chatgpt.com |
Ver .env.example comentado.
railway init ou conecte o repo no dashboard.DATABASE_URL).Dockerfile → node dist/index.js (railway.json já configurado).railway run npm run db:migrate.https:// .up.railway.app/mcp — DCR/OAuth é automático.authorization_code.SHA-256 persiste (oauth_tokens), bruto é entregue uma vez.AES-256-GCM em sessions — nunca exposto ao client (src/crypto.ts, src/mcp/http.ts).mcp- (src/backend/client.ts:45) revogável sem afetar outros logins.redactLargeInlineData + redactFields (src/tools/register.ts:19) evita vazamento de data: URI e campos sensíveis pro LLM.Reporte vulnerabilidades em SECURITY.md — não abra issue pública: support@cdf.finance [SECURITY].
Este conector não transfere dinheiro/cripto/ativos e não executa pagamentos em nome do usuário — apenas lê e registra lançamentos no controle financeiro pessoal, igual ao app. Toda escrita é explícita e solicitada na conversa.
MCP_TOOLS_MODE=readonly.docs/4a-exception-request.md.joao@teste.com / 123456 (dados de amostra).Veja CONTRIBUTING.md — fork, branch feat/..., npm run build e PR com path validado no backend. Ao contribuir você licencia sob BUSL-1.1.
Source-available [BUSL-1.1](./LICENSE) — uso com o CDF Finance, pessoal, acadêmico e contribuições são livres. Proibido uso em produção como produto concorrente de gestão financeira (hosted/managed). Converte para Apache-2.0 em 2030-09-01.
Dúvidas comerciais: support@cdf.finance.
Construído com Model Context Protocol · Mantido por Vessell CDF Finance