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.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://mcp.cdf.finance/mcp在终端中运行这条命令
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"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"cdf": {
"type": "http",
"url": "https://mcp.cdf.finance/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://mcp.cdf.finance/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 VessellTech 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(0.1.8)于2个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Finance Toolkit, SolidInvoice, Korea Tax Calculator
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
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.
按原文从作者的仓库复制。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