Para qué sirve
Los documentos de tus proyectos viven en el toolkit. Otra aplicación tuya — un panel de administración, una intranet, una página de documentación — puede pedirle al toolkit uno de ellos y mostrarlo en su propia página. Quien abre esa página lee el documento sin tener cuenta en el toolkit.
La otra aplicación pide con un token de API, una clase de token distinta de la que usan tus asistentes. Un token de API solo funciona aquí, para listar y leer tus documentos; los tokens de tus asistentes no funcionan aquí, y un token de API no funciona para tus asistentes. Nada de esto puede crear, cambiar ni borrar un documento: esta entrada solo lee.
1. Crea un token de API
- Abre MCP en el menú.
- En Tokens de API para tus documentos, escribe un nombre — la aplicación que lo va a usar, por ejemplo
WebLabor Admin. - Presiona Generar token de API y cópialo. Se muestra una sola vez.
La lista de tokens, en Tus tokens de acceso, lo marca como API, así lo distingues de los tokens MCP que usan tus asistentes.
Un token de API lee todos tus proyectos, no solo uno. Si se filtra, quedan expuestos todos tus documentos. Guárdalo en el servidor de la otra aplicación, nunca en una página que descarga el navegador, y revócalo desde la lista de tokens en cuanto sospeches que se salió: la copia filtrada deja de funcionar en su siguiente llamada.
2. Pide un documento
Manda el token en el encabezado Authorization y nombra el proyecto — el nombre de la carpeta de su repositorio — y la ruta del documento dentro de él:
curl https://<tu-toolkit>/api/projects/<proyecto>/documents/<ruta> \
-H "Authorization: Bearer <tu-token-de-api>" \
-H "Accept: application/json"
Por ejemplo, /api/projects/weblabor-admin/documents/help/getting-started.md. Un nombre de proyecto con espacios u otros caracteres especiales va codificado para URL: web%20labor.
3. Qué regresa
{
"project": "weblabor-admin",
"path": "help/getting-started.md",
"number": null,
"title": "Getting started",
"status": null,
"branch": null,
"size": 1834,
"created_at": "2026-10-01T15:20:11+00:00",
"updated_at": "2026-10-12T09:02:45+00:00",
"markdown": "# Getting started\n\n...",
"html": "<h1 class=\"...\">Getting started</h1>..."
}
markdownes el documento tal como está guardado.htmles el mismo HTML que muestra el visor de Proyectos, ya renderizado.titlees el primer encabezado, o el nombre del archivo cuando no hay ninguno.number,statusybranchvienen llenos en los planes deanalysis/, y ennullen todo lo demás.
Lista una carpeta
Para armar un menú o un índice, pide los documentos de una carpeta:
curl "https://<tu-toolkit>/api/projects/<proyecto>/documents?folder=help" \
-H "Authorization: Bearer <tu-token-de-api>" \
-H "Accept: application/json"
La respuesta trae project, folder, branch y una lista documents con la ruta, el número, el título, el estado, la rama, el tamaño y las fechas de cada uno — sin su contenido. La carpeta incluye sus subcarpetas. Sin folder recibes todos los documentos del proyecto.
Agrega branch para ver una rama como la ve el visor: sus propios planes más todos los documentos sin rama. Sin branch recibes todos, tengan la rama que tengan.
Las respuestas que puedes esperar
| Estado | Cuándo | Qué hacer |
|---|---|---|
200 |
El documento, o la lista. | Mostrarlo. |
401 |
El token falta, está mal, fue revocado o no es un token de API. | Revisa el encabezado, o genera un token de API nuevo. |
404 |
El proyecto no existe, el documento no existe, o el proyecto es de otra persona. | Revisa el nombre del proyecto y la ruta. |
405 |
La petición no es de lectura — un POST, PUT, PATCH o DELETE. |
Pide con GET: aquí nada cambia un documento. |
Cada error trae un message que una persona puede leer, siempre en inglés sea cual sea el idioma de tu toolkit, con lo que no se encontró o por qué se rechazó el token. Toda respuesta llega en JSON, mandes o no Accept: application/json. Un proyecto de otro usuario responde exactamente igual que uno que no existe, así que un token nunca revela de quién son los proyectos que hay.
Muéstralo en una página
Pide el documento desde el servidor de tu aplicación, nunca desde el navegador, para que el token no quede en la página. Después imprime el html:
$response = Http::withToken(config('services.toolkit.token'))
->acceptJson()
->get("https://<tu-toolkit>/api/projects/weblabor-admin/documents/help/getting-started.md");
if ($response->successful()) {
echo $response->json('html');
}
El HTML trae las clases de Tailwind del visor. Si tu aplicación usa Tailwind, el documento se ve igual que en el toolkit; si no, dale estilo a las etiquetas tú mismo o renderiza markdown con tu propia librería de Markdown.
Los bloques de código llegan en el html con su fondo oscuro pero sin los colores de la sintaxis: el visor los colorea en el navegador con highlight.js cuando carga su página, así que ese color nunca forma parte del html. Para el mismo resultado, carga highlight.js —u otro resaltador— en tu página y aplícalo sobre los bloques pre code; hljs.highlightAll() hace justo eso.
Sigue por aquí
- Tus proyectos y sus documentos — de dónde salen los documentos.
- Cuida tus tokens — rotar y revocar.
