Machine access
ให้ AI และโปรแกรมเรียกใช้กฎหมาย
คลังกฎหมายทั้งหมดอยู่ในฐานข้อมูล SQLite ชุดเดียว (ตาราง laws, nodes, sections, refs + ดัชนี FTS5 sections_fts) เปิดให้เรียกใช้ได้สองทาง เว็บไซต์นี้เองก็อ่านจากฐานเดียวกัน — เป็นแหล่งความจริงเดียว
1 · HTTP API (อ่านอย่างเดียว, CORS เปิด)
| Endpoint | ทำอะไร |
|---|---|
GET /api/law | รายชื่อกฎหมายทั้งหมด |
GET /api/law?law=pc | สารบัญ (ภาค/ลักษณะ/หมวด) ของกฎหมายหนึ่ง |
GET /api/section?law=ccc§ion=420 | ตัวบทมาตราเดียว + รายการอ้างอิงเข้า/ออก |
GET /api/search?q=ละเมิด&law=ccc&limit=25 | ค้นข้อความเต็ม (FTS5) จัดอันดับ |
POST /api/sql | คิวรี SQL อ่านอย่างเดียว (SELECT/WITH, LIMIT 200) |
# ตัวบทมาตรา 112 ป.อาญา curl 'https://law.uphasia.co/api/section?law=pc§ion=112' # ค้น "สิทธิเสรีภาพ" เฉพาะในรัฐธรรมนูญ curl 'https://law.uphasia.co/api/search?q=สิทธิเสรีภาพ&law=constitution' # SQL: หามาตราที่ถูกอ้างถึงมากที่สุดใน ป.พ.พ. curl 'https://law.uphasia.co/api/sql' --data \ "SELECT to_sect_key, COUNT(*) n FROM refs WHERE to_law_code='ccc' GROUP BY to_sect_key ORDER BY n DESC LIMIT 10"
2 · MCP server (สำหรับ Claude & เอเจนต์)
เซิร์ฟเวอร์ MCP (stdio) เปิดเครื่องมือ list_laws, get_toc, get_section, search และ run_sql อ่านจาก law.db เดียวกัน เพิ่มลงใน Claude Code ได้ด้วย:
claude mcp add thai-law -- node /home/ubuntu/law-uphasia/mcp/server.mjs
หรือใส่ใน .mcp.json / claude_desktop_config.json:
{
"mcpServers": {
"thai-law": {
"command": "node",
"args": ["/home/ubuntu/law-uphasia/mcp/server.mjs"]
}
}
}สคีมา
laws(code, slug, title_th, short_th, kind_th, category, source, n_sections)
nodes(id, law_code, kind, label, heading, seq) -- โครงลำดับชั้น
sections(id, law_code, node_id, sect_key, num_th,
num_sort, sub_sort, text, notes, is_repealed)
refs(from_id -> sections.id, to_law_code, to_sect_key, kind)
sections_fts(text) USING fts5(tokenize='trigram') -- ค้นไทยแบบ substring