Umbodi
Para desarrolladores

El motor, no solo la app.

La mitad de búsqueda de Umbodi es accesible desde tu propio código: un cliente tipado, un servicio HTTP, un servidor MCP o una compilación autoalojada con licencia que usa tus propias claves de proveedor. La mitad de respuestas de IA hoy solo existe en el producto alojado. Las tablas de abajo dicen exactamente qué es cada cosa, porque una página para desarrolladores que exagera su alcance te cuesta una tarde antes de que lo descubras.

ESM puro · sin paso de compilación Cero dependencias en tiempo de ejecución Node · Deno · edge · browser node --test · más de 6900 pruebas en toda la plataforma

Seis formas de entregarlo.

Tres formas de ejecutarlo — y dónde se detiene cada una.

Las seis superficies de arriba son CÓMO lo llamas. Esto es cuánto se le permite hacer por su cuenta. Cada modo tiene un techo honesto distinto, y el que elijas decide quién pulsa el último botón.

MODE 1 · TOOL

Sin acceso al repositorio

Umbodi prepara el cambio y una persona lo aplica: copiar, pegar, enviar. Después vuelve a rastrear la página en vivo y demuestra que el cambio está realmente ahí. Completo, y no exige confianza.

MODE 2 · TOOL + GIT

Abre una pull request

Un commit atómico en una rama con espacio de nombres propio, nunca la rama por defecto. Una persona revisa y fusiona. Seguro ante reintentos: ejecutarlo dos veces actualiza la misma pull request en lugar de abrir una segunda.

MODE 3 · INTEGRATED

Auto-reparación

Integrado mediante la API o el SDK, el bucle se cierra sin nadie dentro: fusiona si todo está en verde y luego verifica. Fusionar es una opción explícita y separada, nunca heredada de un control de autonomía.

Una palabra, dos significados — comprueba cuál estás leyendoLa documentación del motor usa auto-reparación para la resiliencia operativa: reintento con espera, conmutación de proveedor y explícitamente ningún código que se modifique a sí mismo. El modo 3 de arriba es otra cosa: el bucle de escritura que fusiona una pull request y verifica el despliegue. Ambos son reales; no son la misma capacidad, y solo el segundo toca tu repositorio.

Qué te da el motor, y qué es solo del producto alojado.

Medido sobre el código del motor el 30 de septiembre de 2026, no descrito de memoria. Si estás evaluando Umbodi por la parte de respuestas de IA, lee esto antes de empezar.

  • En el motor — seis acciones. analyze · generate · rankings · competitors · content · status. Cada superficie —SDK, servicio HTTP, MCP, la skill de Claude, los widgets— es una forma distinta de alcanzar esas mismas seis. Las seis son del lado de búsqueda. El motor tiene su propia suite, informada por su propio npm test: una cifra distinta del total de la plataforma de arriba, y que este repositorio no puede recalcular por ti.
  • Solo alojado — visibilidad en respuestas de IA. Los cinco motores de respuesta, la comprobación de citas y los informes correspondientes no están en el motor con licencia ni son accesibles por SDK o MCP. Se ejecutan en el producto alojado. Decirlo te sale más barato que descubrirlo después de una licencia.
  • Solo alojado — el canal de escritura. Abrir una pull request, fusionarla en verde y verificar el despliegue en vivo son capacidades del producto alojado; el motor investiga y redacta, y nunca escribe en tu repositorio. Una clave de licencia alcanza la primera a través de la API alojada: apply abre una pull request con los cambios que aprobaste. Nunca puede fusionar una.
  • Acotado a propósito. Sea cual sea el modo, el agente solo escribe contenido y archivos de descubribilidad: nunca puede modificar el código que decide qué se le permite cambiar. Ese límite se comprueba justo antes de cualquier acto irreversible, no solo al proponer el cambio.
Sobre los nombres de los paquetesEl producto se llama Umbodi; el paquete del motor sigue siendo @ascent/seo-agent (su servidor MCP es el binario seo-agent-mcp), y las variables de entorno siguen siendo ASCENT_SERVICE_URL, ASCENT_LICENSE y ASCENT_LOCAL. Son identificadores reales, fijados hasta una versión mayor: cópialos exactamente como están. El paquete no está en un registro público: los clientes con licencia lo reciben de Umbodi. La API alojada en https://umbodi.ai/v1 no necesita ningún paquete.
Honesto por diseñoLas cifras siempre se etiquetan como medido en Google (una posición real) o estimación de Umbodi (una proyección) — las dos nunca se confunden, en todos los canales.
En profundidad

Brief de arquitectura e integración

El documento completo para desarrolladores — perfil de ejecución, las seis superficies, el ciclo de vida de las acciones, una ruta de adopción segura y la checklist de producción.

Inicio rápido

Analice un sitio en aproximadamente un minuto.

Con una clave de licencia, llama a la API alojada: nada que instalar, y analyze es gratis. Con el motor con licencia, ejecuta la misma auditoría en proceso con el adaptador de contenido de sitemap.

# hosted — your license key, nothing to install
curl -s -X POST https://umbodi.ai/v1/analyze \
  -H "authorization: Bearer $ASCENT_LICENSE" -H 'content-type: application/json' \
  -d '{"url":"https://acme.com"}'          # → { issues: [...] }
// licensed engine, in-process (delivered to licensed customers)
import { createSeoAgent, sitemapAdapter } from '@ascent/seo-agent'

// the sitemap adapter is the no-code source of pages to audit
const { listIndexableEntities } = sitemapAdapter({ origin: 'https://acme.com' })

const seo = createSeoAgent(
  { site: { domain: 'acme.com' } },
  { listIndexableEntities },
)

const { issues } = await seo.analyze()
console.log(issues)

generate() (propuestas de contenido con IA) y run() (el bucle de tareas) usan las costuras de proveedor y almacenamiento — consulte la sección SDK.

Con licencia · solicitar accesoUmbodi es un motor comercial y aún no está en un registro público. La línea de instalación muestra el flujo previsto; comience en la aplicación o contáctenos para solicitar acceso de desarrollador.
SP0 · Núcleo del SDK

El SDK — una fachada, cuatro perfiles.

createSeoAgent(config, deps) envuelve los núcleos puros y devuelve { analyze, generate, run }. Una capa de tiempo de ejecución detecta Node / Deno / edge / navegador y separa lo de confianza (servidor, guarda las claves) de lo no confiable (navegador, relega las llamadas secretas al servicio). Una verificación de licencia ES256 sin conexión reutiliza sus derechos.

import { createSeoAgent, sitemapAdapter, memoryStore } from '@ascent/seo-agent'

const seo = createSeoAgent(
  { site: { domain: 'acme.com' }, serviceUrl: 'https://your-service' },
  {
    listIndexableEntities: sitemapAdapter({ origin: 'https://acme.com' }).listIndexableEntities,
    store: memoryStore(),
    // callClaude, db, auth … wire the seams you need for generate()/run()
  },
)

const { issues } = await seo.analyze()
const draft   = await seo.generate()   // human-approved content proposals
  • @ascent/seo-agent/license — verifyLicense(token, {publicJwk, now}), offline.
  • @ascent/seo-agent/config · /runtime — resolve config + the runtime/trust split.
  • Cuatro perfiles init: headless · api · frontend · admin.
SP1 · Servicio / API

Un manejador. N rutas. Secretos del lado del servidor.

Un único enrutador estándar de la Web handleRequest(Request) → Response sobre cada envoltura de backend, con autenticación de licencia unificada Authorization: Bearer, CORS y respuestas tolerantes a fallos. Este es el punto de conexión al que el SDK del navegador relega — de modo que las claves permanecen en el servidor.

O no lo alojes en absolutoUmbodi ejecuta este contrato en https://umbodi.ai/v1: cada acción es un POST /v1/{action} con tu clave de licencia, las acciones de pago se cobran en créditos a la cuenta de la clave, y un sitio debe ser uno de tus propios proyectos. GET /v1/status lista las acciones.
import { createSeoService, defaultHandlers, toNodeHandler } from '@ascent/seo-agent/service'

const service = createSeoService({
  handlers: defaultHandlers(ctx),   // ctx = your provider + storage seams
  publicJwk,                        // verifies license keys offline
  corsOrigins: ['https://your.site'],
})

// Web-standard (edge / Deno / Bun):
export default (request) => service.handleRequest(request)

// or adapt to a Node http handler:
export const nodeHandler = toNodeHandler(service)
# call it with a license
curl -X POST https://your-service/analyze \
  -H "authorization: Bearer $ASCENT_LICENSE" \
  -H "content-type: application/json" \
  -d '{"site":{"domain":"acme.com"}}'
Referencia y descargas
Obtener
SP2 · Servidor MCP

Siete herramientas, y una de ellas actúa.

Un servidor Model Context Protocol hecho a mano, sin dependencias, sobre stdio, que expone analyze · generate · rankings · competitors · content · status · apply. Una clave de licencia sola usa la API alojada de Umbodi (umbodi.ai/v1); apúntala a tu propio servicio con ASCENT_SERVICE_URL, o ejecuta un SDK local en proceso.

Una herramienta actúa, y proponeSeis herramientas leen o redactan. apply pide al servicio que abra una pull request —revisable, reversible, visible antes que ninguna otra cosa— y nunca puede fusionarla. Una clave de licencia es una cadena que acaba en archivos de configuración, variables de CI y capturas de pantalla, cosa que una instalación de GitHub App nunca hace: por eso ninguna acción autenticada con licencia puede fusionar: la API alojada no tiene acción de fusión, y la comprobación de permisos rechaza una fusión antes siquiera de examinar la clave. Fusionar sigue siendo del propietario del proyecto. Sigue sin haber herramienta run ni acción de worker, el transporte es solo stdio y la capa JSON-RPC es un subconjunto hecho a mano, no el SDK oficial.
// add to your MCP client config (e.g. Claude Desktop)
{
  "mcpServers": {
    "ascent-seo": {
      "command": "node",
      "args": ["/path/to/seo-agent/mcp/server.mjs"],
      "env": { "ASCENT_LICENSE": "your-license-key" }
    }
  }
}

¿Prefiere importarlo? @ascent/seo-agent/mcp expone runServer, defineTools y resolveBackend.

Referencia y descargas
Obtenercurl https://umbodi.ai/v1/status
SP3 · Habilidad de Claude

Una habilidad de Claude lista para usar.

La skill ascent-seo permite a Claude ejecutar tareas de Umbodi por ti. Prefiere el servidor MCP cuando está conectado y recurre a un script CLI sin dependencias en caso contrario, así que funciona esté MCP conectado o no. Una referencia de honestidad mantiene los resultados medidos y proyectados claramente separados en lo que Claude informa.

  • Se entrega como skill/ascent-seo/ — SKILL.md + referencia de honestidad + CLI de reserva.
  • MCP preferido; la vía del script solo necesita ASCENT_SERVICE_URL + ASCENT_LICENSE.
  • Combina naturalmente con el servidor MCP de arriba.
Referencia y descargas
SP4 · Widgets de frontend

Widgets de navegador — construcción pura, montaje ligero.

Widgets de navegador sin dependencias, protegidos contra XSS: un inyector de metadatos, una insignia de posición (medido), un medidor de potencial (proyectado) y una tarjeta de resultado honesta. Cada uno es un puro buildX(data) → html más un ligero mountX(el, data), con un theme.css de base.

import { mountRankBadge } from '@ascent/seo-agent/widgets'
import '@ascent/seo-agent/widgets/theme.css'

mountRankBadge(document.querySelector('#rank'), {
  keyword: 'best crm',
  position: 5,          // measured on Google — not a projection
})

makeAscentClient() crea un cliente de navegador que dialoga con su servicio; solo se envía el token, nunca los secretos.

Referencia y descargas
Obtener↓ Widget kit .zipfree · includes theme.css
SP5 · Cabina de administración

Una cabina de operador que usted controla.

Seis paneles accionables — propuestas, palabras clave, rankings, competidores, autonomía, estado — construidos sobre un pequeño marco de paneles. Los paneles muestran los datos que usted les pasa y escriben a través de una devolución de llamada onAction que usted conecta, de modo que no hay ningún punto de escritura oculto que finja existir.

import { mountProposals } from '@ascent/seo-agent/admin'

mountProposals(document.querySelector('#proposals'), proposals, {
  onAction: (action) => approve(action), // you own the write path
})
Referencia y descargas
Obtener
Créditos Umbodi y facturación

Dos formas de pagar las operaciones de pago.

Las operaciones de pago (SERP + IA) cuestan dinero. Cómo se facturan depende de dónde se ejecuta el motor — en tu infraestructura o en la API alojada de Umbodi.

Autoalojado / con licencia → tus claves, sin créditos Umbodi

Ejecuta el motor en tu propia infraestructura con tus claves de Serper/Anthropic. Pagas a esos proveedores directamente — los créditos de Umbodi no aplican y no hay nada que recargar. Tu coste = tu factura del proveedor + la licencia anual. Genera una clave desde cualquier botón 🔒 Generate license.

API / Servicio alojado → créditos Umbodi

Llama a la API alojada de Umbodi en https://umbodi.ai/v1 con tu clave de licencia (Authorization: Bearer). Umbodi ejecuta las operaciones con sus claves —o con las tuyas, si las conectaste— y cobra créditos Umbodi a la cuenta de la clave: la misma cartera y los mismos precios que la app. Una llamada que falla en el proveedor se reembolsa; una cartera vacía devuelve 402 insufficient_credits, y un proyecto en su tope mensual 402 project_cap_reached. Un tema de content sobre uno de sus competidores seguidos se rechaza con 422 topic_refused antes de cobrar nada.

// a paid call: charged to the key's account, refused if the site is not yours
POST https://umbodi.ai/v1/rankings
Authorization: Bearer <license key>
{ "site": { "domain": "example.com" } }   // → { results: [{ keyword, position, top }] }

// top up from the app, signed in — the account comes from your session
POST /api/payments/mips/create-payment
{ "kind": "credit_pack", "packId": "pack_5k" }   // 401 signed out · 503 payments off

Tus propias claves (BYOK): conecta tus claves de Serper/Claude en la configuración de la cuenta y las operaciones alojadas se ejecutan con tus claves a casi cero créditos — ideal para agencias y alto volumen.

El operador puede pausar la medición — las llamadas alojadas se ejecutan gratis (el uso se sigue registrando).

← Back Docs
Descargas

Consiga los componentes gratuitos.

Las piezas abiertas son suyas para descargar y usar ahora. El motor con licencia — núcleo del SDK, servicio/API, servidor MCP, cabina de administración — está disponible bajo solicitud.

Kit de widgets

Widgets de navegador + theme.css — insignia de posición, medidor de potencial, tarjeta de resultado, inyector de metadatos.

↓ .zip

Habilidad de Claude

La habilidad ascent-seo — SKILL.md, referencia de honestidad, CLI de reserva.

↓ .zip

Definiciones de tipos

La superficie de API .d.ts — entidades, adaptadores, almacenamiento, proveedores.

↓ .zip

Ejemplos

Ejemplos ejecutables de uso del SDK.

↓ .zip

🔒 Con licencia · núcleo del SDK · servicio/API · MCP · admin

El motor en sí es un producto comercial con licencia — autohospedado o de marca blanca. No es una descarga pública — solicite acceso de desarrollador y le configuraremos.

Honesto por diseñoSolo las piezas gratuitas de arriba se pueden descargar aquí. Nada en esta página entrega el motor con licencia — la vía de solicitud de acceso es la única forma de obtenerlo.
Míralo

La integración, de principio a fin.

Un recorrido por las superficies que un desarrollador toca de verdad: dónde se fijan el origen y el proveedor SERP, qué investigadores se ejecutan, la aplicación de GitHub que permite a Umbodi abrir un pull request, y la lista de trabajo donde un cambio se te devuelve como texto para pegar en lugar de escribirse en tu sitio a tus espaldas.

The configuration screen showing the site origin, the SERP provider, the researchers that run, fleet learning, and the GitHub repository pull requests are opened against, followed by the apply worklist handing back a page to paste.
Configuración, la aplicación de GitHub y la lista de trabajo: grabado en la aplicación en vivo, en modo solo lectura.

Más demostraciones, una por superficie, a medida que crezca la superficie de integración.

Respuestas directas

Las preguntas que hace la gente.

¿Cómo llamo a Umbodi desde mi propio código?

Llama a la API alojada en umbodi.ai/v1 con tu clave de licencia. Ejecuta las mismas rutas que la app, a los mismos precios, con cargo a los créditos de tu cuenta. O ejecuta el motor con licencia en tu propia infraestructura, con tus propias claves de proveedor.

¿Puede mi propio agente manejar Umbodi?

Sí. El servidor MCP de Umbodi le da a un agente siete herramientas: auditar una página, crear el perfil del sitio, comprobar rankings, encontrar competidores, redactar contenido, informar del estado y abrir una pull request con los cambios que aprobaste. Nunca puede fusionar una, y el ciclo programado sigue en el calendario de Umbodi.

¿Puedo alojar Umbodi yo mismo?

Sí. Una compilación con licencia se ejecuta en tu propia infraestructura con tus claves de proveedor y una clave de licencia firmada sin conexión, y puede llevar tu marca. Nada nos consulta para autorizar una ejecución.

Umbodi actúa según tu mandato — un agente autónomo para la visibilidad en búsqueda y en respuestas de IA. Encuentra el trabajo, lo entrega y mide lo que pasó.
Umbodi™ es una marca de I-Novanet Software Ltd. Solicitud aceptada en Mauricio (MU/M/2026/44210).