datawarehouse-dbd-mcp
Enables searching and retrieving detailed information about Thai juristic persons, foreign entities, financial statements, directors, shareholders, and statistics from the Department of Business Development data warehouse.
README
datawarehouse-dbd-mcp
MCP server สำหรับ datawarehouse.dbd.go.th ของกรมพัฒนาธุรกิจการค้า (DBD) — ค้นหาและดึงข้อมูลนิติบุคคลไทย, นิติบุคคลต่างประเทศ, งบการเงิน, รายชื่อกรรมการ, ผู้ถือหุ้น, สถิติการจดทะเบียน ฯลฯ เป็น tool ผ่าน Model Context Protocol.
An MCP server that wraps the public Thai Department of Business Development data-warehouse API as a clean set of tools. Documentation is primarily in Thai; code comments are in English.
คุณสมบัติ / Features
- 🔎 ค้นหานิติบุคคล ตามชื่อหรือเลขทะเบียน 13 หลัก
- 🏢 ดึงข้อมูลพื้นฐาน เช่น สถานะ, ที่ตั้ง, ทุนจดทะเบียน, ทรัพย์สิน, กำไรสุทธิ
- 👥 กรรมการ, ผู้ลงนาม, ผู้ถือหุ้น/หุ้นส่วน
- 📜 ประวัติการเปลี่ยนชื่อ, ทุนจดทะเบียน, การควบรวม/แปรสภาพ
- 💰 งบการเงิน (basic/charts/submit history)
- 🌏 นิติบุคคลต่างประเทศ ที่ได้รับใบอนุญาตในไทย
- 📊 สถิติการจดทะเบียน, การจัดอันดับ, รายงานรายพื้นที่
- 🏷️ TSIC (Thai Standard Industrial Classification) lookup
- 🤝 Supply chain / partner network จาก /partner endpoints
- 📈 Industry benchmarks ค่าเฉลี่ย/มัธยฐานรายอุตสาหกรรม
สถาปัตยกรรม / Architecture
DBD ใช้ Incapsula WAF + ส่งคำตอบเป็นซองเข้ารหัส AES-GCM. โครงสร้างของ MCP server นี้ออกแบบให้เป็น wrapper REST API ที่บางและเรียบง่าย:
src/
├── index.ts เริ่ม MCP server (stdio transport)
├── session.ts bootstrap session ครั้งเดียวด้วย Playwright headless
│ ดึง Incapsula cookies + JWT แล้วใช้ Bun fetch ทำ request ต่อ
├── crypto.ts ถอดรหัสซอง AES-GCM + HKDF-SHA256 + zlib inflate
├── tools.ts นิยาม MCP tools พร้อมคำอธิบายภาษาไทย/อังกฤษ
└── api/
├── company.ts /v1/company-profiles/* (search, directors, partners, …)
├── financial.ts /v1/fin/* (งบการเงิน)
├── foreign.ts /v1/foreign/* (นิติบุคคลต่างประเทศ)
├── biztype.ts /v1/biztype/* (TSIC)
├── investment.ts /v1/investment/* (การลงทุนต่างชาติ)
├── area.ts /v1/area/* (รายพื้นที่)
├── stats.ts /v1/stats/* (สถิติ)
├── bizpartner.ts /v1/partner/* (supply chain)
├── bizopp.ts /v1/bizopp/* (industry benchmarks)
└── util.ts ฟังก์ชันช่วย (split juristic ID เป็น 2 ส่วน)
Playwright ใช้แค่ตอน bootstrap session (ครั้งแรก) เพื่อผ่าน WAF challenge.
หลังจากนั้นทุก request ไปยัง /api/* ใช้ Bun fetch ตรง — เร็ว, เบา.
การติดตั้ง / Installation
ต้องการ Bun v1.3+ และจะติดตั้ง Chromium ให้อัตโนมัติ สำหรับใช้ bootstrap session.
bun install
# postinstall จะรัน playwright install chromium ให้
ถ้าจำเป็นติดตั้ง Chromium ด้วยตนเอง:
bunx playwright install chromium
การใช้งาน / Usage
รันแบบ stdio
bun src/index.ts
ตั้งค่าใน Claude Desktop
แก้ไข ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"dbd": {
"command": "bun",
"args": ["/absolute/path/to/datawarehouse-dbd-mcp/src/index.ts"]
}
}
}
ตั้งค่าใน Claude Code
claude mcp add dbd -- bun /absolute/path/to/datawarehouse-dbd-mcp/src/index.ts
รายการ Tool ทั้งหมด / Tool reference
| Tool | คำอธิบาย |
|---|---|
search_juristic |
ค้นหานิติบุคคลไทยจากชื่อ/เลข 13 หลัก |
get_juristic_profile |
ข้อมูลพื้นฐาน (สถานะ, ที่ตั้ง, ทุน, กำไร, ฯลฯ) |
get_juristic_directors |
รายชื่อกรรมการ |
get_juristic_signatories |
ผู้มีอำนาจลงนาม |
get_juristic_objectives |
วัตถุประสงค์การประกอบกิจการ |
get_juristic_partners |
ผู้ถือหุ้น / หุ้นส่วน |
get_juristic_capital_history |
ประวัติเปลี่ยนทุนจดทะเบียน |
get_juristic_name_history |
ประวัติเปลี่ยนชื่อ |
get_juristic_mergers |
การควบรวม / แปรสภาพ |
get_juristic_liquidators |
ผู้ชำระบัญชี |
get_juristic_nationalities |
สัดส่วนสัญชาติผู้ถือหุ้น |
get_financial_basics |
งบการเงินรายการสำคัญ (ระบุ fiscalYear ปี ค.ศ. เพื่อเจาะจง) |
get_financial_submit_history |
ประวัติการนำส่งงบการเงิน |
get_financial_charts |
ข้อมูลกราฟแสดงผลทางการเงิน |
search_foreign_juristic |
ค้นหานิติบุคคลต่างประเทศ |
get_foreign_profile |
ข้อมูลพื้นฐานนิติบุคคลต่างประเทศ |
get_foreign_business_types |
ประเภทธุรกิจที่ได้รับใบอนุญาต |
get_foreign_directors |
กรรมการนิติบุคคลต่างประเทศ |
list_biztypes |
รายการ TSIC ทั้งหมด |
get_biztype |
รายละเอียดประเภทธุรกิจ (TSIC) ตามรหัส |
get_biztype_overview |
overview ของประเภทธุรกิจ |
get_area_summary |
สรุปนิติบุคคลรายพื้นที่ |
get_register_stat |
สถิติการจดทะเบียน |
get_juristic_ranking |
การจัดอันดับนิติบุคคล |
get_industry_fin_benchmark |
ค่าเฉลี่ย/มัธยฐานรายการการเงินรายอุตสาหกรรม |
get_industry_fin_ratios |
ค่าเฉลี่ย/มัธยฐานอัตราส่วนการเงินรายอุตสาหกรรม |
get_supply_chain |
เครือข่ายคู่ค้า (supply chain) |
ตัวอย่าง / Examples
// ค้นหา "ปตท"
{
"name": "search_juristic",
"arguments": { "keyword": "ปตท" }
}
// ดึงข้อมูลพื้นฐาน PTT (เลขทะเบียน 0107544000108)
{
"name": "get_juristic_profile",
"arguments": { "juristicId": "0107544000108" }
}
// ดึงประวัติทุนจดทะเบียน
{
"name": "get_juristic_capital_history",
"arguments": { "juristicId": "0107544000108" }
}
ข้อจำกัด / Limitations
- Tier anonymous: server นี้ใช้ token แบบ
ROLE_ANONYMOUSที่ DBD เปิดให้ สาธารณะ. บาง endpoint จะคืนผลลัพธ์ว่าง ([]หรือ field เป็นnull) สำหรับ ผู้ใช้ที่ไม่ได้ล็อกอิน. ข้อมูลภาพรวม/ค้นหา/งบการเงินรายการสำคัญยังใช้ได้ - Incapsula challenge: เปิด session ใหม่จะใช้เวลา 3–5 วินาที (โหลด Chromium ผ่าน WAF). หลังจาก warm-up แล้ว request ต่อ ๆ ไปเป็น HTTP fetch ปกติ; JWT จะรีเฟรชอัตโนมัติก่อนหมดอายุ
- Response encryption: response บาง endpoint เข้ารหัสเป็น envelope
{kid,salt,iv,ct}AES-GCM + HKDF-SHA256, ถอดรหัสฝั่ง client (crypto.ts) - ไม่ใช่ API ทางการ: เป็นการ wrap endpoint ภายในของหน้าเว็บ. ถ้า DBD เปลี่ยนโครงสร้าง เซิร์ฟเวอร์นี้อาจต้องปรับตาม
License
MIT. โครงการนี้ไม่ได้รับการสนับสนุนหรือร่วมมือกับกรมพัฒนาธุรกิจการค้าโดยตรง — เป็นเครื่องมือ open-source ที่ช่วยให้นักพัฒนาเข้าถึงข้อมูลสาธารณะของ DBD ได้ง่ายขึ้น
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.