Skip to main content
Glama
RockFlow-AI

broker-mcp-demo

by RockFlow-AI

Broker MCP Demo

FastMCP 기반의 증권사 MCP 서버 데모(Python 버전), 두 가지를 단순화했습니다:

  • 인증은 정적 API key 사용Authorization: Bearer <api-key>),OAuth 미사용;

  • 실제 서비스 주소 미내장:다운스트림 증권사 백엔드 주소는 사용자가 환경 변수로 직접 구성하며, 미구성 시 각 도구는 내장된 예시 데이터를 반환합니다(응답에 "mock": true 표시),즉시 체험 가능합니다.

아키텍처

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

요청 흐름:

  1. 클라이언트가 Authorization: Bearer <api-key>를 포함해 POST /mcp를 요청합니다.

  2. 서버가 key를 BROKER_MCP_API_KEYS에 구성된 값과 하나씩 대조하여, 일치하면 통과, 아니면 401을 반환합니다.

  3. 도구 호출은 BROKER_MCP_BACKEND_BASE_URL이 가리키는 증권사 백엔드로 프록시됩니다; 미구성 시 내장된 예시 데이터를 반환합니다.

도구

총 10개의 예시 도구로, 시세, 포지션 / 주문, 거래, 지식베이스 네 가지 범주를 다룹니다. 다운스트림 인터페이스 경로는 모두 예시이며, 실제 백엔드 연동 시 tools/ 안의 path를 수정하면 됩니다.

시세(market.py

도구

매개변수

설명

search_ticker

keyword

회사명 / 코드로 종목 검색,market + symbol 파싱

get_latest_quote

market, symbol

종목 최신 시세 조회

get_chart

market, symbol, span=1month

과거 K라인;span 지원 1day / 1week / 1month / 1year / 5year

포지션 / 자산 / 주문(portfolio.py

도구

매개변수

설명

get_positions

현재 포지션 목록(손익 포함)

get_assets

계좌 자산(현금, 시가, 총자산 등)

get_orders

status=OPEN, limit=20

주문 목록;status 지원 OPEN / FILLED / CANCELLED / ALL

get_order

order_id

개별 주문 상세

cancel_order

order_id

미체결 주문 취소

거래(trade.py

도구

매개변수

설명

create_order

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

거래 주문 생성(제출)

  • order_typeMARKET_ORDER(시장가)/ LIMIT_ORDER(지정가,price 필요)。

  • sideBUY / SELLvalidityGOOD_FOR_DAY / GOOD_TILL_CANCELLED

지식베이스(knowledge.py

도구

매개변수

설명

search_knowledge_base

query, language=zh-Hans, top=10

플랫폼 지식베이스 검색(개좌, 입출금, 거래 규칙 등 QA)

  • languagezh-Hans / zh-Hant / entop 범위 3~20。

  • 실제 프로젝트는 보통 백엔드에서 벡터 검색 + 의미 정렬을 수행합니다(예: Azure Cognitive Search, Elasticsearch, Milvus 등),본 데모는 특정 구현에 구속되지 않습니다.

각 도구에는 decorators.pylog_tool 데코레이터가 적용되어,호출자(API key에 해당하는 client_id)、입력 매개변수 및 소요 시간 로그를 일괄 출력합니다. 새 도구 추가 시 해당 모듈 register(mcp) 내에서 @mcp.tool + @log_tool로 선언하고, tools/__init__.pyregister_tools()에 등록합니다.

실행

pip install -r requirements.txt

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

기본적으로 0.0.0.0:8000을 리슨하며,MCP 엔드포인트는 /mcp,헬스체크는 /health입니다.

구성

모든 설정은 환경 변수(접두사 BROKER_MCP_)또는 .env로 주입하며,.env.example 참고:

변수

설명

BROKER_MCP_API_KEYS

필수(인증 비활성화 시 제외)。쉼표로 구분,각 항목은 key 또는 key:client_id 형식,예: demo-key-1:alice,demo-key-2:bob

BROKER_MCP_BACKEND_BASE_URL

다운스트림 증권사 백엔드 루트 주소(데모는 실제 주소 미내장,직접 구성);비워두면 도구가 예시 데이터 반환

BROKER_MCP_HOST / BROKER_MCP_PORT

리슨 주소 / 포트,기본 0.0.0.0:8000

BROKER_MCP_TRANSPORT

http(기본)또는 stdio

BROKER_MCP_AUTH_DISABLED

true로 설정 시 인증 비활성화,로컬 디버깅 전용

BROKER_MCP_BACKEND_TIMEOUT

다운스트림 요청 타임아웃(초),기본 30

클라이언트 연동

Claude Code를 예로 들면(HTTP 모드 + API key):

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

또는 MCP 클라이언트의 JSON 설정에서:

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

stdio 모드

로컬 디버깅용으로,stdin/stdout을 사용하며 인증을 활성화하지 않습니다:

BROKER_MCP_TRANSPORT=stdio python -m broker_mcp_demo

디렉터리 구조

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