apinoa-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| APINOA_API_KEY | Yes | Required for every data call. Create a key under Dashboard > API keys at apinoa.com. | |
| APINOA_BASE_URL | No | Base URL for the apinoa API gateway. | https://gateway.apinoa.com |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_docsA | Find how to do a task with apinoa: the matching operations as you call them in execute (e.g. apinoa.tiktok.posts({ hashtag })), every parameter, the cost per call, and the fields of what they return. Free: it calls nothing. Use it before writing code. Pass words ('tiktok hashtag videos', 'instagram reels of an account', 'amazon product reviews'), a platform, or a type name ('Post'); with neither you get the list of every operation. Platforms: aliexpress, amazon, app-store, baidu, bing, chatgpt, daum, duckduckgo, gemini, google, google-ai-mode, google-aio, google-play, google-shopping, google-trends, instagram, linkedin, naver, naver-ai-brief, naver-ai-tab, reddit, seznam, shopify, sogou, threads, tiktok, tiktokshop, tripadvisor, walmart, x, yahoo, yahoo-japan, yandex, youtube. |
| executeA | Run TypeScript that calls the apinoa API, and get back only what it prints or returns. Use it for every data task, from one call to thousands: fan out over accounts or posts, follow pages, then filter, count, rank and average in the code, so raw API answers never fill the conversation. The code is the body of an async function: use await, and
Example: const page = await apinoa.tiktok.posts({ hashtag: "glassskin", limit: 50 }); const authors = [...new Set(page.items.map((p) => p.author.handle))].slice(0, 10); const recent = await many(authors, (u) => apinoa.tiktok.posts({ username: u, limit: 30 })); return authors.map((u, i) => { const views = (recent[i]?.items ?? []).map((p) => p.metrics?.views ?? 0).sort((a, b) => a - b); return { author: u, median: views[Math.floor(views.length / 2)] ?? null }; }); Operations (call search_docs with words or a platform for parameters, costs and the fields returned):
|
| translate_imageA | Replace the text inside a product image with a translation, keeping fonts, colours and layout. Give the image as a URL. Returns the translated image. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
The three tools occupy completely separate roles: search_docs is free documentation discovery, execute is the paid code runner for all API work, and translate_image is a single-purpose image transformation. The descriptions explicitly reinforce the boundary ('Free: it calls nothing', 'Use it before writing code'), so an agent cannot mistake one for another.
search_docs and translate_image use a consistent snake_case verb_noun pattern, while execute is a bare verb with no noun. That deviation is minor and idiomatic for a runner tool, so the set still reads predictably.
Three tools is thin in raw count, but the design deliberately collapses 35+ platforms and hundreds of operations behind a single typed executor plus a discovery tool, so each tool earns its place. The only slightly odd member is translate_image, which is a niche add-on unrelated to the discovery/execute core.
The discover-then-execute loop covers the full domain: search_docs lists every operation, parameter, cost and return field, and execute handles calls, pagination, fan-out, persistence and usage inspection. Minor gaps exist around pre-run budget/account checks and error diagnostics outside of code, but agents can work around these inside execute.