SKILL.md
MCP Preflight
Read This Before Any ImageKit MCP Call
You have access to two ImageKit MCP servers. Each serves a different purpose. Calling the wrong server or the wrong tool wastes tokens and produces errors. This skill is your routing table.
Server Map
imagekit_api — Authenticated API Server
Prefix: mcpimagekitapi_*
Two tools only:
| Tool |
Purpose |
search_doc |
Local search that only searches TypeScript SDK code — use to find method signatures and types |
execute |
Executes TypeScript code against the ImageKit SDK to perform CRUD operations |
All CRUD operations are performed by writing TypeScript code that runs via execute:
- List, search, get details of files
- Delete, move, copy, rename files
- Create, delete, move, copy folders
- Bulk tag/untag operations
- File versions (list, restore, delete)
- Custom metadata fields (CRUD)
- Cache invalidation (purge)
- URL endpoints and origins management
- Account usage stats
imagekit_devtools — Public Tools Server
Prefix: mcpimagekitdevtools_*
Two tools only — no auth required:
| Tool |
Purpose |
search_docs |
RAG-powered search across ImageKit docs, guides, API refs, SDKs, community posts |
transformation_builder |
Builds transformation URLs from natural language descriptions |
Routing Table
| Need |
Route To |
| List, delete, move, copy files |
mcpimagekitapi_execute (write TS code) |
| Folder operations |
mcpimagekitapi_execute (write TS code) |
| File metadata, tags, custom fields |
mcpimagekitapi_execute (write TS code) |
| Bulk operations |
mcpimagekitapi_execute (write TS code) |
| Cache purge |
mcpimagekitapi_execute (write TS code) |
| URL endpoints, origins |
mcpimagekitapi_execute (write TS code) |
| Find SDK method signatures/types |
mcpimagekitapisearchdoc |
| Upload files |
Use mcpimagekitapi_execute with client.files.upload() — only URL-based uploads work; local files cannot be passed. Read the upload-files skill first. |
| How to do something in ImageKit |
mcpimagekitdevtoolssearchdocs |
| Build a transformation URL |
mcpimagekitdevtoolstransformationbuilder |
| Find SDK usage or API parameters |
mcpimagekitdevtoolssearchdocs |
| Verify feature exists or find limits |
mcpimagekitdevtoolssearchdocs |
| Search / filter / list assets |
mcpimagekitapi_execute (write TS code) — read search-assets skill first |
| Integrate ImageKit into a framework/SDK/CMS |
read imagekit-integrations skill first |
Searching / Filtering Assets
When listing assets with client.assets.list, filter on the server instead of fetching everything and filtering in code. Read the search-assets skill first — it is the canonical reference for the Lucene-like searchQuery syntax, when to use top-level params vs a searchQuery, and how to narrow the returned File/Folder results.
Integration Use Cases
When the task is to integrate ImageKit into a specific technology (front-end, back-end, mobile, CMS, external storage, upload widgets, URL generation, etc.), read the imagekit-integrations skill to find the right SDK/plugin and what it covers before writing code.
Before Calling imagekit_api
Use the imagekit-sdk-reference skill before constructing any TypeScript code that calls mcpimagekitapi_* tools. That skill provides complete SDK method signatures, parameters, return types, error handling patterns, and examples to ensure correct API calls and proper data handling.
Critical Rules
- Uploads are URL-only —
client.files.upload() via mcpimagekitapi_execute only accepts a public URL string. Local files cannot be uploaded (no file bytes, streams, or Buffers). Read the upload-files skill first.
- ALWAYS call
search_docs before writing any ImageKit SDK code — do not rely on training data for method signatures or parameters.
- Do NOT read library source code to figure out usage —
search_docs returns official docs and working examples. Only read source code as a last resort when docs fail.
- Use
transformation_builder instead of hand-crafting transformation URLs — it knows correct parameter syntax and ordering.
- Filter
client.assets.list server-side, not in code — read the search-assets skill for how to choose between top-level params and a searchQuery.