datawarehouse-dbd-mcp

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.

Category
Visit Server

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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured