使用说明
OpenDART MCP服务器
一个MCP(模型上下文协议)服务器,用于与韩国金融监督服务(FSS)的开放DART API进行交互。
此服务器提供工具,可以直接在启用MCP的AI助手(如Claude或Cursor)中访问韩国公司文件、公司概述、财务报表和股东信息。它包括一个内置的SQLite缓存,以优化API的使用并减少延迟。
特性
- 内置缓存: 使用SQLite本地缓存API响应并减少冗余的网络调用。
- 现代HTTP传输: 由...驱动
StreamableHTTPServerTransport,提供了一个健壮且可扩展的HTTP/SSE连接模型。 - 并发多客户端支持: 通过动态分配隔离的会话状态和传输,无缝处理多个同时进行的客户端连接。
- 会话连续性: 通过以下方式提供会话路由功能
mcp-session-id以及自动清理过时会话。 - API全面覆盖: 公开了18+开放DART API端点作为易用的MCP工具,并为LLM提供了优化的架构。
- TypeScript和Zod: 具有严格参数验证和描述性提示的强类型输入和输出。
暴露的MCP工具
服务器提供以下工具:
search_disclosures(DS001)- 搜索公司公开文件。
- 按公司代码、日期范围、报告类型等进行筛选。
- 后过滤和限制: 支持按报表名称中的特定关键字筛选结果(
exclude_words)并限制返回的结果总数(limit). - 手动排序: 结果由服务器自动按日期(降序)排序,以确保准确性,即使上游API排序不一致。使用
sort和sort_mthd用于定制订购。 - 注:此API返回元数据和收据编号(
rcept_no).您可以使用get_document使用此收据编号的工具下载实际披露文件。
get_company_overview(DS001/DS002)- 检索特定公司的基本个人资料信息(首席执行官姓名、地址、网站等)。
get_financial_statement(DS003)- 获取单个公司的关键财务报表数据(资产负债表、损益表)。
get_multiple_companies_major_accounts(DS003)- 获取多家公司的关键财务报表数据(最多5家)。
get_single_company_all_accounts(DS003)- 获取单个公司的全套财务报表账户。
get_xbrl_taxonomy(DS003)- 获取基于国际财务报告准则的XBRL标准分类和账户格式指南。
get_single_company_major_indicators(DS003)- 获取单个公司的主要财务指标(如ROE、ROA、债务比率)。
get_multiple_companies_major_indicators(DS003)- 计算多家公司的主要财务指标(最多5个)。
get_xbrl_original_file(DS003)- 下载原始XBRL财务报表ZIP文件,提取XML、XSD、TXT和HTM组件。
get_major_shareholders(DS004)- 检索有关主要股东和高管的信息。
get_capital_increase_info(DS005)- 获取一段时间内资本增加或减少的详细信息。
get_equity_securities_info(DS006)- 检索已发行权益证券的信息。
get_periodic_report_info(DS002合并器)- DS002组的一个强大的综合工具,可访问27个以上的定期报告功能。获取以下信息:股息、库存股、最大股东、少数股东、高管和员工身份、高管薪酬、债务证券发行、未赎回的CP/债券余额、审计师姓名、审计服务合同以及公共/私人资金的使用情况。
search_corpcode- 搜索公司的8位唯一数字
corp_code按公司名称或股票代码。 - 自我初始化: 在第一次运行时下载完整的企业代码XML字典(约100000多个条目),将其存储在本地SQLite数据库中,并在本地进行亚秒级搜索。
- 搜索公司的8位唯一数字
get_document(DS001)- 下载特定文件的完整披露文件(XML格式)。
- 需要14位收据号码(
rcept_no),可从search_disclosures工具。
get_equity_disclosure_info(DS004)- DS004 API的综合工具,用于检索大量持股或高管/大股东持股报告。
get_major_issues_report_info(DS005)- DS005的整合工具,用于访问36个主要公司问题(如破产、并购、增资、诉讼)。
get_registration_statement_info(DS006)- DS006的合并工具,用于汇总股权/债务证券、合并、部门等的注册声明。
设置和本地开发
- 克隆存储库
- 安装依赖项:
npm install - 配置API密钥:
创建一个
.env文件,然后添加您的Open DART API密钥(您可以从 https://opendart.fss.or.kr/):OPENDART_API_KEY=your_api_key_here - 构建项目:注意:必须先运行此程序,然后AI客户端才能使用MCP服务器。
npm run build
与MCP客户端一起使用
克劳德桌面版
要在Claude Desktop中使用此功能,请将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"opendart": {
"command": "node",
"args": ["/absolute/path/to/opendart_mcp/dist/index.js"],
"env": {
"OPENDART_API_KEY": "your_api_key_here"
}
}
}
}
光标IDE
要将其与Cursor一起使用,请转到 Cursor Settings > MCP 并添加新服务器:
- 类型:
command - 命令:
node /absolute/path/to/opendart_mcp/dist/index.js
注意:您可能需要导出 OPENDART_API_KEY 在shell配置文件中,或者如果Cursor没有拾取本地变量,则修改start命令以注入环境变量 .env 文件。
Gemini CLI(反重力)
要使用Gemini CLI运行此服务器,您只需将其添加到您的 ~/.gemini/mcp/mcp.json 文件。模式与Claude Desktop的配置相同:
{
"mcpServers": {
"opendart": {
"command": "node",
"args": ["/absolute/path/to/opendart_mcp/dist/index.js"],
"env": {
"OPENDART_API_KEY": "your_api_key_here"
}
}
}
}
部署到n8n
对于n8n实例(尤其是在Docker中或远程运行的实例),建议使用 流式HTTP(SSE) 运输。这种现代传输方式可靠地支持多个并发会话。
1.使用Docker(预构建镜像)
最快的部署方式是使用GitHub容器注册表(GHCR)中的映像:
docker run -d \
-p 3000:3000 \
-e OPENDART_API_KEY=your_api_key_here \
-v opendart-cache:/app/data \
--name opendart-mcp \
ghcr.io/aidankwon/opendart_mcp:latest
2.使用Docker Compose
使用提供的 docker-compose.yml 以获得更受管理的设置。这确保了缓存被持久化,容器会自动重启。
# Create a .env file with your key first
echo "OPENDART_API_KEY=your_key_here" > .env
# Start the service
docker-compose up -d
3.从源头建设
如果您更喜欢在本地构建和运行:
# Build the image
docker build -t opendart-mcp:latest .
# Run it
docker run -d -p 3000:3000 -e OPENDART_API_KEY=your_key_here opendart-mcp:latest
4.手动启动(无Docker)
直接在服务器上运行:
npm run build
npm run start:sse
5.在n8n中注册
- 在n8n工作流中,添加 MCP客户端工具 节点。
- 集 服务器传输 到
HTTP Streamable. - 集 服务器URL 到
http://<your-host-ip>:3000/mcp.- 关键的: 确保路径终止于
/mcp.
- 关键的: 确保路径终止于
- 会话路由: 服务器使用
mcp-session-idheader用于处理多个客户端。n8n会自动处理此问题。 - 自动清理: 停滞的会话在1小时不活动后会被清除。
- 配置任何必要的防火墙规则或代理,以允许n8n到达端口
3000.
许可证
国际协调委员会