🔌 iApp AI MCP Server
Connect Claude Code, Claude Desktop, Cursor — or any MCP client — to the entire iApp AI Marketplace. One command gives your AI assistant 37 tools spanning OCR, eKYC, Thai NLP, LLMs, speech, and image/video generation.
claude mcp add iapp-mcp -s user -e IAPP_API_KEY=YOUR_API_KEY -- uvx iapp-mcp
Then just ask in plain language. No special syntax to learn.
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 "read every receipt in ./expenses, total them by category, and write a summary in Thai" and the assistant runs OCR across the folder, does the arithmetic, and drafts the summary. No glue code.
The server runs locally over stdio, so your API key never leaves your machine and files are read straight off your disk.
Prerequisites
1. An iApp API key
- Login / Register at iapp.co.th
- Go to API Keys in the control panel
- Click Create New API Key, name it, and create
- 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 manager | Run without installing | Install permanently |
|---|---|---|
| uv | uvx iapp-mcp | uv tool install iapp-mcp |
| pip | — | pip install iapp-mcp |
Node.js 18+
| Package manager | Run without installing | Install permanently |
|---|---|---|
| npm | npx -y iapp-mcp | npm install -g iapp-mcp |
| yarn | yarn dlx iapp-mcp | yarn global add iapp-mcp |
| pnpm | pnpm dlx iapp-mcp | pnpm add -g iapp-mcp |
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
| Flag | Where it applies |
|---|---|
-s user | Every project on this machine (recommended) |
-s project | This repo only, written to a shared .mcp.json your teammates get on clone |
-s local | This 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 37 tools. File inputs are local file paths; generated files are written to the output_path you specify.
🪪 eKYC
| Tool | What it does | Key inputs |
|---|---|---|
iapp_thai_id_card_ocr | Read data from a Thai national ID card photo | file_path, side (front/back) |
iapp_thai_id_card_photocopy_ocr | Read a photocopied ID card + detect signature | file_path |
iapp_passport_ocr | Read MRZ + personal data from any passport | file_path, segmentation |
iapp_thai_driver_license_ocr | Read a Thai driver license | file_path |
iapp_book_bank_ocr | Read account name/number from a bank book page | file_path |
iapp_face_verification | Check if two face photos are the same person (1:1) | image1_path, image2_path, threshold |
iapp_face_detection | Find face(s) + bounding boxes in a photo | file_path, mode (single/multi) |
iapp_face_liveness | Detect photo-of-photo / screen spoofing | file_path |
iapp_face_id_card_kyc | Match a selfie against the face on an ID card | id_card_path, selfie_path |
iapp_face_recognition | Enroll & search faces in a company database (1:N) | action, company, file_path, name, password |
🔍 Thai Document OCR
| Tool | What it does | Key inputs |
|---|---|---|
iapp_document_ocr | OCR any Thai document | file_path, mode: text / layout / docx |
iapp_receipt_ocr | Extract line items & totals from Thai receipts | file_path, return_ocr |
iapp_credit_card_statement_ocr | Extract transactions from card statements | file_path, return_ocr |
iapp_tax_deduction_certificate_ocr | Read withholding tax certificates (50 ทวิ) | file_path, return_ocr |
iapp_civil_registration_ocr | Read Thai civil registration certificates | file_path, return_ocr |
iapp_resume_ocr | Extract structured data from a resume/CV + AI evaluation | file_path |
iapp_job_description_ocr | Extract structured data from a job description | file_path |
🤖 Large Language Model
| Tool | What it does | Key inputs |
|---|---|---|
iapp_llm_chat | Chat with LLMs hosted on iApp (OpenAI-compatible) | prompt or messages, model: chinda-qwen3-4b (free) / deepseek-chat / deepseek-reasoner / deepseek-v4-flash / deepseek-v4-pro, system_prompt, max_tokens, temperature |
iapp_thanoy_legal_qa | Ask Thai legal questions (Thanoy Legal AI) | query |
🌐 Thai NLP
| Tool | What it does | Key inputs |
|---|---|---|
iapp_translate | Translate between 28 languages (Thai-optimized) | text, source_lang, target_lang |
iapp_summarize | Summarize Thai/English text | text, style, language |
iapp_sentiment_analysis | Classify Thai text as positive/neutral/negative | text |
iapp_toxicity_classification | Detect toxic Thai text | text |
iapp_thai_qa | Answer a question from a given Thai document | question, document |
iapp_question_generation | Generate Q&A pairs from Thai text | text |
🎙️ Speech Technology
| Tool | What it does | Key inputs |
|---|---|---|
iapp_speech_to_text | Transcribe audio with speaker diarization | file_path, language (th/en/zh), quality (base/pro) |
iapp_text_to_speech | Synthesize Thai speech and save an audio file | text, output_path, voice, speed |
iapp_voice_clone_tts | Speak any text in a voice cloned from a sample | text, ref_audio_path, ref_text, output_path |
iapp_ai_audio_detection | Check if audio was AI-generated | audio_path |
🖼️ Image & 🎬 Video Generation
| Tool | What it does | Key inputs |
|---|---|---|
iapp_image_generation | Generate an image from text (Google Nano Banana) | prompt, output_path, model |
iapp_remove_background | Remove the background from an image | file_path, output_path |
iapp_video_generation_submit | Submit an async Seedance 2.0 video job | prompt, model, duration, ratio, resolution, generate_audio |
iapp_video_generation_status | Poll a video job and get the download URL | task_id |
♻️ Smart City AI & 📊 Thai Data
| Tool | What it does | Key inputs |
|---|---|---|
iapp_license_plate_ocr | Read Thai vehicle license plates from photos | file_path |
iapp_meter_ocr | Read power/water meter values from photos | file_path |
iapp_route_optimization | Optimize delivery routes for multiple drivers (≤100 stops) | origin_address + coordinates, stops, driver_count |
iapp_thai_holidays | Look up Thai public holidays | year, or start_date+end_date, or nothing |
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 เป็นภาพถ่ายคนจริงหรือภาพปลอม
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
Notes and limits
- Local file paths. File-based tools take paths on your machine; generated audio, images and video are written to the
output_pathyou 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
| Symptom | Fix |
|---|---|
claude mcp list shows the server as failed | Check uv is installed and on your PATH — run uvx iapp-mcp directly to see the error |
| Authentication errors on every tool | The 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 project | You 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 rejected | Seedance 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.
Links
- Announcement: iApp AI 2.0 — new packages and an MCP server
- GitHub: github.com/iapp-technology/iapp_ai
- PyPI: iapp-mcp · iapp-ai · iapp-core
- npm: iapp-mcp
- Support: support@iapp.co.th · Discord