Ascent
Para desarrolladores

El motor, no solo la app.

Todo lo que hace el producto alojado es accesible desde tu propio código. ¿Cómo llamo a Ascent? Un cliente tipado o el servicio HTTP. ¿Puede manejarlo mi agente? Un servidor MCP. ¿Puedo alojarlo yo mismo? Una compilación con licencia, en tu infraestructura y con tus claves.

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

Seis formas de entregarlo.

Honesto por diseñoLas cifras siempre se etiquetan como medido en Google (una posición real) o estimación de Ascent (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.

Instale el SDK, apúntelo a un sitio con el adaptador de contenido de sitemap y ejecute una auditoría. No se necesitan claves para analyze().

# install (licensed — see the access note below)
npm i @ascent/seo-agent
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 accesoAscent 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/licenseverifyLicense(token, {now, publicKey}), 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.

import { createSeoService, defaultHandlers, toNodeHandler } from '@ascent/seo-agent/service'

const service = createSeoService({ handlers: defaultHandlers, secrets: process.env })

// 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

Seis herramientas SEO, sobre MCP.

Un servidor Model Context Protocol hecho a mano, sin dependencias, sobre stdio, que expone analyze · generate · rankings · competitors · content · status. Funciona con un servicio remoto (SP1) o un SDK local en proceso.

// add to your MCP client config (e.g. Claude Desktop)
{
  "mcpServers": {
    "ascent-seo": {
      "command": "npx",
      "args": ["-y", "@ascent/seo-agent-mcp"],
      "env": {
        "ASCENT_SERVICE_URL": "https://your-service",
        "ASCENT_LICENSE": "your-license-token"
      }
    }
  }
}

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

Referencia y descargas
Obtenernpx @ascent/seo-agent-mcp
SP3 · Habilidad de Claude

Una habilidad de Claude lista para usar.

La habilidad ascent-seo permite a Claude ejecutar tareas SEO por usted. Prefiere el servidor MCP cuando está conectado y recurre a un script CLI sin dependencias en caso contrario — así funciona tanto si MCP está conectado como si 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
})

Un ascentClient de navegador dialoga con su servicio SP1; 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 leen a través del ascentClient 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'), {
  client,                              // reads via SP1
  onAction: (action) => approve(action) // you own the write path,
})
Referencia y descargas
Obtener
Créditos Ascent 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 Ascent.

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

Ejecuta el motor en tu propia infraestructura con tus claves de Serper/Anthropic. Pagas a esos proveedores directamente — los créditos de Ascent 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 Ascent

Llama al Servicio alojado de Ascent (Authorization: Bearer). Ascent ejecuta las operaciones con sus claves y las mide en créditos Ascent — la misma cartera que la app. Cada ejecución debita créditos (reembolsados si el proveedor falla); una cartera vacía devuelve 402 insufficient_credits.

// check your balance (Bearer = your session token)
POST /rest/v1/rpc/credit_balance
{ "p_account": "<account_id>" }   // → { total, planRemaining, topupBalance, resetsAt }

// top up: buy a credit pack (redirects to the hosted card page)
POST /api/payments/mips/create-payment
{ "kind": "credit_pack", "packId": "pack_5k", "accountId": "<account_id>" }

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.

Durante una beta abierta, 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-seoSKILL.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 Ascent 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 Ascent desde mi propio código?

Usa el cliente tipado o llama directamente al servicio HTTP. Ambos usan las mismas rutas que la app alojada y ambos se miden contra tu cuenta, así que lo que construyas se comporta igual que el producto.

¿Puede mi propio agente manejar Ascent?

Sí. Ascent incluye un servidor MCP que expone las operaciones de auditoría, propuesta y publicación como herramientas, así que un agente que tú controlas puede ejecutar el ciclo y decidir qué aplicar dentro de la autonomía que configures.

¿Puedo alojar Ascent 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.

Ascent — un agente autónomo para la visibilidad en búsqueda y en respuestas de IA. Encuentra el trabajo, lo entrega y demuestra que funcionó.
Posicionamiento propuesto, junto a la página de inicio en producción. Mismo sistema de diseño, mismo motor, argumento distinto.