Banco de Ferro MCP服务器
*“铁银行总是得到它应得的。*
Braavos有色金属银行的MCP服务器,实现通信 快速MCP (官方SDK)和运输 上海证券交易所 与Google ADK集成
建筑
┌─────────────────────────────────────────────────────────────────┐
│ Cloud Run │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ FastMCP Server │ │
│ │ │ │
│ │ /sse ──────► SSE Transport (MCP Protocol) │ │
│ │ /health ───► Health Check │ │
│ │ / ─────────► Server Info │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────────┐ │ │
│ │ │ 10 Tools │ │ │
│ │ │ • verificar_selo • obter_cotacao_moeda │ │ │
│ │ │ • autenticar_cliente • converter_moeda │ │ │
│ │ │ • consultar_cofre • listar_moedas │ │ │
│ │ │ • avaliar_peticao • listar_clientes │ │ │
│ │ │ • calcular_nova_honra • atualizar_honra_cliente │ │ │
│ │ └────────────────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ PostgreSQL (Cloud SQL) │ │
│ └───────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘生产 URL
https://banco-ferro-mcp-218827662558.us-central1.run.app端点
| Endpoint | 方法 | 描述 |
|---|---|---|
/ | GET | 服务器信息 |
/health | GET | 健康检查(verifica conexão DB) |
/sse | 得到 | 端点MCP SSE (MCP协议) |
可用工具
身份验证( 代理筛选)
verificar_selo
检查印章簿中是否存在个人印章 (CPF)。
{
"selo": "12345678901"
}返回 :
{
"encontrado": true,
"selo": "12345678901",
"nome": "Tyrion Lannister"
}autenticar_cliente
拥有个人印章和生日月亮的真正客户。
{
"selo": "12345678901",
"lua_nascimento": "15/06/1980"
}返回 :
{
"autenticado": true,
"cliente_id": 1,
"nome": "Tyrion Lannister",
"cofre_disponivel": 50000.00,
"honra_mercantil": 750
}______________________________________________________________________
信用(代理信用)
consultar_cofre
查看客户的可用保险箱(信用额度)。
{
"selo": "12345678901"
}返回 :
{
"nome": "Tyrion Lannister",
"cofre_disponivel": 50000.00,
"honra_mercantil": 750,
"limite_maximo": 100000.00
}avaliar_peticao
评估保险箱扩展请求(提高限额)。
{
"selo": "12345678901",
"novo_limite": 75000.00
}返回 :
{
"aprovado": true,
"status": "aprovado",
"honra_atual": 750,
"limite_por_honra": 100000.00,
"valor_solicitado": 75000.00,
"requer_entrevista": false
}______________________________________________________________________
面试(经纪人面试)
calcular_nova_honra
根据财务数据计算新的商业荣誉。
{
"renda_mensal": 15000.00,
"tipo_emprego": "formal",
"despesas_fixas": 5000.00,
"num_dependentes": 2,
"tem_dividas": false
}返回 :
{
"nova_honra": 820
}atualizar_honra_cliente
更新系统中客户的商业荣誉。
{
"selo": "12345678901",
"nova_honra": 820
}返回 :
{
"atualizado": true,
"honra_anterior": 750,
"nova_honra": 820,
"novo_limite": 150000.00
}______________________________________________________________________
外汇代理(Exchange Agent)
obter_cotacao_moeda
通过Frankfurter API获取实时报价。
{
"moeda": "USD"
}返回 :
{
"moeda": "USD",
"nome_tematico": "Dragao de Ouro",
"nome_real": "Dolar Americano",
"cotacao": 5.12,
"data": "2025-01-22",
"fonte": "frankfurter_api",
"unidade": "moedas de prata (BRL)"
}converter_moeda
转换外币价值至BRL.
{
"valor": 100.00,
"moeda_origem": "USD"
}返回 :
{
"valor_original": 100.00,
"moeda_origem": "USD",
"valor_convertido": 512.00,
"cotacao_utilizada": 5.12
}listar_moedas
列出可供报价的货币。
返回 :
{
"moedas": ["USD", "EUR", "GBP", "JPY", "ARS", "CHF", "BTC"]
}______________________________________________________________________
会话和记忆
create_session
创建新用户会话 。
{
"session_id": "sess_123",
"user_id": "user_456",
"agent_name": "triage"
}update_session_state
更新会话状态 。
{
"session_id": "sess_123",
"state": {"client_authenticated": true, "client_cpf": "12345678901"}
}get_session_state
恢复会话状态 。
save_memory
将信件保存到会话内存 。
{
"session_id": "sess_123",
"role": "user",
"content": "Quero consultar meu limite"
}load_memory
装入会话消息历史记录 。
clear_memory
清除会话中的所有内存 。
______________________________________________________________________
功利主义者
listar_clientes
在银行注册的客户名单。
{
"limite": 10
}返回 :
{
"clientes": [
{"selo": "12345678901", "nome": "Tyrion Lannister", "cofre": 50000.00, "honra": 750},
{"selo": "98765432109", "nome": "Daenerys Targaryen", "cofre": 100000.00, "honra": 900}
]
}主题货币
| 代码 | 名字在布拉沃斯 | 真实姓名 |
|---|---|---|
| USD | 黄金龙 | 美元 |
| 欧元 | 欧元 | |
| GBP | 北克朗 | 英镑 |
| JPY | Yi Ti | 日元 |
| ARS | 夏季群岛比索 | 阿根廷比索 |
| CHF | 瑞士法郎 | |
| BTC | 瓦利里亚黄金 | Bitcoin |
与 Google ADK 集成
通过SSE连接
from google.adk.tools.mcp_tool.mcp_toolset import McpToolset, SseConnectionParams
toolset = McpToolset(
connection_params=SseConnectionParams(
url="https://banco-ferro-mcp-218827662558.us-central1.run.app/sse",
),
)
# Obter tools
tools = await toolset.get_tools()
# Usar em um agente
from google.adk.agents import LlmAgent
agent = LlmAgent(
name="meu_agente",
model=model,
tools=[toolset],
)地方 发展
要求
- Python 3.10+
- PostgreSQL(或访问云 SQL)
安装
cd banco-ferro-mcp
python -m venv .venv
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
pip install -r requirements.txt环境变量
DB_HOST=seu_host_aqui
DB_PORT=5432
DB_USER=seu_usuario
DB_PASSWORD=sua_senha_segura
DB_NAME=banco_ferro
PORT=8080注: 永远不要在仓库中提交真正的凭据。 使用文件.env位置(必须在.gitignore).
在本地运行
python main.py服务器将可在 http://localhost:8080.
测试本地 SSE
curl http://localhost:8080/sse -H "Accept: text/event-stream"部署无云运行
gcloud run deploy banco-ferro-mcp \
--source . \
--region us-central1 \
--allow-unauthenticated堆栈技术
| 组件 | 技术 |
|---|---|
| 框架MCP | FastMCP(MCP-python SDK) |
| 传输 | SSE(服务器发送事件) |
| Web框架 | Starlette(通过FastMCP) |
| 数据库 | PostgreSQL 15(云SQL) |
| 交易所API | 法兰克福API |
| 部署 | 谷歌云运行 |
| 地区 | us-central1 |
项目结构
banco-ferro-mcp/
├── main.py # FastMCP Server com todas as tools
├── requirements.txt # Dependências
├── Dockerfile # Container para Cloud Run
├── README.md # Esta documentação
└── banco_ferro_mcp/ # Módulo Python (legacy)
├── __init__.py
├── database.py
├── currency_api.py
└── server.py数据库
表格
clientes
| 列 | 类型 | 描述 | |
|---|---|---|---|
| id | 序列号 | 唯一id | |
| 个人邮票 | VARCHAR(11) | CPF (独特) | |
| 名称 | VARCHAR(100) | 客户名称 | |
| 出生月 | VARCHAR(10) | 出生日期 (DD/MM/AAAA) | |
| cofre_available | DECIMAL(15.2) | 信用额度 | |
| 荣誉 | 商业 | 整数 | 信用评分(0-1000) |
tabela_honra
| 列 | 类型 | 描述 |
|---|---|---|
| id | 序列号 | 唯一id |
| honora_min | INTEGER | 最小音轨分数 |
| honora_max | INTEGER | 音轨的最大分数 |
| cofre_maximo | DECIMAL(15.2) | 允许的最大限制 |
peticoes_expansao
| 列 | 类型 | 描述 |
|---|---|---|
| id | 序列号 | 唯一id |
| 客户ID | 整数 | 客户FK |
| sealo_client | VARCHAR(11) | 客户端 CPF |
| 当前限制 | DECIMAL(15.2) | 当前限制 |
| new_limit_requested | DECIMAL(15,2) | 新的限制请求 |
| status | VARCHAR(20) | 批准/拒绝 |
______________________________________________________________________
*“多哈里斯的价值。让你的货币不断增长。”*
