金融模拟服务器

fi-mcp-dev是一个轻量级的模拟服务器,用于黑客马拉松、演示和开发环境,模拟Fi MCP生产服务器的核心功能,提供虚拟数据和简化的认证流程。

  • by SiddharthJiyani
  • HTML
  • 本地部署
  • 更新于
在 GitHub 查看 siddharthjiyani/artha-mcp-server

使用说明

fi mcp开发

Fi MCP服务器的最低版本,可用于黑客马拉松。该项目提供了一个轻量级的模拟服务器,用于黑客马拉松、演示和开发,用虚拟数据和简化的身份验证模拟生产Fi MCP服务器的核心功能。

目的

  • fi mcp开发 是为那些希望在不访问真实用户数据或生产系统的情况下尝试Fi-MCP API的黑客马拉松参与者和开发人员设计的。
  • 它提供虚拟财务数据,并使用虚拟身份验证流程,使其在非生产环境中安全易用。

特性

  • 模拟Fi-MCP API:实现净值、信用报告、EPF详细信息、共同基金交易和银行交易的端点。
  • 虚拟数据:所有响应都来自静态JSON文件 test_data_dir/,代表各种用户场景。
  • 伪身份验证:使用允许的电话号码(目录名)的简单登录流程 test_data_dir/).没有真正的OTP或用户验证。
  • 黑客马拉松准备就绪:没有真正的集成,没有敏感数据,易于重置或扩展。

目录结构

  • main.go --入口点,设置服务器和端点。
  • middlewares/auth.go --实现虚拟身份验证和会话管理。
  • test_data_dir/ --包含以允许的电话号码命名的目录。每个目录保存不同API响应的JSON文件(例如。, fetch_net_worth.json).
  • static/ --登录和登录成功页面的HTML文件。

虚拟数据场景

虚拟数据涵盖了各种用户状态。示例场景:

  • 所有关联资产:银行、EPF、印度股票、美国股票、信用报告、大型或小型共同基金投资组合。
  • 除银行账户外的所有资产:没有银行账户,但有其他资产。
  • 多家银行和UAN:多个银行账户和EPF UAN,部分交易覆盖。
  • 无关联资产:只有储蓄账户余额。
  • 无信用报告:除信用报告外的所有资产。

测试数据场景

电话号码 描述
1111111111 无关联资产。仅存在储蓄账户余额
2222222222 所有关联资产(银行账户、EPF、印度股票、美国股票、信用报告)。包含9只基金的大型共同基金投资组合
3333333333 所有相关资产(银行账户、EPF、印度股票、美国股票、信用报告)。只有一只基金的小型共同基金投资组合
4444444444 所有相关资产(银行账户、EPF、印度股票、美国股票)。只有一只基金的小型共同基金投资组合。已连接2个UAN帐户。有3家不同的银行,有多个账户。只有2个银行账户的交易记录
5555555555 除信用评分外的所有相关资产(银行账户、EPF、印度股票、美国股票)。只有一只基金的小型共同基金投资组合。有3家不同的银行,有多个账户。只有2个银行账户的交易记录
6666666666 除银行账户外的所有关联资产(EPF、印度股票、美国股票)。拥有9只基金的大型共同基金投资组合。未连接银行账户
7777777777 债务沉重的低绩效者。一个共同基金表现不佳、负债(信用卡和个人贷款)高的用户。MF回报率低(XIRR<5%)。没有多样化(全部股权,少数基金)。信用评分<650。信用卡使用率高,多次贷款。可忽略的净值或负值。
8888888888 SIP武士。每月通过SIP持续投资于多个共同基金。MF中有3-5个活动SIP。中等回报率(XIRR 8-12%)。
99999999999 固定收益狂热者。强烈偏好债务共同基金和定期存款等低风险投资。80%投资于债务型金融机构。偶尔的黄金ETF(可选)。持续但缓慢的净值增长(XIRR~8-10%)。
1010101010 贵金属信徒。对黄金和定期存款的高配置,最低的股权敞口。黄金MF/ETF约占投资的50%。黄金基金中的保守SIP。FD和经常性存款。最低股权敞口。
1212121212 休眠的EPF Earner。有公积金账户,但雇主停止缴费;平衡停滞。EPF余额>₹2 lakh.利息未记入贷方。没有私人投资。
1414141414 工资水槽。用户的工资主要被EMIs和信用卡账单所消耗。每月工资抵免。70%用于EMIs和信用卡费用。低投资或零投资。信用评分~600–650。
13131313 平衡增长跟踪器。投资组合多样化,包括EPF、MF、股票和一些美国敞口。EPF贡献高。股权和混合型中小企业中的SIP。国际MF/ETF 10-20%。健康的净值增长。良好的信用评分(750+)。
2020202020 新手储蓄。最近开始投资,门票规模小,交易少。只有1-2个MF,开始于6个月前。 SIP ₹500–₹1000. 最低银行余额,无债务。
15151515 幽灵投资组合。有旧的投资,但多年来没有任何变化。3年内不得购买/赎回MF。EPF停滞或部分撤回。没有SIPs或工资流入。净值持平或下降。
1616161616 提前退休梦想家。优化投资,到40岁退休。高储蓄率,节俭的生活方式。激进的股权敞口(80-90%)。精简每月开支。重大SIP+NPS+EPF贡献。没有贷款,没有奢侈消费。目标是年支出净值的30倍。
17171717 骗子。定期买卖移动金融和股票,寻求短期收益。许多MF在6个月内赎回。仅限股票基金,客户流失率高。没有SIP。持有期短。银行账户交易量高。
1818181818 被动贡献者。没有个人收入,但有过去工作的EPF和联合银行账户。旧EPF,没有当前捐款。没有活动的SIP。交易反映了共同的家庭支出。无信用评分记录(无贷款/信用卡)。
1919年-1919年 第80C节战略家。主要使用ELSS、EPF、NPS来优化税收。ELSS SIPs第四季度(1月至3月)。EPF激活。NPS数据(如果可用)。没有非税收节约投资。低风险债务资金作为余额。
2121212121 双收入发电机。有自由职业+工资收入;现金流不平衡,但投资稳定。工资+来自UPI应用程序的多个学分。MF投资不规则但在增加。银行账户流动性高。信用评分超过700。偶尔的商业贷款或透支。
2222222222 突然的财富接管人。最近继承的财富,学习如何管理它。跨类别的一次性投资。银行闲置现金高。最近MF收购,还没有SIPs。没有信用记录或债务。EPF缺失或处于休眠状态。
2323232323 海外优化器。NRI继续管理印度EPF、MF和银行账户。大型EPF语料库。没有工资流入,偶尔有外国汇款。大宗MF交易。印度地址缺失或已过时。在印度没有使用信用卡。
2424242424 抑制金钱心态。不信任市场;一切都在银行储蓄和FD中。95%的净资产为固定资产/储蓄。没有共同基金或股票。EPF可能在场。没有债务或信用评分。低但持续的净值增长。
2525252525 活在当下。收入高,但都花掉了。投资微不足道或不稳定。工资待遇>₹2L/月。食物、购物、旅行支出高。没有SIPs,也许是MF的一次性购买。信用卡欠款经常滚存。信用评分<700,净值低或为零。

示例:虚拟数据文件

样品 fetch_net_worth.json (为简洁起见截断):

{
  "netWorthResponse": {
    "assetValues": [
      {"netWorthAttribute": "ASSET_TYPE_MUTUAL_FUND", "value": {"currencyCode": "INR", "units": "84642"}},
      {"netWorthAttribute": "ASSET_TYPE_EPF", "value": {"currencyCode": "INR", "units": "211111"}}
    ],
    "liabilityValues": [
      {"netWorthAttribute": "LIABILITY_TYPE_VEHICLE_LOAN", "value": {"currencyCode": "INR", "units": "5000"}}
    ],
    "totalNetWorthValue": {"currencyCode": "INR", "units": "658305"}
  }
}

身份验证流程

  • 当调用工具/API时,服务器将检查有效的会话。
  • 如果未通过身份验证,系统会提示用户通过网页登录(/mockWebPage?sessionId=...).
  • 输入任何允许的电话号码(请参阅中的目录 test_data_dir/).OTP未验证。
  • 成功登录后,会话将在服务器运行期间存储在内存中。

运行服务器

先决条件

安装依赖项

go mod tidy

启动服务器

FI_MCP_PORT=8080 go run .

服务器将于启动 http://localhost:8080.

用法

  • 按照此说明进行操作 指南 设置客户端
  • 将url替换为本地运行的服务器,例如: http://localhost:8080/mcp/stream
  • 当系统提示登录时,使用上述电话号码之一
  • Otp/密码可以是网页上的任何东西

简单的curl客户端

curl -X POST -H "Content-Type: application/json" -H "Mcp-Session-Id: mcp-session-594e48ea-fea1-40ef-8c52-7552dd9272af" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"fetch_bank_transactions","arguments":{}}}' http://localhost:8080/mcp/stream

如果你运行一次,你会得到 login_url 作为响应,登录后再次运行它将为您提供数据