APIKO

io.github.tong0619453646-dev由 GitHub 账号 tong0619453646-dev 发布v0.1.1更新于 Nov 6, 2026

Look up APIKO image and video models, quote prices, generate media and track spend.

概览

AI 生成的概览

APIKO 让助手查询图像与视频模型、获取报价、用你自己的 APIKO 余额生成或编辑媒体,并跟踪任务与花费。

可以做什么
  • 查询可用模型及其请求字段,含类别、生成模式与价格档位
  • 校验计划中的输入并给出标价估算,不提交任何任务
  • 生成或编辑图像、提交视频任务,费用计入 APIKO 余额
  • 按 task_id 跟踪图像与视频任务的状态、进度和结果链接
  • 上传本地或远程参考图,获得可用于参考字段的公开链接
  • 查看该 API 密钥的花费及其自身消费上限
适用场景
适合希望助手通过一个 APIKO 密钥调用多家厂商模型生成图像或视频,并在每次付费调用前先报价、经你确认的场景。也适合比较模型与价格、查看任务结果和密钥用量。
运行要求
通过 npx 以 stdio 在本地运行(需 Node.js 18.17 或更高版本),也可从源码运行。需要 APIKO API 密钥,通过环境变量 APIKO_API_KEY 提供,可在 APIKO 控制台获取。需能访问 APIKO 接口与价格目录,可选支持代理变量。设置 APIKO_MCP_READ_ONLY=1 会隐藏付费与上传工具。
安装前请注意
generate_image 与 generate_video 会真实扣费,参考视频还会增加计费秒数;提交时可能先从余额中冻结部分金额。上传的参考图对任何持有链接的人公开,72 小时后删除;结果链接保留 24 小时。请勿把 API 密钥粘贴到聊天或共享配置中。文本模型无法通过此服务器调用。

安装

在 SourceWeft 中

  1. 打开 控制台中的 APIKO,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

APIKO MCP server

Use APIKO image and video models from Claude Code, Codex, Cursor, Claude Desktop and other MCP clients. The server runs locally over stdio with your own APIKO API key: the agent can look up models and request fields, quote a list price, generate images and videos, follow tasks, check what the key has spent, and upload reference images.

Generation is billed to your APIKO balance at API prices. The server tells the agent to quote first and wait for your approval before every paid call.

Overview, supported models and prices: APIKO MCP server.

Works with

Any client that can start a local stdio MCP server can run npx -y apiko-mcp.

ClientHow to add itTested by us
Claude Code (CLI and desktop app)claude mcp add (below)yes
Codex (CLI, IDE extension, desktop app)codex mcp add or ~/.codex/config.toml (below)yes
Cursor~/.cursor/mcp.json (below)config follows Cursor's docs
Claude Desktopclaude_desktop_config.json (below)config follows the MCP docs
Other stdio clients (Windsurf, Cline, VS Code agent mode, ...)command npx, args -y apiko-mcp, env APIKO_API_KEYno

The rows marked "follows the docs" use each client's documented mcpServers format with the same command that is tested in Claude Code and Codex. If one of them does not work for you, please open an issue.

Requirements

Install

The server is published on npm as apiko-mcp and runs with npx -y apiko-mcp. To run it from source instead:

bash
git clone <this repo> apiko-mcpcd apiko-mcpnpm installnpm run build        # writes dist/index.js

and replace npx -y apiko-mcp below with node /absolute/path/to/apiko-mcp/dist/index.js.

Claude Code (CLI and desktop app)

bash
claude mcp add apiko --scope user -e APIKO_API_KEY=sk-... -- npx -y apiko-mcp

--scope user stores the server in ~/.claude.json, which the Claude Code desktop app (Code tab) also loads. Run /mcp in Claude Code to check that apiko is connected.

Codex (CLI, IDE extension, desktop app)

bash
codex mcp add apiko --env APIKO_API_KEY=sk-... -- npx -y apiko-mcp

or add this to ~/.codex/config.toml, which the Codex CLI, the IDE extension and the ChatGPT desktop app share:

toml
[mcp_servers.apiko]command = "npx"args = ["-y", "apiko-mcp"]env = { APIKO_API_KEY = "sk-..." }

Cursor

Add this to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json in a project root:

json
{  "mcpServers": {    "apiko": {      "type": "stdio",      "command": "npx",      "args": ["-y", "apiko-mcp"],      "env": { "APIKO_API_KEY": "sk-..." }    }  }}

Claude Desktop

Settings → Developer → Edit Config opens claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows). Add the server and restart the app:

json
{  "mcpServers": {    "apiko": {      "command": "npx",      "args": ["-y", "apiko-mcp"],      "env": { "APIKO_API_KEY": "sk-..." }    }  }}

If a desktop app reports that node or npx cannot be found, use the full path from which node.

Try it without spending anything

Add APIKO_MCP_READ_ONLY=1 to the server's env (-e APIKO_MCP_READ_ONLY=1 or --env APIKO_MCP_READ_ONLY=1). The generate and upload tools are then hidden; model lookup, quotes, task checks and the key's usage still work.

Environment variables

VariableDefaultMeaning
APIKO_API_KEYrequiredYour APIKO key. Never paste it into a chat.
APIKO_MCP_READ_ONLYoff1 hides generate_image, generate_video and upload_image.
APIKO_BASE_URLhttps://api.apiko.appAPI base URL.
APIKO_SITE_URLhttps://apiko.appWhere the public price catalog is read from.
HTTPS_PROXY, HTTP_PROXY, NO_PROXYunsetUsed only when set. Node's built-in fetch ignores them, so the server switches to a proxy-aware client when they are present.

Tools

ToolCostWhat it does
search_modelsfreeLists the models your key can use, with category, list price and modes. Filter by query and category.
get_modelfreeOne model's input_schema (fields, enums, defaults), endpoints, modes and price tiers.
estimate_costfreeValidates an input against the schema and quotes the list price without submitting.
generate_imagepaidGenerates, or edits when input.images has reference URLs. Runs async when the model supports it and waits up to wait_seconds (default 30).
generate_videopaidSubmits a video task (POST /v1/videos) and returns its task_id.
get_taskfreeStatus, progress, result URLs and failure reason of a task; can wait up to 45 s.
check_balancefreeWhat this key has spent and its own spending limit, if any.
upload_imagefreeUploads a local JPEG/PNG/WebP (or copies a public image URL) and returns a public img.apiko.app URL for reference fields.

Typical flow: search_models → get_model → upload_image (if you have local references) → estimate_cost → you approve → generate_image / generate_video → get_task.

Cost estimates

estimate_cost (and the generate tools' cost field) returns one of:

  • estimated: a number, when the price follows directly from the input: per-image tiers chosen by resolution (or by an explicit WxH size for gpt-image-2), flat per-image prices, and per-second video prices by resolution × duration, including reference videos once you pass reference_video_seconds.
  • needs_input: something the price depends on is missing, usually the total length of reference videos. You also get the range and the amount held from your balance at submission (hold_usd), which is refunded down to the real charge when the task settles.
  • token_billed: billed by tokens (GPT Image 2.5 Flare / Sunburst, text models). An indicative_usd figure may be shown, but it is not a quote.
  • unknown: no published price or no reliable rule; never treat it as free.

All figures are list prices in USD from the public catalog at apiko.app. The gateway's charge at settlement is final. Failed tasks are refunded automatically.

max_cost_usd on the generate tools refuses the call when the estimate, or its guaranteed upper bound, is above the cap, or when no reliable figure exists.

Billing notes

  • Each generate_* call creates a paid task. Calling it again to check progress would pay twice; use get_task.
  • client_request_id stops a repeated call from being submitted twice while the same server process is running. If a submission times out, the server does not retry it: check https://apiko.app/dashboard/usage first.
  • Result links are signed and kept for 24 hours. Uploaded references are public to anyone with the link and are deleted after 72 hours.
  • check_balance reads the key, not the account. Keys created on apiko.app have no limit of their own and draw on the account balance, which only the dashboard shows (https://apiko.app/dashboard/billing).
  • Text models appear in search_models, but you call them through the OpenAI-compatible API at https://api.apiko.app/v1, not through this server.

Timeouts

Codex gives each MCP tool call 60 seconds by default, so no tool here waits longer than 45 seconds; long tasks are followed with get_task. The rare sync-only image model can take longer: raise tool_timeout_sec under [mcp_servers.apiko] if you use one.

Development

bash
npm installnpm test            # builds, then runs the tests against a local mock API

src/tools.ts holds the tool logic and src/server.ts builds an McpServer from it, independent of the transport; src/index.ts is the stdio entry point. The tests never call the production API.

来源:mcp/README.md,提交 5cbb580

工具

8

search_models

Search APIKO models

List the APIKO models this API key can use, with category (image / video / chat), list prices and generation modes. Free. Use it before get_model; never guess model ids. Text models are listed for reference: call them with the OpenAI-compatible API, not through this server.

输入参数limitquerycategory

get_model

Get APIKO model details

Read one model's request fields (input_schema: types, enums, defaults, required fields), endpoints, async/sync modes and price tiers. Free. Send only fields from input_schema to estimate_cost and the generate tools.

输入参数model必填

estimate_cost

Estimate generation cost

Validate a planned input against the model schema and quote its list price without submitting anything. Free. status "estimated" gives a number; "needs_input" names what is missing (e.g. reference_video_seconds); "token_billed" and "unknown" mean no reliable number exists, so never present them as a price. Show the user the model, input and estimate and wait for explicit approval before calling generate_image or generate_video.

输入参数inputmodel必填reference_video_seconds

generate_image

Generate or edit an image (billable)

BILLABLE: creates a paid image task charged to the user's APIKO balance. Only call after estimate_cost on the same input and the user's explicit approval of the model and cost. With reference images in input.images it edits (POST /v1/images/edits), otherwise it generates. The input is validated against the model schema first. Runs async when the model supports it and waits up to wait_seconds; if not done, poll with get_task. Never call again to check progress.

输入参数inputmodel必填promptmax_cost_usdwait_secondsclient_request_id

generate_video

Generate a video (billable)

BILLABLE: creates a paid video task (POST /v1/videos) charged per second to the user's APIKO balance. Only call after estimate_cost on the same input and the user's explicit approval of the model, duration, resolution and cost. Reference videos add billed seconds. Returns a task_id at once; poll with get_task (videos take minutes). Never call again to check progress.

输入参数inputmodel必填promptmax_cost_usdwait_secondsclient_request_idreference_video_seconds

get_task

Get task status and results

Read an image or video task: status (queued, in_progress, completed, failed), progress, result_urls and fail_reason. Free. wait_seconds (0-45, default 30) keeps polling until the task finishes or the time runs out. Failed tasks are refunded automatically. Result links last 24 hours.

输入参数task_id必填wait_seconds

check_balance

Check key limit and usage

Show what this API key has spent and its own spending limit, if it has one. Free. Keys without a limit draw on the account balance, which API keys cannot read; the user sees it at https://apiko.app/dashboard/billing.

无需输入参数。

upload_image

Upload a reference image

Upload a JPEG, PNG or WebP (up to 10 MB) and get a public https://img.apiko.app URL for reference fields such as images, first_image_url or reference_image_urls. Free (per key: 60 per minute, 1,000 per day). Give exactly one of path (a local file the user named) or url. The uploaded copy is public to anyone with the link and deleted after 72 hours, so only upload files the user asked to use.

输入参数urlpath

版本历史

1
  1. v0.1.1最新Oct 29, 2026

评分

已满足适用检查项的 80%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。