卡限额管理器💳
一种模型上下文协议(MCP)服务器,用于管理借记卡交易限额,包括POS支付、ATM取款和电子商务购买。建于 FastMCP,并由中的REST API支持 ../limit-api.
特性
- 获取支付工具:检索所有当前限额的账户和卡
- 获取电流限制:查看默认卡的限制
- 更改交易限额:更新POS、ATM或电子商务交易的永久限额
- 创建临时限制:设置带有开始和结束日期的临时限制覆盖
- API包装:所有业务逻辑和数据访问都委托给
limit-api
项目结构
.
├── fastmcp_server.py # MCP server implementation
├── pyproject.toml # Python project & dependencies
├── openapi.yaml # API specification
├── README.md # This file
└── data/ # Legacy mock files (no longer used by MCP runtime)设置
先决条件
- Python 3.14+
- 紫外线
安装
uv sync运行服务器
- 首先启动REST API:
cd /home/milad/Projects/limit-api
uv run uvicorn main:app --reload --host 0.0.0.0 --port 2010- 启动MCP服务器:
cd /home/milad/Projects/limit-mcp
uv run python fastmcp_server.py服务器将于启动 http://localhost:2009/mcp
默认情况下,MCP调用 http://127.0.0.1:2010。要以另一个API主机为目标:
LIMIT_API_BASE_URL=http://your-api-host:2010 uv run python fastmcp_server.py可用工具
get_payment_instruments()
检索所有用户帐户和相关借记卡及其当前限额。
答复:
{
"accounts": [
{
"accountId": "ACC-001",
"accountNumber": "****5678",
"accountType": "checking",
"balance": 15000.00,
"currency": "USD",
"cards": [
{
"cardId": "CARD-001",
"cardNumber": "****1234",
"cardHolderName": "John Doe",
"cardType": "debit",
"status": "active",
"currentLimits": {
"pos": 1000,
"atm": 500,
"ecom": 2000
},
"temporaryLimits": []
}
]
}
]
}get_current_limits()
获取默认卡(card-001)的当前限制。
答复:
{
"cardId": "CARD-001",
"limits": {
"pos": 1000,
"atm": 500,
"ecom": 2000
},
"temporaryLimits": []
}change_limit(limit_type, limit)
更改卡交易限额。
参数:
limit_type(string):限制类型-"pos","atm",或"ecom"limit(整数):新限额金额(欧元)
例子:
{
"limit_type": "pos",
"limit": 1500
}答复:
{
"cardId": "CARD-001",
"type": "pos",
"old": 1000,
"new": 1500
}create_temporary_limit(limit_type, limit, start_date, end_date)
创建临时交易限额覆盖。
参数:
limit_type(string):限制类型-"pos","atm",或"ecom"limit(整数):临时限额金额(欧元)start_date(字符串):YYYY-MM-DD格式的开始日期end_date(字符串):YYYY-MM-DD格式的结束日期
例子:
{
"limit_type": "atm",
"limit": 1000,
"start_date": "2026-01-27",
"end_date": "2026-02-01"
}答复:
{
"cardId": "CARD-001",
"created": {
"type": "atm",
"limit": 1000,
"startDate": "2026-01-27",
"endDate": "2026-02-01"
}
}数据所有权
MCP不再直接读写卡限制JSON文件。 所有读/写都是通过 limit-api,它拥有验证和持久性。
限制类型
pos:销售点/店内付款限额atm:ATM/现金取款限额ecom:电子商务/在线支付限额
默认卡
服务器使用默认卡(card-001)进行限额操作。要更改默认卡,请修改 DEFAULT_CARD_ID 常数in fastmcp_server.py.
测试
您可以使用curl测试API:
# Get payment instruments
curl -X GET http://localhost:2009/mcp/tools/get_payment_instruments
# Change a limit
curl -X POST http://localhost:2009/mcp/tools/change_limit \
-H "Content-Type: application/json" \
-d '{"limit_type": "pos", "limit": 2000}'
# Create a temporary limit
curl -X POST http://localhost:2009/mcp/tools/create_temporary_limit \
-H "Content-Type: application/json" \
-d '{
"limit_type": "atm",
"limit": 1500,
"start_date": "2026-01-27",
"end_date": "2026-02-10"
}'许可证
麻省理工学院
