Skip to main content

🔌 iApp AI MCP Server

Bring Thai AI into the tools you already use. Connect Claude, Claude Code, Cursor, Codex, Windsurf, Antigravity (Gemini) — or any MCP client — to the iApp AI Marketplace: OCR, translation, Thai legal data, LLMs and more, straight from your assistant.

Connect your client

⚡ The new way — one URL, sign in, done. No API key to copy.

One URL. Sign in. Done. The remote server connects with your iApp account through OAuth — your API key is retrieved automatically on our side. No key to copy, no key to paste.

https://mcp.iapp.co.th
① Open Claude settings
Launch Claude Desktop or open claude.ai and go to Settings → Connectors.
② Add a custom connector
Click Add custom connector, then fill in:

Name: iApp AI
URL: https://mcp.iapp.co.th

Leave the OAuth fields empty.
③ Sign in
Click Connect, sign in with your iApp account, and approve. That's it — your API key is linked automatically.
Claude's Add custom connector dialog
What you get through the remote connector

By default the connector serves iApp's 16 most-used services (21 tools): speech-to-text, text-to-speech, document OCR, Thai law & Supreme Court data (ฎีกา) with grounded legal Q&A, face verification, passive liveness, translation, Thai national ID card OCR, driver licence OCR, passport OCR, Thai holidays, background removal, licence plate recognition, and — new — image, presentation-slide and video generation.

Calls bill your iApp account at normal API prices. File inputs are public http(s) URLs, not local paths — the server runs remotely and cannot read your disk. For local files, run the local server.

Choosing your tools

Every tool definition takes up room in your assistant's context for the whole session, so the connector ships the most-used services rather than everything. Add a query string to the connector URL to change that:

Connector URLTools served
https://mcp.iapp.co.thThe 16 default services, generation included (recommended)
https://mcp.iapp.co.th/?tools=allEverything the remote server offers
https://mcp.iapp.co.th/?groups=legalOne category only — smallest context
https://mcp.iapp.co.th/?groups=default,llmThe defaults plus another category
https://mcp.iapp.co.th/?tools=iapp_translate,iapp_summarizeExactly the tools you name

Groups: speech, ocr, identity, face, vision, legal, data, nlp, llm, generation.

A narrow selection is worth it when you know the job — a legal research assistant loading only ?groups=legal spends a fraction of the context of the full set. Unknown names are ignored rather than rejected, so a typo costs you one tool, not the connection.

Why use it

Without MCP, calling an iApp API means writing a script: read the file, build the request, handle the response. With MCP, you describe the outcome and the assistant handles the plumbing — including chaining several APIs together.

Ask "หาฎีกาที่ตีความ ป.อ. มาตรา 335 หลังปี 2560" and the assistant searches real Supreme Court decisions and cites them with verification links. No glue code, no keys pasted into the conversation.

Claude answering a Thai defamation-law question using iApp AI tools — Grounded Thai Legal Q&A and Section Lookup calls shown live

Local server (all 44 tools)

The iapp-mcp package runs locally over stdio — your API key stays on your machine, files are read straight off your disk, and all 44 tools are available including OCR on local files, eKYC, speech, and image/video generation.

Install in Claude Code — one command
claude mcp add iapp-mcp -s user -e IAPP_API_KEY=YOUR_API_KEY -- uvx iapp-mcp

Prerequisites

1. An iApp API key

  1. Login / Register at iapp.co.th
  2. Go to API Keys in the control panel
  3. Click Create New API Key, name it, and create
  4. Copy the key — it is only shown once

2. A runtime

The server is published on both PyPI and npm — use whichever you prefer.

Python 3.10+

Package managerRun without installingInstall permanently
uvuvx iapp-mcpuv tool install iapp-mcp
pippip install iapp-mcp

Node.js 18+

Package managerRun without installingInstall permanently
npmnpx -y iapp-mcpnpm install -g iapp-mcp
yarnyarn dlx iapp-mcpyarn global add iapp-mcp
pnpmpnpm dlx iapp-mcppnpm add -g iapp-mcp
note

The npm package is a thin launcher for the Python server, so uv must be installed either way:

curl -LsSf https://astral.sh/uv/install.sh | sh    # or: brew install uv

Setup — Claude Code

Use the claude mcp add CLI. Pick the line matching how you installed, pass your API key with -e, and put -- before the launch command:

# uv / uvx (recommended, nothing to install)
claude mcp add iapp-mcp -s user -e IAPP_API_KEY=YOUR_API_KEY -- uvx iapp-mcp

# npm / npx
claude mcp add iapp-mcp -s user -e IAPP_API_KEY=YOUR_API_KEY -- npx -y iapp-mcp

# already installed permanently (pip / uv tool / npm / yarn / pnpm)
claude mcp add iapp-mcp -s user -e IAPP_API_KEY=YOUR_API_KEY -- iapp-mcp

Scopes

FlagWhere it applies
-s userEvery project on this machine (recommended)
-s projectThis repo only, written to a shared .mcp.json your teammates get on clone
-s localThis project, this machine only (the default if omitted)

Verify and manage

claude mcp list              # should show iapp-mcp as connected
claude mcp remove iapp-mcp # remove it later

You can also run /mcp inside a Claude Code session to see the server and its tools.

Setup — other MCP clients

Claude Desktop, Cursor and others take a JSON config. The server speaks stdio, so any client can launch it:

uv / uvx (recommended):

{
"mcpServers": {
"iapp-mcp": {
"command": "uvx",
"args": ["iapp-mcp"],
"env": { "IAPP_API_KEY": "YOUR_API_KEY" }
}
}
}

npm:

{
"mcpServers": {
"iapp-mcp": {
"command": "npx",
"args": ["-y", "iapp-mcp"],
"env": { "IAPP_API_KEY": "YOUR_API_KEY" }
}
}
}

Permanently installed:

{
"mcpServers": {
"iapp-mcp": {
"command": "iapp-mcp",
"env": { "IAPP_API_KEY": "YOUR_API_KEY" }
}
}
}

You can also run the server directly to check it starts:

IAPP_API_KEY=YOUR_API_KEY iapp-mcp

Tool reference

All 44 tools. File inputs are local file paths; generated files are written to the output_path you specify.

🪪 eKYC

ToolWhat it doesKey inputs
iapp_thai_id_card_ocrRead data from a Thai national ID card photofile_path, side (front/back)
iapp_thai_id_card_photocopy_ocrRead a photocopied ID card + detect signaturefile_path
iapp_passport_ocrRead MRZ + personal data from any passportfile_path, segmentation
iapp_thai_driver_license_ocrRead a Thai driver licensefile_path
iapp_book_bank_ocrRead account name/number from a bank book pagefile_path
iapp_face_verificationCheck if two face photos are the same person (1:1)image1_path, image2_path, threshold
iapp_face_detectionFind face(s) + bounding boxes in a photofile_path, mode (single/multi)
iapp_face_livenessDetect photo-of-photo / screen spoofingfile_path
iapp_face_id_card_kycMatch a selfie against the face on an ID cardid_card_path, selfie_path
iapp_face_recognitionEnroll & search faces in a company database (1:N)action, company, file_path, name, password

🔍 Thai Document OCR

ToolWhat it doesKey inputs
iapp_document_ocrOCR any Thai documentfile_path, mode: text / layout / docx
iapp_receipt_ocrExtract line items & totals from Thai receiptsfile_path, return_ocr
iapp_credit_card_statement_ocrExtract transactions from card statementsfile_path, return_ocr
iapp_tax_deduction_certificate_ocrRead withholding tax certificates (50 ทวิ)file_path, return_ocr
iapp_civil_registration_ocrRead Thai civil registration certificatesfile_path, return_ocr
iapp_resume_ocrExtract structured data from a resume/CV + AI evaluationfile_path
iapp_job_description_ocrExtract structured data from a job descriptionfile_path

🤖 Large Language Model

ToolWhat it doesKey inputs
iapp_llm_chatChat with LLMs hosted on iApp (OpenAI-compatible)prompt or messages, model: deepseek-chat (default) / deepseek-reasoner / deepseek-v4-flash / deepseek-v4-pro, system_prompt, max_tokens, temperature
iapp_openthai_legal_chatAsk Thai legal questions with verifiable มาตรา citations — RAG-grounded over 39 Thai laws, returns the statute sections used (FREE until 24 Aug 2026)prompt or messages, rag (default true), rag_top_k, rag_inject (user/system), max_tokens, temperature
iapp_thanoy_legal_qaAsk Thai legal questions (Thanoy Legal AI)query

🌐 Thai NLP

ToolWhat it doesKey inputs
iapp_translateTranslate between 28 languages (Thai-optimized)text, source_lang, target_lang
iapp_summarizeSummarize Thai/English texttext, style, language
iapp_sentiment_analysisClassify Thai text as positive/neutral/negativetext
iapp_toxicity_classificationDetect toxic Thai texttext
iapp_thai_qaAnswer a question from a given Thai documentquestion, document
iapp_question_generationGenerate Q&A pairs from Thai texttext

🎙️ Speech Technology

ToolWhat it doesKey inputs
iapp_speech_to_textTranscribe audio with speaker diarizationfile_path, language (th/en/zh), quality (base/pro)
iapp_text_to_speechSynthesize Thai speech and save an audio filetext, output_path, voice, speed
iapp_voice_clone_ttsSpeak any text in a voice cloned from a sampletext, ref_audio_path, ref_text, output_path
iapp_ai_audio_detectionCheck if audio was AI-generatedaudio_path

🖼️ Image & 🎬 Video Generation

ToolWhat it doesKey inputs
iapp_image_generationGenerate an image from text (Google Nano Banana)prompt, model
iapp_slide_generationGenerate one finished 16:9 presentation slidetitle, content, style, aspect_ratio, image_size
iapp_slide_deck_generationGenerate a whole deck in one call, slides rendered in parallelslides[], style, aspect_ratio, image_size
iapp_remove_backgroundRemove the background from an imageimage_url (remote) / file_path (local)
iapp_video_generation_submitSubmit an async Seedance video job — returns a task idprompt, model, duration, ratio, resolution, generate_audio
iapp_video_generation_statusPoll a video job and get the download URLtask_id

Image, slide and video generation need a paid iApp account — the free signup bonus does not unlock them. Costs: image 3 IC (nanobanana) or 8 IC (nanobanana-pro), slide 8 IC, video billed per output token (a 5-second 720p clip is roughly 27 IC). Failed video jobs and status polls cost 0 IC.

The local server saves images and slides to an output_path you choose; the remote connector has no access to your disk, so it returns them inline in the conversation.

♻️ Smart City AI & 📊 Thai Data

ToolWhat it doesKey inputs
iapp_license_plate_ocrRead Thai vehicle license plates from photosfile_path
iapp_meter_ocrRead power/water meter values from photosfile_path
iapp_route_optimizationOptimize delivery routes for multiple drivers (≤100 stops)origin_address + coordinates, stops, driver_count
iapp_thai_holidaysLook up Thai public holidaysyear, or start_date+end_date, or nothing
ToolWhat it doesKey inputs
iapp_thai_law_listCatalogue of the 39 indexed Thai laws (free) — call first to get valid law namesq (optional name filter)
iapp_thai_law_sectionVerbatim มาตรา text; optionally the Supreme Court decisions citing itlaw, section, with_deka
iapp_thai_law_searchSemantic statute search from a Thai fact patternquery, top_k (1–20, default 8)
iapp_thai_deka_searchPrecedent search across 70,634 ฎีกา; filter to decisions citing a sectionquery, cites_law, cites_section, year_from, top_k
iapp_thai_deka_getOne ruling by ฎีกา number (1234/2565 or 1234-2565)case_id, include_body
iapp_thai_legal_askGrounded legal answer with machine-verified citations — never invents a case numberquestion, include_deka

→ Full details: Thai Legal Data API/MCP

Usage examples

Once connected — in Claude Code, Claude Desktop, or any other MCP client — just ask in plain Thai or English. No command syntax; the assistant picks the tool.

eKYC

อ่านข้อมูลจากบัตรประชาชนในไฟล์ idcard.jpg
เช็คว่ารูป selfie.jpg กับ idcard.jpg เป็นคนเดียวกันไหม
Extract the MRZ data from passport.jpg
ตรวจว่ารูป face.jpg เป็นภาพถ่ายคนจริงหรือภาพปลอม

Slides, images and video

ทำสไลด์นำเสนอ 5 หน้า เรื่องผลประกอบการไตรมาส 3 พร้อมกราฟรายได้
Make me a 6-slide deck introducing our new product, clean corporate style
สร้างวิดีโอ 5 วินาที ภาพตลาดน้ำตอนเช้า มีหมอกบาง ๆ กล้องเคลื่อนช้า ๆ
Generate a 10-second 720p video of a tuk-tuk driving through Bangkok at night

Ask for a deck and the assistant calls iapp_slide_deck_generation once with all the slides — they render in parallel, so a six-slide deck takes about as long as a single slide instead of six times as long. iapp_slide_generation remains for one-off slides. Ask for a video and it calls iapp_video_generation_submit, which returns a task id immediately, then polls iapp_video_generation_status every few seconds until the render finishes and hands you the download URL.

That two-step split is deliberate: a render takes 30 seconds to 4 minutes, which is long enough that a single blocking call would time out in most MCP clients. Submitting and polling keeps the conversation responsive, and lets you go and do something else while it renders.

Making slides faster

Three things dominate the time, in this order:

  1. One call per slide. Each render is 15-30 seconds and the assistant waits for one before starting the next, so six slides serialise into several minutes. iapp_slide_deck_generation renders up to 8 slides concurrently in a single call — usually the difference between ~3 minutes and ~30 seconds.
  2. Re-doing rejected slides. A slide that comes back with overlapping text gets thrown away and rebuilt, paying for the render twice. The tools now instruct the model to keep 6% margins, cap bullets, and shorten rather than crowd — and to omit speaker-notes panels, which was the most common collision.
  3. Image size. Pass image_size: "1K" while iterating: it renders faster and returns a quarter of the bytes, which also keeps your assistant's context small. Switch to 2K for the final render.

Pick the right tool for the content. These are generative images, so they are excellent for title, concept and marketing slides — and the wrong choice for a dense financial table where every figure must be exact. For those, have your assistant render natively (pptx or HTML to PNG); generating one and then correcting it costs more time than building it correctly once.

Video URLs expire

A finished video's download URL is valid for about 24 hours. Ask the assistant to download it, or save it yourself before then.

Documents

OCR ใบเสร็จ receipt.jpg แล้วรวมยอดให้หน่อย
แปลงเอกสารสแกนนี้เป็นไฟล์ Word
สกัดข้อมูลจาก resume.pdf แล้วประเมินความเหมาะสมกับตำแหน่ง
อ่านหนังสือรับรองหักภาษี ณ ที่จ่าย (50 ทวิ) ไฟล์นี้

Speech and language

ถอดเสียงไฟล์ประชุม meeting.wav พร้อมระบุว่าใครพูด
อ่านข้อความนี้เป็นเสียงพูดด้วยเสียงไข่ต้ม เซฟเป็น speech.wav
แปลข้อความนี้เป็นภาษาญี่ปุ่น
วิเคราะห์ว่ารีวิวลูกค้าพวกนี้เป็นบวกหรือลบ

LLM and legal

ถาม Chinda Thai LLM ว่า ส้มตำมีกี่แคลอรี่
ใช้ DeepSeek V4 Flash ช่วยจัดหมวดหมู่ข้อความลูกค้าพวกนี้
ถามทนอย: สัญญาเช่าบ้านไม่มีลายเซ็นพยานมีผลไหม

Creative and smart city

สร้างรูปแมวใส่ชุดไทยนั่งริมเจ้าพระยา เซฟเป็น cat.png
Generate a 5-second video of a cat surfing at sunset
จัดเส้นทางส่งของ 20 จุดนี้ให้คนขับ 3 คน เริ่มจากคลังสินค้า
อ่านป้ายทะเบียนรถจากภาพกล้องวงจรปิด cctv.jpg

Thai Legal Data

ขอตัวบท ป.อ. มาตรา 335 พร้อมฎีกาที่เกี่ยวข้อง
หาฎีกาที่ตีความ ป.อ. มาตรา 335 หลังปี 2560
ลักทรัพย์ในเวลากลางคืนมีโทษอย่างไร ตอบแบบอ้างอิงได้

Notes and limits

  • Local file paths. File-based tools take paths on your machine; generated audio, images and video are written to the output_path you name.
  • Credits. Most tools consume iApp credits (IC) per call. Each tool's description documents its cost. Chinda Thai LLM 4B is free.
  • Seedance video generation requires a paid account — any IC package purchase unlocks it.
  • Context stays small. Large base64 blobs in API responses (cropped face images, for example) are truncated in tool output.
  • Runtimes. Python 3.10+ or Node.js 18+.

Troubleshooting

SymptomFix
Old iapp-mcp (local) shows failed — common on WindowsThe classic stdio server needs uv installed. Easiest fix: switch to the remote server — claude mcp remove iapp-mcp then claude mcp add --transport http iapp-ai https://mcp.iapp.co.th (no uv, no API key needed). Or install uv and keep the local server
iapp-ai (remote) shows Needs authenticationThat's expected right after adding — run /mcpiapp-ai → Authenticate and sign in
claude mcp list shows the server as failedCheck uv is installed and on your PATH — run uvx iapp-mcp directly to see the error
Authentication errors on every toolThe IAPP_API_KEY value is wrong or expired. Re-add with the correct key, or check API Keys in the control panel
Server missing in a different projectYou installed with the default -s local scope. Re-add with -s user
Insufficient credits (HTTP 402)Top up in the control panel; check per-tool costs on the pricing page
Video generation rejectedSeedance requires a paid account — purchase any IC package to unlock

Prefer to write code?

If you are calling iApp APIs from your own Python program rather than through an assistant, use the SDK instead:

from iapp_ai import api

client = api("YOUR_API_KEY")
resp = client.idcard_front("id.jpg") # returns requests.Response
print(resp.json())
pip install iapp-ai

Both packages share the same iapp-core foundation, so behaviour and error handling are identical.