NaN MCP Server
Servidor MCP (Model Context Protocol) que expone las herramientas de media de la () para cualquier cliente compatible con MCP.
接入你的智能体
发布者自己的命令。不是 PlugMCP 端点。
用我们的密钥与日志托管一份副本。
npx -y [email protected]Claude Code 没有针对本地命令的安装链接。复制下方命令并在终端中运行。
claude mcp add nan-mcp-server -- npx -y nan-mcp-server@1.3.0在终端中运行。
{ "mcpServers": { "nan-mcp-server": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}claude_desktop_config.json
远程 URL 还是本机命令? 两种安装方式的区别
api.nan.buildersAl ser un estándar abierto, funciona con opencode, Claude Code, Codex, Pi, Cursor, Windsurf, Zed, etc.
sk-...)El paquete se distribuye por npm. La forma más simple de usarlo en cualquier cliente MCP es sin instalarlo: npx lo ejecuta al vuelo.
export NAN_API_KEY="sk-tu-key-aqui"
npx -y [email protected]
Con otro gestor de paquetes, si ya lo usas:
pnpm dlx [email protected] # pnpm
yarn dlx [email protected] # yarn
bunx [email protected] # bun
O instálalo globalmente:
npm install -g [email protected] # o: pnpm add -g / bun add -g
nan-mcp-server
Sobre la versión fijada: los ejemplos fijan una versión exacta en lugar de
@latest, a propósito. Con@latest, cada arranque descarga la última versión publicada, así que cualquier versión futura —incluida una publicada por una cuenta comprometida— se ejecutaría en tu máquina automáticamente. Fijar la versión te deja decidir cuándo actualizar; consulta las releases y sube el número cuando quieras. Si prefieres actualizaciones automáticas, sustituye la versión por@latesten cualquiera de los ejemplos.
El servidor se ejecuta vía stdio (proceso local). Solo necesita una variable de entorno: NAN_API_KEY. Sin ella arranca igualmente y publica su catálogo —para que cualquier inspector pueda leerlo—, pero toda herramienta que llame a la API falla indicando que falta.
Las imágenes y audios generados se guardan en ~/nan-mcp-output/ (configurable con NAN_OUTPUT_DIR).
Añade a tu opencode.jsonc (o créalo en ~/.config/opencode/):
{
"mcp": {
"nan-media": {
"type": "local",
"command": ["npx", "-y", "[email protected]"],
"environment": {
"NAN_API_KEY": "{env:NAN_API_KEY}"
}
}
}
}
Instalar vía CLI:
claude mcp add nan-media --scope user -e NAN_API_KEY='${NAN_API_KEY}' -- \
npx -y [email protected]
O en .mcp.json:
{
"mcpServers": {
"nan-media": {
"type": "stdio",
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"NAN_API_KEY": "${NAN_API_KEY}"
}
}
}
}
En ~/.codex/config.toml:
[mcp_servers.nan-media]
command = "npx"
args = ["-y", "[email protected]"]
env_vars = ["NAN_API_KEY"]
env_varsno es opcional: codex no propaga su propio entorno a los servidores MCP, así que sin esa línea el servidor arranca sinNAN_API_KEYy cada llamada falla con «NAN_API_KEY environment variable is required».env_varsnombra las variables que debe heredar;envsolo admite valores literales, que no conviene escribir en un archivo versionado.
Pi usa pi-mcp-adapter y lee los archivos MCP estándar. Instala el adaptador:
pi install npm:pi-mcp-adapter
Crea ~/.config/mcp/mcp.json (config compartido MCP estándar):
{
"mcpServers": {
"nan-media": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"NAN_API_KEY": "$env:NAN_API_KEY"
}
}
}
}
La key se interpola con
$env:NAN_API_KEY, así que ningún secreto queda en el archivo.
Para usar los modelos de NaN en Pi, define el proveedor en ~/.pi/agent/models.json:
{
"providers": {
"nan": {
"baseUrl": "https://api.nan.builders/v1",
"api": "openai-completions",
"apiKey": "$NAN_API_KEY",
"models": [
{ "id": "deepseek-v4-flash", "name": "DeepSeek V4 Flash", "reasoning": true, "input": ["text", "image"], "contextWindow": 1048576 },
{ "id": "qwen3.6", "name": "Qwen 3.6", "reasoning": true, "input": ["text", "image"], "contextWindow": 262144 }
]
}
}
}
Luego usa --provider nan --model <id> (p.ej. pi --provider nan --model deepseek-v4-flash).
En la configuración de MCP del cliente, añade un servidor stdio:
Comando: npx -y [email protected]
Variables: NAN_API_KEY=tu-clave-de-nan-builders (no la incluyas en el config versionado)
Una vez conectado, pide al agente:
nan-mcp-server/
├── server.js # Servidor MCP + herramientas
├── test/server.test.js # Tests (node:test, sin dependencias extra)
├── .github/workflows/ # ci.yml (tests) + publish.yml (npm)
├── package.json
└── README.md
Los tests usan el test runner nativo de Node (node:test), sin dependencias adicionales. No hacen llamadas a la API (usan un valor de prueba para NAN_API_KEY), así que se ejecutan sin red ni credenciales.
npm test
Para probar el servidor manualmente contra la API real (requiere key):
NAN_API_KEY=sk-tu-key-aqui node server.js
Y luego una llamada de ejemplo vía stdio:
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}\n{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}\n' \
| node server.js
NAN_API_KEY se lee solo del entorno..gitignore excluye node_modules/, logs y .env..github/workflows/ci.yml ejecuta los tests en cada push y PR a main sobre Node 18, 20, 22 y 24, más un job strict-deps con pnpm: su node_modules sin hoisting hace fallar cualquier import de un paquete no declarado en package.json (npm lo dejaría pasar silenciosamente)..github/workflows/publish.yml publica en npm al crear un release en GitHub, vía trusted publishing (OIDC), sin token en secrets.~/nan-mcp-output/ (configurable con NAN_OUTPUT_DIR). Los nombres se sanitizan (sin path traversal) y nunca se sobrescriben archivos existentes: si el nombre ya está ocupado se añade -2, -3, etc.NAN_API_KEY del entorno.MIT — ver LICENSE.
MCP server exposing NaN API tools: image generation/editing (flux-2-klein), TTS (kokoro), STT (whisper), embeddings and rerank
{ "mcpServers": { "nan-mcp-server": { "command": "npx", "args": [ "-y", "[email protected]" ] } }}工具
暂无工具列表。远程服务器在首次健康检查后会获得工具列表。
常见问题
在本页复制适用于 Cursor、Claude Desktop、Claude Code 或 VS Code 的 stdio 配置。它使用发布者的安装方式,而不是 PlugMCP 代理。
此记录未列出必需的环境变量。
Nan 通过 stdio 在本地运行。
上次检查时间:2026-10-28。 MCP server exposing NaN API tools: image generation/editing (flux-2-klein), TTS (kokoro), STT (whisper), embeddings and rerank