Skip to main content
Glama
anboyu-alt

dart-risk-mcp

by anboyu-alt
README.md
# dart-risk-mcp

개인 작업용. DART 공시를 흐름으로 읽어 불공정거래 신호를 사실로 표기하는 MCP 서버.

## 돌리기

```bash
pip install -e .
python -m dart_risk_mcp
```

```json
{
  "mcpServers": {
    "dart-risk": {
      "command": "python",
      "args": ["-m", "dart_risk_mcp"],
      "env": { "DART_API_KEY": "..." }
    }
  }
}
```

- `DART_API_KEY` 필수
- `KRX_API_KEY` · `KIS_APP_KEY` + `KIS_APP_SECRET` 선택 — 시세 대조용(KRX 먼저, 빈 날은 KIS)

## 메모

- 설계·실측 근거는 전부 `CLAUDE.md`
- 보류한 판단은 `docs/DEFERRED-DECISIONS.md`
- 뷰어 소스는 `docs/tool/`
- 테스트는 키 없이: `env -u DART_API_KEY python -m pytest tests/ -q`
- 골든 재생성: `python scripts/regen_goldens.py`
- 릴리스 순서: `CLAUDE.md` 「릴리스 정책」

MIT. 일부 로직은 kreports-dart-mcp(Apache 2.0)에서 이식 — `THIRD_PARTY_NOTICES.md`.

TDQS

A3.7/5.0

Scored across 35 tools

Disambiguation4/5

Most tools carve out distinct scopes and the descriptions explicitly cross-reference neighbours (get_financial_summary vs get_financial_statements_full vs compare_financials; get_audit_opinion_history vs get_audit_opinion_text; get_disclosure_document vs list_disclosure_sections vs view_disclosure). The risk cluster is the soft spot: analyze_company_risk, check_disclosure_anomaly, build_event_timeline and find_risk_precedents all produce 'risk signal' output, and an agent could plausibly pick the wrong one for a given question. get_shareholder_info vs track_insider_trading also overlap on ownership data (snapshot vs time series).

Naming Consistency5/5

All 35 names are snake_case verb_noun (find_, get_, check_, list_, view_, search_, track_, scan_, build_, lookup_, manage_, compare_). Verb variety (track_/scan_/build_) tracks meaningful differences in behavior rather than ad-hoc style drift, and no camelCase or bare-noun names appear.

Tool Count2/5

35 tools is well past the heavy threshold, and several clusters could be consolidated (three disclosure-reading tools, four financial-statement tools, four risk/scoring-style tools, two audit tools). The domain breadth is genuine — disclosures, financials, capital events, audit, market scan, watchlist — but the count forces agents to search a long list and increases selection error.

Completeness4/5

Coverage is unusually deep for the stated purpose: CRUD-ish disclosure retrieval, financials at multiple granularities, capital structure and mezzanine terms, audit history plus quoted text, ownership/insider data, market-wide scanning, market reaction, and unlisted-company financials. Remaining gaps are modest: no free-text disclosure-title search across a company (only presets and singled-out report_name), no consolidated group/ownership-graph view, and find_risk_precedents exposes a lookback_days arg that is documented as unused.

Maintenance

ActivityActive
ResponsivenessNo issues