关于 apinoa
apinoa-mcp 为 MCP 客户端接入商品、社交内容、搜索结果、AI 答案和图片翻译数据。它通过可编写并经类型检查的 TypeScript 代码批量调用 API,并在沙箱中执行。
主要功能
- 01检索商品、社交内容和搜索结果
- 02获取 AI 答案并翻译图片文字
- 03编写 TypeScript 代码组合 API 调用
- 04分页、并发处理和结果筛选
- 05本地保存数据并查看调用用量
适用场景
- 01比较 Amazon 与 Walmart 的商品价格
- 02分析社交账号帖文的互动数据
- 03查看品牌在搜索引擎或 AI 答案中的出现情况
- 04翻译商品图片中的文字
MCP 相关
作为 MCP 服务提供 `search_docs`、`execute` 和 `translate_image` 等工具,供客户端查询 API 操作、运行代码并翻译图片。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.apinoa.com/mcpclaude mcp add --transport http apinoahq-apinoa https://api.apinoa.com/mcp{"mcpServers":{"apinoahq-apinoa":{"type":"http","url":"https://api.apinoa.com/mcp"}}}在 Cursor 中打开{"servers":{"apinoahq-apinoa":{"type":"http","url":"https://api.apinoa.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"apinoahq-apinoa":{"type":"http","url":"https://api.apinoa.com/mcp"}}}{"mcpServers":{"apinoahq-apinoa":{"serverUrl":"https://api.apinoa.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://api.apinoa.com/mcp需要授权工具
详细介绍
apinoa-mcp
一个面向 apinoa 的 MCP 服务。它为 Claude Code、 Codex、Cursor 和其他任何 MCP 客户端提供来自 Amazon、Walmart、Shopify、TikTok Shop 和 AliExpress 的实时商品数据;来自 TikTok、YouTube、Instagram、Threads、X、Reddit 和 LinkedIn 的帖子、个人资料和评论; 来自 Google、Bing、Naver 及另外 13 个搜索引擎的搜索结果;来自 ChatGPT、Gemini、Google AI Overviews、Google AI Mode 和 Naver 的 AI 答案;以及图片翻译。用它代替编写爬虫。
可以询问诸如 “@duolingo 最近 30 条 TikTok 中,哪些视频的播放量达到其平时的 3 倍”、“比较 Amazon 和 Walmart 上最便宜的 Stanley 40 oz”、“example.com 在 Google 上搜索 ‘trail running shoes’ 时排名多少”、 “询问 ChatGPT 最好的跑鞋时,它会提到我们的品牌吗”,或 “将这张商品照片上的文字翻译成韩语”。
设置
在 apinoa.com 的 Dashboard > API keys 下创建密钥。调用按 API 的标准费率计费; 失败的调用不会计费。
从终端获取密钥
npx apinoa-mcp login
它会打印一段代码,并在浏览器中打开 apinoa 页面;登录后输入该代码。新密钥会以 APINOA_API_KEY 的名称保存在当前文件夹的 .env 中(--out <path> 会将其写入其他文件,
--no-browser 只会打印地址)。密钥在 90 天后过期,也会列在 Dashboard > API keys 下,
你可以在那里撤销密钥。按如下所示将其提供给客户端。
Claude Code
claude mcp add apinoa -e APINOA_API_KEY=your_key -- npx -y apinoa-mcp
Codex
codex mcp add apinoa --env APINOA_API_KEY=your_key -- npx -y apinoa-mcp
或者写入 ~/.codex/config.toml:
[mcp_servers.apinoa]
command = "npx"
args = ["-y", "apinoa-mcp"]
env = { APINOA_API_KEY = "your_key" }
Claude Desktop、Cursor、Windsurf 等 — 添加到客户端的 MCP 配置中
(claude_desktop_config.json、.cursor/mcp.json、……):
{
"mcpServers": {
"apinoa": {
"command": "npx",
"args": ["-y", "apinoa-mcp"],
"env": { "APINOA_API_KEY": "your_key" }
}
}
}
需要 Node.js 20 或更高版本。该软件包会安装 Deno,用于运行模型编写的代码。
工具
| 工具 | 功能 |
|---|---|
search_docs | 查找完成任务所需的操作:如何调用、每个参数、费用以及返回的字段。免费 |
execute | 运行模型编写的 TypeScript 并调用 API;仅返回代码返回或打印的内容 |
translate_image | 将图片中的文字替换为译文;返回图片 |
模型无需每次 API 调用都调用一次工具,而是编写一段简短程序。并行处理 50 个账号、翻页、筛选和求平均值都由代码完成,只有答案会返回到 对话中:
const page = await apinoa.tiktok.posts({ username: "duolingo", limit: 30 });
const views = page.items.map((p) => p.metrics?.views ?? 0).sort((a, b) => a - b);
const median = views[Math.floor(views.length / 2)];
return page.items.filter((p) => (p.metrics?.views ?? 0) >= 3 * median).map((p) => p.url);
在 execute 中:
apinoa.<platform>.<operation>(params):进行一次 API 调用;返回答案的data,遇到拒绝时抛出ApinoaError(包含code、status)。pages(op, params, { maxPages }):获取分页操作的所有项目,并跟随游标继续翻页。many(items, fn, { concurrency }):对每个项目执行fn,每次处理 8 个;失败的项目会返回undefined,并计入失败数量。store.save / load / list / saveFile:在多次运行之间将数据保存在你的计算机上(例如来自apinoa.tiktok.media的视频)。usage:本次运行的调用次数和用量单位。
代码运行前会根据 API 类型进行类型检查,因此不存在的操作、参数或字段会在运行前报错,不会产生费用。每次运行都有预算(默认为 500 个单位,可通过每次运行的 budget_units 设置),用完后即停止。答案会缓存 10 分钟,因此再次运行相同代码时,已执行过的调用不会产生费用。
代码在 Deno 子进程中运行,只能访问 apinoa API,且只能读写其数据文件夹:无法访问其他主机、其他文件、环境变量或程序。API 密钥不会进入代码;沙盒会将其添加到每个请求中。
平台、操作和参数会在服务启动时从实时 API 目录读取,因此 apinoa 新增平台后,无需更新此软件包即可使用。
工具集
APINOA_MCP_MODE=tools 会改为提供 0.1 工具集:每种读取操作对应一个工具(search_products、
get_product、list_social_posts、get_social_comments、call_apinoa、list_platforms 等),每次工具调用执行一个 API 调用。Deno 无法运行时,服务会自动回退到该模式。若答案超过 100,000
个字符,则会尽可能保留完整条目,并附注被省略的条目数量。
选项
| 变量 | 默认值 | |
|---|---|---|
APINOA_API_KEY | — | 每次数据调用都必需。 |
APINOA_BASE_URL | https://gateway.apinoa.com | |
APINOA_API_URL | https://api.apinoa.com | login 登录时使用。仅支持 https(localhost 可使用 http)。 |
APINOA_MCP_MODE | code | 使用 tools 可启用 0.1 工具集。 |
APINOA_MCP_DATA_DIR | ~/.apinoa-mcp | 缓存、store 和保存的文件所在位置。 |
APINOA_MCP_MAX_BUDGET | 20000 | 单次运行可分配的最大单位数。 |
APINOA_MCP_CONCURRENCY | 16 | 单次运行中同时进行的 API 调用数。 |
APINOA_MCP_CACHE_TTL_S | 600 | 答案复用时长;设为 0 可关闭缓存。 |
APINOA_MCP_MAX_OUTPUT | 40000 | 单次运行返回给模型的最大输出字符数。 |
APINOA_MCP_DENO | 捆绑版本 | 其他 deno 的路径。 |
作为库使用
import { createApinoaServer } from "apinoa-mcp";
const server = await createApinoaServer({ apiKey: process.env.APINOA_API_KEY });
// connect it to any MCP transport, e.g. Streamable HTTP
相关项目
- @apinoa/sdk:TypeScript SDK
- apinoa on PyPI:Python SDK
- API 文档
- Official MCP Registry:登记为
io.github.apinoahq/apinoa-mcp
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。