Skip to main content
Glama
jadenmong

financial-trading-risk-aiops-assistant

by jadenmong

金融交易风控智能运维助手

CI Security License: MIT Node.js 22 Java 21 Python 3.12

面向交易运营、风控分析、报告审批、审计与平台值班场景的机构级只读 AIOps 助手参考实现。项目将确定性金融计算、真实数据接入边界、只读 MCP 工具、证据链、权限边界、持久化工作流和可观测性整合在同一套 monorepo 中,便于演示、验证和二次开发。

核心原则:AI 负责归纳与解释,金融数值、权限判断和工作流状态由确定性代码控制。

快速开始 · 系统架构 · 生产化能力 · MCP-接入 · 验证状态 · 文档导航

IMPORTANT

所有内置账户、交易、行情和异常均为虚构数据。系统不具备下单、撤单、改单、持仓修改或风险限额修改能力,不预测或承诺收益,也不构成投资建议。

NOTE

这是生产化设计的参考实现,不代表已经通过任何机构、监管、SOC 2、ISO 27001 或长期生产运行认证。详见不宣称认证

项目亮点

方向

已实现能力

确定性风险计算

Java BigDecimal 计算 A 股与股指期货敞口、PnL、保证金、杠杆与六类风险限额

交易后对账

对比 OMS 与券商订单/成交,识别重复成交、孤立成交、数量、状态和币种差异

只读 AI 工具

8 个 MCP 工具覆盖行情、风险、对账、报告预览、事故上下文、系统健康和审计搜索

Agent 治理

固定 DAG、显式工具 allowlist、模型预算、超时与有限降级;诊断运行和步骤可持久化

报告治理

日报预览与正式草稿分离,正式报告采用 maker-checker 审批、乐观锁和不可变对象存储

事件接入

/internal/v1/events 接收授权源事件,支持幂等、乱序/未来时间处置、原始事件留痕

事故闭环

事故创建、确认、关闭和证据关联 API,支撑平台值班与处置记录

证据与审计

响应携带版本、观测时间、trace ID 和 SHA-256 证据引用;证据可查询,审计不可写时 fail closed

生产边界

production readiness 拒绝 reference/sample/fake 路径、缺失 mTLS、缺失 secret 或非授权行情源

纵深安全

OIDC + PKCE、token exchange/downscope、RBAC + ABAC、PostgreSQL RLS 与网络分区

工程化交付

OpenAPI/AsyncAPI/JSON Schema、CI、安全扫描、Compose、Helm、OTel、Grafana、k6 与演练手册

Related MCP server: EODHD MCP Server

系统架构

flowchart LR
    Operator[交易运营 / 风控 / 审计] --> Console[Vue 3 Ops Console]
    Console <-->|OIDC Authorization Code + PKCE| Keycloak[Keycloak]
    Console -->|REST + Bearer Token| Core[Java Risk Core]

    Sources[授权 OMS / PMS / 行情 / 告警源] -->|mTLS + ingest:write 事件| Core

    Client[MCP Client / Agent] -->|Streamable HTTP 或 stdio| Gateway[AI / MCP Gateway]
    Gateway <-->|鉴权与 Token Exchange| Keycloak
    Gateway -->|Down-scoped Token| Core

    Core --> Postgres[(PostgreSQL + RLS)]
    Core --> MinIO[(MinIO Evidence)]
    Core -.-> Redpanda[(Redpanda 部署基线)]

    Console -.-> Telemetry[OpenTelemetry / Prometheus / Grafana]
    Gateway -.-> Telemetry
    Core -.-> Telemetry

关键边界:

  • AI Gateway 是 MCP 鉴权、工具发现和 Agent 编排边界,校验 OriginHost、issuer、audience、expiry 与 scope。

  • Risk Core 是授权、金融计算、报告治理和审计的最终执行点;即使 Gateway 已鉴权,Core 仍会执行 RBAC、账户级 ABAC 和 RLS。

  • 金额、价格、数量、敞口与比率在 JSON 中统一使用十进制字符串,TypeScript 层不执行金融数值计算。

  • reference / staging / production 明确分层;production readiness 会拒绝 reference/sample/fake 路径、缺失 mTLS、缺失 secret、localhost issuer 或非授权行情源。

  • reference profile 使用固定仿真数据与 deterministic fake model,可离线复现;生产 profile 禁止开发身份头、内存持久化、用户 token 透传和公开行情源作为真相源。

  • stdio 模式默认连接内置仿真数据源;HTTP 模式由 Gateway 调用 Risk Core。

  • Redpanda 已提供 Compose/Helm 与事件契约基线;Risk Core 已持久化接入事件处置、工作流状态、outbox、证据和事故记录。

更完整的设计说明见架构与关键边界架构决策记录

服务与技术栈

组件

技术

职责

apps/ops-console

Vue 3、TypeScript、Element Plus

风险概览、账户风险、对账差异、Agent 时间线、事故处置、报告审批、审计查询

apps/ai-gateway

Node.js 22、TypeScript、MCP SDK v2

/mcp、stdio、OIDC、scope 过滤、8 个只读工具、模型路由、生产 readiness guard 与审计

apps/risk-core

Java 21、Spring Boot 4.1、MyBatis

确定性风险计算、对账、事件接入、持久化工作流、事故闭环、授权、证据与审计

apps/market-adapter

Python 3.12、FastAPI

可选公开行情适配器;默认关闭,不能成为交易或持仓真相源

contracts

OpenAPI、AsyncAPI、JSON Schema

REST、事件接入与 MCP 响应的版本化契约

infra

Compose、Helm、Keycloak、OTel、Grafana

本地编排、身份、可观测性、runtime mode 与部署基线

.
├─ apps/                 # Console、Gateway、Risk Core、Market Adapter
├─ contracts/            # OpenAPI、AsyncAPI、JSON Schema
├─ docs/                 # 架构、安全、模型、运维与验证证据
├─ evals/                # 越权与提示注入评测集
├─ infra/                # Compose、Helm、Keycloak、OTel、Grafana
├─ load-tests/           # k6 场景
├─ prompts/              # 版本化提示词
└─ scripts/              # 契约、供应链与构建校验脚本

生产化能力

本项目保持“金融交易风控智能运维助手”定位,不进入交易执行关键路径。生产化改造聚焦于真实数据接入、持久化状态、证据化诊断、事故处置和运维审计。

能力

接口或机制

生产边界

只读源数据接入

POST /internal/v1/events

生产要求 mTLS + ingest:write scope;事件写入原始表并记录处置结果

风险与对账查询

GET /api/v1/risk-snapshotsGET /api/v1/reconciliation-breaks

只读查询,账户级 ABAC + PostgreSQL RLS

诊断工作流

POST /api/v1/diagnosesGET /api/v1/diagnoses/{id}

幂等创建,固定 DAG,运行和步骤持久化

报告治理

GET/POST /api/v1/reportsPOST /api/v1/reports/{id}/decisions

maker-checker、If-Match 乐观锁、批准内容不可变

证据与审计

GET /api/v1/evidence/{id}GET /api/v1/audit-events

SHA-256 内容寻址,审计 fail closed

事故处置

GET/POST /api/v1/incidentsPOST /api/v1/incidents/{id}/ackPOST /api/v1/incidents/{id}/close

仅记录运维处置,不修改交易、持仓或限额

生产就绪门禁

Risk Core 与 AI Gateway readiness

APP_RUNTIME_MODE=production 时拒绝 reference/sample/fake、缺失 mTLS、缺失 secret、localhost issuer 和非授权行情源

快速开始

方式一:Docker Compose 体验完整平台

前置条件:Git、Docker Engine 与 Docker Compose v2。

git clone https://github.com/jadenmong/financial-trading-risk-aiops-assistant.git
cd financial-trading-risk-aiops-assistant
docker compose up --build -d
docker compose ps

首次构建和启动需要等待镜像下载、数据库就绪与 Keycloak realm 导入。可通过以下地址访问:

服务

地址

用途

Ops Console

http://localhost:5173

业务控制台

AI/MCP Gateway

http://localhost:3000/health/ready

Gateway 就绪检查;MCP 端点为 /mcp

Risk Core

http://localhost:8080/actuator/health/readiness

核心服务就绪检查

Keycloak

http://localhost:8081

OIDC 与参考 realm

Grafana

http://localhost:3001

可观测性面板

Prometheus

http://localhost:9090

指标查询

参考环境内置账号仅用于本机演示:

角色

用户名

密码

风控分析员

risk-analyst-a

reference-analyst-only

报告审批人

report-approver-b

reference-approver-only

审计员

auditor

reference-auditor-only

Keycloak 管理员

admin

reference-admin-only

Grafana 管理员

admin

reference-grafana-only

停止服务:

docker compose down
WARNING

上述共享凭据、开发模式和本地端口映射只属于reference 环境,禁止带入生产。CI 已验证 Compose 配置和三个应用镜像构建;全栈启动、恢复与负载演练的最新状态请以验证状态为准。

方式二:运行本地检查与 MCP smoke

前置条件:Node.js 22、Java 21、Python 3.12。Java 构建使用仓库内 Maven Wrapper,不要求全局安装 Maven。

npm ci
python -m pip install -e "apps/market-adapter[test]"
npm run check
npm run smoke

npm run check 会依次执行 Node/Java/Python 测试、类型检查、契约校验、供应链锁校验、安全评测和应用构建。只想快速验证 MCP 仿真数据时,执行 npm ci && npm run smoke 即可。

MCP 接入

所有 MCP 工具均为业务只读、幂等且默认不访问开放世界:

工具

所需 scope

说明

get_market_snapshot

market:read

行情快照、新鲜度、质量标记与证据

get_position_risk

risk:read

仓位、敞口、PnL、保证金与限额突破

reconcile_orders

reconciliation:read

OMS/券商订单成交差异与证据

generate_daily_report

report:preview

生成不落盘的日报预览;正式草稿走 REST 工作流

get_incident_context

incident:read

读取事故状态、证据 ID 与运维上下文

get_system_health

system:read

读取平台健康状态与未关闭事故数量

explain_reconciliation_breaks

reconciliation:read

基于确定性对账结果解释差异原因

search_audit_events

audit:read

按 trace ID 或 subject 查询追加式审计事件

所有工具返回统一 envelope:

{ schemaVersion: "1.0", ok, data/error, meta }

meta.evidenceRefs 保存内容寻址的 SHA-256、数据版本与观测时间,便于复核和追踪。

本地 MCP 客户端可直接通过 stdio 使用确定性仿真数据,无需模型密钥或 Docker:

{
  "mcpServers": {
    "risk-aiops": {
      "command": "npm",
      "args": ["run", "start:stdio", "-w", "@risk-aiops/ai-gateway"],
      "cwd": "/absolute/path/to/financial-trading-risk-aiops-assistant"
    }
  }
}

Windows 可将 cwd 写成正斜杠路径,例如 D:/projects/financial-trading-risk-aiops-assistant。Compose 的参考 HTTP 模式使用 Bearer reference-token;非参考环境必须使用 OIDC access token、正确 audience 与所需 scope。

配置与模型

仓库默认使用 APP_RUNTIME_MODE=referenceREFERENCE_MODE=trueREFERENCE_AUTH=trueMODEL_PROVIDER=fake,因此 CI、smoke 和 Compose 不需要外部模型密钥。真实模型仅用于受控的手工环境;配置字段见 .env.exampleGateway 配置示例

生产模式必须显式设置 APP_RUNTIME_MODE=production,并提供真实 OIDC issuer、Gateway confidential client secret、服务端 mTLS、外部 secret store、授权行情源、PostgreSQL、Keycloak、MinIO/WORM 对象存储和 Redpanda。Risk Core 与 AI Gateway 的 readiness 会在发现 reference/sample/fake 路径或关键生产依赖缺失时返回 DOWN

模型调用受以下硬边界约束:

  • 单次调用预算 8 秒;单次运行最多 12 个 step、6 次模型调用、30 秒和估算 0.25 美元。

  • 仅 timeout、429、5xx 或熔断可触发模型降级;鉴权失败、安全拒绝和 Schema 错误不降级。

  • 模型输出始终视为不可信输入,不能修改授权、预算、金融计算结果或交易状态。

  • OpenAI/Anthropic 的真实密钥不得写入仓库,应由外部 secret store 注入。

完整限制、已知风险与评测范围见模型卡

验证状态

截至 2026-08-10

范围

状态

npm run check 全量本地检查

PASS

Node 类型检查、8 个测试套件 / 22 个测试、Gateway 与 Console 构建

PASS

Java 风险公式、安全守卫与生产 readiness 测试;12 个测试、1 个 Testcontainers 测试因本机无 Docker 跳过;可执行 JAR 构建

PASS_LOCAL

Python 适配器测试

PASS

100 条越权/提示注入 fake-model eval

PASS,50/50 拒绝,泄漏 0

契约校验

PASS,2 个 JSON Schema、13 个事件 topic 与生产 REST 契约

PostgreSQL Testcontainers migration、Compose 三应用镜像构建

PASS_CI / 本机 Docker 缺失时跳过

Gitleaks、Trivy、依赖审计、三语言 CodeQL

PASS_CI

Compose 全栈运行、k6 10 分钟压测、kind/Helm smoke、备份恢复、真实模型 smoke

NOT RUN

证据与边界以验证状态总表本地验证记录为准。项目明确区分“设计目标”“测试脚本存在”和“实测通过”。

安全与生产边界

  • 业务交易面只读;报告草稿、审批和诊断状态属于受控运维工作流,不会产生交易指令。

  • 非本地环境必须配置真实 issuer、audience、Gateway 客户端密钥引用、TLS 和严格的 Host/Origin allowlist。

  • 生产环境必须启用 PostgreSQL、Keycloak、MinIO/WORM 对象存储、Redpanda、外部 secrets、服务间 mTLS 与网络策略,不得使用 reference profile 的共享身份、固定数据、sample core、fake model 或公开行情源作为真相源。

  • 生产 readiness 会拒绝 REFERENCE_MODE=trueREFERENCE_AUTH=trueRISK_CORE_MODE=sampleMODEL_PROVIDER=fake、localhost issuer、缺失对象存储凭据、缺失 source mTLS 或非 licensed 行情源。

  • 内部接入 API 只接收授权源事件,不提供下单、撤单、改单、持仓修改或风险限额修改接口。

  • 发现安全问题时请遵循 SECURITY.md,不要通过公开 Issue 披露敏感漏洞。

文档导航

贡献与许可证

提交前请阅读 CONTRIBUTING.md,并至少运行 npm run check。本项目采用 MIT License

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    Enables querying real-time and historical financial market data for stocks, options, forex, and crypto, including quotes, trades, technical indicators, and reference data through a set of MCP tools.
    71
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables access to financial market data including EOD, intraday, fundamentals, news, and more via 75 read-only MCP tools.
    5
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Read-only MCP server that provides enterprise research frameworks, frozen snapshots, and historical factor summaries with sources and falsification conditions, without trading advice.
    6
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Public read-only Précis Finance MCP demo with synthetic data; no account or credentials required.

  • Read-only XRP Ledger MCP tools with proof-annotation envelopes and signed daily snapshots.

  • Hosted MCP for stocks, options, Greeks, brokers, order previews, alerts, and workflows.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jadenmong/financial-trading-risk-aiops-assistant'

If you have feedback or need assistance with the MCP directory API, please join our Discord server