Skip to main content
Glama
RockFlow-AI

broker-mcp-demo

by RockFlow-AI

Broker MCP Demo

Ein Demo-MCP-Server für Broker (Python-Version) basierend auf FastMCP, mit zwei Vereinfachungen:

  • Authentifizierung über statischen API-Key (Authorization: Bearer <api-key>), ohne OAuth;

  • Keine echten Service-Adressen eingebaut: Die Adresse des nachgelagerten Broker-Backends wird vom Nutzer über Umgebungsvariablen selbst konfiguriert. Wenn nicht konfiguriert, geben die Tools integrierte Beispieldaten zurück (die Antwort trägt die Markierung "mock": true), sofort einsatzbereit.

Architektur

┌─────────────┐  Bearer <api-key>  ┌────────────────────┐   HTTP   ┌──────────────┐
│  MCP Client │───────────────────▶│  Broker MCP Demo   │─────────▶│  券商后端服务  │
│  (Claude…)  │◀───────────────────│  (API key 校验)     │◀─────────│ (自行配置)   │
└─────────────┘                    └────────────────────┘          └──────────────┘

Anfrageablauf:

  1. Der Client sendet eine Anfrage an POST /mcp mit Authorization: Bearer <api-key>.

  2. Der Server vergleicht den Key nacheinander mit den in BROKER_MCP_API_KEYS konfigurierten Werten; bei Übereinstimmung wird die Anfrage durchgelassen, andernfalls wird 401 zurückgegeben.

  3. Tool-Aufrufe werden an das Broker-Backend unter BROKER_MCP_BACKEND_BASE_URL weitergeleitet; wenn nicht konfiguriert, werden integrierte Beispieldaten zurückgegeben.

Tools

Insgesamt 10 Beispiel-Tools, die vier Kategorien abdecken: Marktdaten, Positionen/Bestellungen, Handel und Wissensdatenbank. Die Pfade der nachgelagerten Schnittstellen sind nur schematisch; beim Anschluss an ein echtes Backend muss lediglich der path in tools/ entsprechend angepasst werden.

Marktdaten (market.py)

Tool

Parameter

Beschreibung

search_ticker

keyword

Sucht Instrumente nach Firmenname/Code und ermittelt market + symbol

get_latest_quote

market, symbol

Fragt die aktuellen Marktdaten eines Instruments ab

get_chart

market, symbol, span=1month

Historische Kerzen; span unterstützt 1day / 1week / 1month / 1year / 5year

Positionen / Vermögen / Bestellungen (portfolio.py)

Tool

Parameter

Beschreibung

get_positions

Aktuelle Positionsliste (inkl. Gewinn/Verlust)

get_assets

Kontovermögen (Bargeld, Marktwert, Gesamtvermögen usw.)

get_orders

status=OPEN, limit=20

Bestellliste; status unterstützt OPEN / FILLED / CANCELLED / ALL

get_order

order_id

Details einer einzelnen Bestellung

cancel_order

order_id

Storniert eine nicht ausgeführte Bestellung

Handel (trade.py)

Tool

Parameter

Beschreibung

create_order

symbol, market, side, order_type, quantity, price?, validity

Erstellt (übermittelt) eine Handelsbestellung

  • order_type: MARKET_ORDER (Marktpreis) / LIMIT_ORDER (Limit, erfordert price).

  • side: BUY / SELL; validity: GOOD_FOR_DAY / GOOD_TILL_CANCELLED.

Wissensdatenbank (knowledge.py)

Tool

Parameter

Beschreibung

search_knowledge_base

query, language=zh-Hans, top=10

Durchsucht die Plattform-Wissensdatenbank (QA zu Kontoeröffnung, Ein-/Auszahlungen, Handelsregeln usw.)

  • language: zh-Hans / zh-Hant / en; top Bereich 3~20.

  • In echten Projekten übernimmt das Backend in der Regel Vektorsuche + semantisches Ranking (z. B. Azure Cognitive Search, Elasticsearch, Milvus usw.); diese Demo ist an keine konkrete Implementierung gebunden.

Jedes Tool ist mit dem log_tool-Dekorator aus decorators.py versehen, der einheitlich den Aufrufer (die dem API-Key entsprechende client_id), die Eingabeparameter und die Dauer protokolliert. Beim Hinzufügen neuer Tools werden diese im entsprechenden Modul innerhalb von register(mcp) mit @mcp.tool + @log_tool deklariert und in register_tools() in tools/__init__.py registriert.

Ausführung

pip install -r requirements.txt

cp .env.example .env   # 按需修改 API key、后端地址
python -m broker_mcp_demo

Standardmäßig lauscht der Server auf 0.0.0.0:8000, der MCP-Endpunkt ist /mcp, der Health-Check unter /health.

Konfiguration

Alles wird über Umgebungsvariablen (Präfix BROKER_MCP_) oder .env injiziert, siehe .env.example:

Variable

Beschreibung

BROKER_MCP_API_KEYS

Erforderlich (außer Authentifizierung ist deaktiviert). Kommagetrennt, jeder Eintrag als key oder key:client_id, z. B. demo-key-1:alice,demo-key-2:bob

BROKER_MCP_BACKEND_BASE_URL

Basis-URL des nachgelagerten Broker-Backends (die Demo enthält keine echten Adressen, selbst konfigurieren); bei leerem Wert geben die Tools Beispieldaten zurück

BROKER_MCP_HOST / BROKER_MCP_PORT

Lauschadresse / Port, Standard 0.0.0.0:8000

BROKER_MCP_TRANSPORT

http (Standard) oder stdio

BROKER_MCP_AUTH_DISABLED

true deaktiviert die Authentifizierung, nur für lokale Debugzwecke

BROKER_MCP_BACKEND_TIMEOUT

Timeout in Sekunden für nachgelagerte Anfragen, Standard 30

Client-Anbindung

Am Beispiel von Claude Code (HTTP-Modus + API-Key):

claude mcp add --transport http broker-demo http://localhost:8000/mcp \
  --header "Authorization: Bearer demo-key-1"

Oder in der JSON-Konfiguration des MCP-Clients:

{
  "mcpServers": {
    "broker-demo": {
      "type": "http",
      "url": "http://localhost:8000/mcp",
      "headers": {
        "Authorization": "Bearer demo-key-1"
      }
    }
  }
}

stdio-Modus

Für lokales Debugging, über stdin/stdout und ohne Authentifizierung:

BROKER_MCP_TRANSPORT=stdio python -m broker_mcp_demo

Verzeichnisstruktur

src/broker_mcp_demo/
├── __main__.py     入口(python -m broker_mcp_demo)
├── config.py       环境变量 / .env 配置读取
├── auth.py         API key 鉴权(ApiKeyVerifier)
├── identity.py     从鉴权上下文解析 client_id
├── backend.py      下游后端 HTTP 调用封装(未配置地址时回退示例数据)
├── server.py       FastMCP 实例装配
└── tools/          MCP 工具
    ├── __init__.py     register_tools() 注册入口
    ├── decorators.py   log_tool 计时日志装饰器
    ├── market.py       行情
    ├── portfolio.py    持仓 / 资产 / 订单
    ├── trade.py        下单
    └── knowledge.py    平台知识库搜索

License

Apache-2.0

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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 Connectors

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/RockFlow-AI/broker-mcp-demo'

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