Referencia de campos MCP
Usa esta referencia para construir una solicitud MCP. Los campos obligatorios están marcados como Obligatorio. Los campos opcionales se pueden omitir a menos que una fuente agregue una condición.
De un vistazo
| Contrato | Dónde leerlo |
|---|---|
| Entradas de herramientas | Tablas a continuación y la lista de herramientas conectadas |
| Entradas y salidas exactas de operaciones | execute → sift.spec(id) |
| Campos específicos de la organización | Operaciones de descubrimiento de campos y guías de tareas |
| Resultados de búsqueda | items, nextCursor; total en la primera página de un agente, o con includeTotal |
| Resultados de analítica | rows, meta, comparison opcional |
| Resultados de la app integrada | structuredContent, texto y enlace de Sift |
| Campos de conexión personal | Guía de conexiones MCP |
Qué estás viendo
La herramienta execute ejecuta un programa. sift.call(id, input) recibe directamente la entrada de la operación.
Por ejemplo, sift.call("query.analytics.<source>", query) recibe la consulta.
No agregues campos de paginación REST a una operación MCP.
Campos principales de herramientas
| Herramienta | Campo | Tipo, requisito y comportamiento |
|---|---|---|
execute | code | Obligatorio string no vacío. Cuerpo de función JavaScript async. Usa return para el resultado. |
execute | timeoutMs | Entero positivo opcional. Establécelo explícitamente para ejecuciones predecibles; valor predeterminado en tiempo de ejecución 90000, máximo 120000 milisegundos. |
execute | userId | String de compatibilidad opcional. La autenticación determina la identidad; este campo no puede sobreescribirla. |
list_skills | Sin campos | Envía un objeto vacío. |
read_skill | name | Obligatorio string no vacío. ID de skill de list_skills. |
read_skill_file | name | Obligatorio string no vacío. ID de skill. |
read_skill_file | file | Obligatorio string no vacío. Ruta de referencia relativa listada por read_skill. |
Operaciones de búsqueda
| Fuente | Operación | Úsala para |
|---|---|---|
actions | query.search.actions | Una fila por caso |
action_records | query.search.action_records | Una fila por registro, con interacción y autores |
messages | query.search.messages | Registros de mensajes |
reviews | query.search.reviews | Revisiones solicitadas o completadas |
users | query.search.users | Personas |
user_identities | query.search.user_identities | Identidades por plataforma |
user_ids | query.search.user_ids | Una página ordenada de IDs de persona |
comments | actions.case.comment.list | Registros de comentarios |
lifecycle_events | search.case.event.list | Asignaciones, cambios de estado, envíos y actividad |
listening_results | query.search.listening | Posts de Listening almacenados en un scope explícito |
Las colas, agentes, temas, etiquetas y otras entidades de configuración son operaciones de catálogo.
Descúbrelas con sift.spec() en execute. No son valores adicionales de search.source.
Entrada de búsqueda común
Estos campos describen la selección de registros común. Las excepciones específicas de cada fuente siguen a continuación.
| Campo | Tipo y comportamiento |
|---|---|
filter | Árbol de filtros estructurado opcional. Cada fuente acepta sus propios campos y operadores. No envíes un string DSL aquí. |
dateRange | Objeto de fecha absoluta o relativa opcional. Ver campos de fecha a continuación. |
time | Objeto de zona horaria y franja horaria opcional. Algunas fuentes rechazan el filtrado por franja horaria. |
sort | Objeto opcional con field y direction opcional (asc o desc). Los campos válidos dependen de la fuente. |
limit | Entero positivo opcional. La mayoría de los esquemas de registros aceptan 1–10000, predeterminado 50; los límites de página en tiempo de ejecución pueden ser menores. |
cursor | String opcional. Pasa el nextCursor anterior sin cambios con la misma selección. |
Campos del árbol de filtros
| Campo | Tipo y comportamiento |
|---|---|
filterType | Obligatorio string. Un campo hoja compatible con la fuente, o and / or para un grupo. |
operator | Obligatorio para una hoja. Usa el operador declarado para ese campo. |
value | Valor de hoja. El tipo depende del campo: lista de strings, escalar, booleano u objeto de rango. |
filters | Obligatorio para un grupo and / or. Array de árboles de filtros anidados. |
field | Obligatorio para filtros como actionCustomField, agentCustomField o formField. Nombra el campo registrado. |
formId | Opcional en formField. Limita la comparación a un formulario. |
tagTypes | Opcional en cláusulas tag / tagId compatibles: USER, SYSTEM, GEN_AI. |
Usa sift.spec para la unión completa de hojas. Un campo compatible con actions puede fallar en otra fuente.
Los campos, operadores o valores desconocidos no deben ampliar tu consulta silenciosamente.
Campos específicos de actions
| Campo | Tipo y comportamiento |
|---|---|
dateField | Reloj opcional. Lee su enum en query.search.actions. Una lista de casos lee la fecha de la action; una lista de registros lee createdAt. |
idsOnly | Booleano opcional. Omite el enriquecimiento y devuelve identificadores y hora de creación. |
includeModerationSummary | Booleano opcional, desactivado por defecto. Agrega el resumen de evaluación seleccionado donde la moderación está disponible. |
Actions tiene un predeterminado de 50 filas por llamada y devuelve como máximo 500.
Una lista de casos se ordena por easyId, createdAt desc o updatedAt desc.
query.search.action_records lista una fila por registro. Acepta los mismos filter, dateRange, time, dateField, idsOnly, includeModerationSummary, cursor y limit. También acepta estos campos y cualquier orden que liste el esquema:
| Campo | Tipo y comportamiento |
|---|---|
includeBrandAuthored | Booleano opcional. Incluye registros creados por la marca, excluidos por defecto. |
project | Array opcional de nombres de columnas adicionales permitidas, por ejemplo ["author", "score", "numComments"]. Descubre los nombres válidos en el esquema. |
query.search.actions rechaza grain, project e includeBrandAuthored, y el rechazo nombra query.search.action_records.
Campos de contexto y mensajes
| Fuente | Campo | Tipo y comportamiento |
|---|---|---|
actions | context | lean o full opcional. Actívalo para leer cada caso con su contexto; full agrega más casos previos e historial entre casos. |
actions | contextFormat | text o json opcional. Predeterminado text; JSON separa perfil, mensajes, notas e historial. |
actions (with context) | limit | Predeterminado 5; máximo en tiempo de ejecución 20. Usa páginas pequeñas para contexto completo. |
messages | externalScope | exclude, include u only opcional. Predeterminado exclude; controla los registros de contexto externo de ambassador. |
Messages ordena por createdAt o id. Reviews ordena por createdAt.
Comments ordena por createdAt. Lifecycle events solo admite createdAt desc.
Users, comments y lifecycle events no admiten ventanas de franja horaria.
Campos de personas
| Campo | Tipo y comportamiento |
|---|---|
windowKind | community, activity, first_activity o snapshot opcional. |
userProfiles | Objeto opcional. |
userProfiles.fetchCustomFields | Booleano opcional, predeterminado false. Agrega campos de usuario definidos por la organización. |
userProfiles.filter | Objeto opcional con los interruptores a continuación. Todo lo demás sobre quién es una persona va en filter. |
scope se retiró. Las identidades por plataforma son query.search.user_identities (solo un filtro keyword y paginación). Una página ordenada de IDs de perfil es query.search.user_ids (solo un filtro de personas y paginación).
Busca a una persona por nombre, handle o correo con una hoja keyword en filter. Envía los límites de volumen como una hoja volume30d.
La ventana de comunidad es windowKind y dateRange del nivel superior.
Un rango de fechas solo no convierte un snapshot de People en una población de usuarios activos.
Campo de userProfiles.filter | Tipo y comportamiento |
|---|---|
filterEmptyRecords | Booleano opcional, predeterminado true. Conserva perfiles con registros vinculados y no eliminados. |
championsOnly, excludeChampions | Booleanos opcionales. Incluye solo champions o los excluye. |
championTerms | Array de strings opcional. Términos de coincidencia de champions. |
staffOnly, excludeStaff | Booleanos opcionales. Incluye solo personal de la comunidad o lo excluye. |
staffTerms | Array de strings opcional. Términos de coincidencia del personal de la comunidad. |
requirePeriodActivity | Booleano opcional. Modo comunidad con ventana; requiere contribución dentro de la ventana. |
sortModel | Array opcional con string colId obligatorio y sort (asc / desc) por elemento. |
Campos de Listening
| Campo | Tipo y comportamiento |
|---|---|
scope | Objeto opcional con from y to obligatorios, y filters opcional. No lo combines con dateRange. |
scope.filters.filterTree | Árbol de filtros de vista guardada opcional. El filter de nivel superior lo reduce. |
filter | Árbol de filtros de Listening estructurado opcional. |
dateRange, time | Campos de ventana comunes opcionales. Usa la ventana de Listening prevista. |
sort | Campo de engagement almacenado opcional, authorFollowers u observedAt. Predeterminado observedAt desc; el orden de observación ascendente se rechaza. |
limit | Entero opcional, 1–100; predeterminado 50. |
cursor | Token de continuación previo opcional. |
Listening requiere autenticación personal y la funcionalidad de Listening de la organización.
Su from de scope es inclusivo y to es exclusivo. El análisis clasificado puede detenerse en un límite acotado.
Lee los metadatos de ventana y scope devueltos. No reportes un conjunto acotado como todos los posts coincidentes.
Fechas, zona horaria y ordenamiento
| Campo | Tipo y comportamiento |
|---|---|
dateRange.from, dateRange.to | Strings obligatorios para una ventana absoluta. Fecha o fecha-hora ISO. El fin no debe preceder al inicio. |
dateRange.relative.unit | Obligatorio day, week, month o year. |
dateRange.relative.count | Obligatorio entero, 1–3660. |
dateRange.relative.calendar | Obligatorio booleano. true comienza en el límite de una unidad de calendario. |
dateRange.relative.includeCurrent | Obligatorio booleano. Incluye el día actual o termina antes de él. |
time.timezone | Zona horaria IANA opcional. Usa por defecto la zona horaria de la organización, luego UTC. |
time.timeOfDay.from, time.timeOfDay.to | Strings HH:mm obligatorios cuando hay una ventana de reloj. Un inicio posterior al fin cruza la medianoche. |
sort.field | Campo de ordenamiento específico de la fuente. Obligatorio en objetos de ordenamiento de registros; opcional en analítica. |
sort.direction | asc o desc opcional. Analítica usa desc por defecto. |
Usa una ventana absoluta o relativa. Las ventanas de consulta resueltas usan un límite UTC to exclusivo.
Los límites de solo fecha representan días de calendario en la zona horaria seleccionada. Lee los límites resueltos en los metadatos del resultado.
El endpoint REST de lista de actions tiene reglas de fecha diferentes; consulta su referencia.
Campos de entrada de analítica
Pasa esta consulta directamente a sift.call("query.analytics.<source>", query).
| Campo | Tipo y comportamiento |
|---|---|
v | Obligatorio literal 1. |
source | Obligatorio fuente de datos compatible. Descubre los IDs de fuente en el esquema y la guía de analítica. |
filter | Árbol estructurado opcional para toda la consulta. |
dateRange, time | Campos de ventana y zona horaria opcionales descritos anteriormente. |
lines | Obligatorio array con al menos una línea medida. |
groupBy | Obligatorio array de dimensiones. Usa un array vacío para un resultado sin agrupación. |
sort | Ordenamiento de resultados opcional. |
limit | Entero positivo opcional; máximo de filas de resultado. |
options | Opciones específicas de la fuente opcionales a continuación. |
Campos de línea medida
| Campo | Tipo y comportamiento |
|---|---|
measure | Obligatorio ID de métrica no vacío. La validez depende de la fuente. |
aggregation | Obligatorio sum, avg, median, p75, p90, p95, p99, count, min, max o percentage. |
label | String de visualización opcional; se repite en los metadatos. |
filter | Árbol opcional. Reduce esta línea dentro del filtro de la consulta. |
customFieldKey | Campo de action numérico registrado opcional. |
sampleCount | Literal rows opcional. Agrega el tamaño de muestra de la línea. |
formula | Línea calculada opcional; reemplaza la agregación simple. |
formula.op | Obligatorio divide, percent_of, subtract o add. |
formula.left, formula.right | Objetos de operando obligatorios. |
Operando measure, aggregation | Obligatorio ID de métrica y agregación. |
Operando filter | Árbol opcional. Reduce el operando dentro del filtro de línea. |
formula.round | Entero opcional. Decimales; omite para evitar redondeo. |
Cada objeto de agrupación tiene field obligatorio y customFieldKey opcional.
La compatibilidad de métricas y dimensiones depende de la fuente. Lee la guía de analítica y el contrato exacto de la operación antes de adivinar IDs.
Opciones de analítica
| Campo | Tipo y comportamiento |
|---|---|
windowKind | community, activity, first_activity o snapshot opcional para poblaciones de Users. |
dateField | Reloj de action opcional del esquema. |
threshold | Umbral numérico opcional para una métrica de umbral. |
asOf | range_end opcional. Lee el estado histórico de la action al final de la ventana. |
comparison | previous_period o previous_year opcional. |
comparisonOutput | paired, delta, percent_change o new_members opcional. |
excludeSystemAgents | Booleano opcional. Excluye agentes del sistema. |
includeAgentAttribution | Booleano opcional. Agrega el agente que realizó el trabajo. |
fillEmpty | Booleano opcional. Rellena con cero los intervalos de tiempo vacíos. |
resultKind | Literal transitions opcional. Devuelve transiciones de estado. |
Encontrar campos y valores
Lee los campos y las métricas de una fuente de datos con sift.spec("query.analytics.<source>"). Devuelve la declaración TypeScript de la consulta, con una línea de comentario por campo de filtro: su nombre, sus operadores y la fuente de lista que tiene sus valores.
Lista los valores de un campo con esa fuente de lista: sift.call("query.search.<list>", input). Las listas son tags, tag_groups, channels, queues, teammates, servers, goals, saved_searches, themes, statuses, platforms, competitors, discord_roles, qa_forms, user_groups, gainsight_values, custom_fields y custom_field_options. Las personas vienen de query.search.users: busque a una persona con una hoja keyword, { filter: { filterType: "keyword", operator: "contains", value: ["<palabras>"] } }.
| Campo | Tipo y comportamiento |
|---|---|
name | Cadena opcional. Conserva las filas cuyo nombre la contiene. |
ids | Arreglo opcional. Devuelve exactamente esas filas. |
budget | Entero opcional. Tokens por página; 4.000 por defecto, como máximo 15.000. |
cursor | Cadena opcional. Pasa el nextCursor anterior sin cambios. |
Cada fila tiene id y name. Pon id en una hoja de filtro; un nombre se rechaza. La etiqueta de un campo personalizado es su nombre de campo: lista los campos con query.search.custom_fields { source } y las opciones de un campo con query.search.custom_field_options { field }.
Campos de búsqueda de creadores
Usa la búsqueda externa de creadores solo cuando el usuario lo solicite. Llama a social.profile.get con sift.call. No es una búsqueda almacenada de Sift.
| Campo de entrada | Tipo y comportamiento |
|---|---|
url | Obligatorio URL pública de perfil o de agregador de enlaces compatible, no vacía. |
includeDemographics | Booleano opcional, predeterminado true. Solicita inferencia de edad y género a partir de la foto. |
| Campo de salida | Significado |
|---|---|
url | URL solicitada. |
demographics | Objeto nullable: ageLow, ageHigh, gender y confidence (0–100) opcionales. Son inferencias, no hechos verificados. |
expandedIdentity | Identidad de agregador nullable con provider, sourceUrl, datos de perfil opcionales y enlaces de plataforma. |
untrustedContentNotice | Recordatorio de tratar el texto público como evidencia. |
expandedIdentity.provider es linktree, linkme, komi, pillar, linkbio o beacons.
Sus campos obligatorios son provider, sourceUrl, verticals (array de strings) y destinations (array).
Los strings opcionales son username, displayName, bio, avatarUrl y email.
Cada destino tiene platform y url string obligatorios, y title string opcional.
Los datos faltantes permanecen faltantes.
Campos de herramientas de app y respuesta
Usa estas herramientas solo cuando el servidor conectado las anuncie. Las vistas de app requieren OAuth personal. La app integrada sigue siendo un prototipo de desarrollo; el texto y los enlaces nativos pueden funcionar sin una vista integrada.
| Herramienta | Campos |
|---|---|
open_inbox | scope opcional: queues (predeterminado) o mine; search recortado opcional de hasta 200 caracteres; cursor opcional; limit entero opcional 1–50, predeterminado 30. |
open_action | actionId no vacío obligatorio. |
open_dashboard | slug, from y to no vacíos obligatorios. |
open_dashboard_evidence | slug, widgetId, from, to, expectedUpdatedAt obligatorios; cursor opcional; limit entero opcional 1–50, predeterminado 20. |
prepare_reply | UUID requestId obligatorio, actionId no vacío, text recortado de 1–24000 caracteres; serverId no vacío opcional; booleano isPublicReply opcional. |
review_reply, send_reply | Solo UUID requestId obligatorio. La confirmación humana proporciona la decisión. |
open_reply, get_reply_request | Solo UUID requestId obligatorio. Lee el estado de preparación y entrega. |
review_handle_reply | UUID requestId obligatorio para la solicitud de revisión del propietario de la cuenta. OAuth personal; sin campo de decisión. |
save_reply_draft | Solo app. actionId obligatorio, expectedRevision (64 caracteres), clientMutationId (8–128 caracteres), text recortado (1–10000 caracteres) y replyAccountId. Guarda una revisión de correo electrónico pendiente; nunca envía. |
expectedUpdatedAt vincula la evidencia a la revisión guardada del dashboard.
expectedRevision vincula un borrador al contexto de respuesta actual. Usa los valores devueltos por la lectura anterior.
clientMutationId es una clave de reintento. Reutilízala solo para el mismo borrador.
serverId selecciona la cuenta de envío. isPublicReply selecciona el modo público o privado.
requestId vincula una respuesta inmutable; un borrador modificado requiere un nuevo UUID.
Campos de Events
Events requiere un cliente moderno, una capacidad de Events anunciada y OAuth personal.
Usa events/list para descubrir el evento action.message_received compatible y su esquema de payload.
Cubre mensajes futuros entrantes de Instagram y Messenger en una action. Excluye el backfill y las respuestas de la marca.
| Método | Campos |
|---|---|
events/list | cursor opcional; omítelo para el catálogo de eventos de una sola página actual. |
events/subscribe | name obligatorio: action.message_received; arguments.actionId obligatorio; delivery.mode obligatorio: webhook; delivery.url y delivery.secret obligatorios; cursor opcional: null; entero positivo o null ttlMs opcional. |
events/unsubscribe | UUID id obligatorio de la suscripción. |
El callback debe usar HTTPS y pasar la verificación. El secret usa whsec_ con 24–64 bytes de clave codificados en base64.
Guárdalo en un almacén de secrets. La suscripción tiene una vida útil finita; conserva su expiración devuelta.
Los campos del payload son eventId (UUID), name, timestamp (fecha-hora ISO), data.actionId, data.recordId, data.url y cursor (null).
Verifica los encabezados de webhook firmados antes de procesar. Lee la action para obtener evidencia actual; un evento no es permiso para enviar.
Campos de resultado y descubrimiento de esquema
Dentro de execute, sift.call devuelve el resultado de la operación. Si la operación falla, lanza un Error cuyo mensaje indica el code, el message y los campos con error.
Un resultado que requiere aprobación no contiene una escritura completada.
// La declaración TypeScript de la operación: sus tipos de entrada y de salida.
return await sift.spec("query.analytics.actions")sift.spec(id) devuelve una operación como declaración TypeScript: declare function call(id, input: XInput): Promise<XOutput>, con la descripción de cada campo como comentario. La entrada y la salida son tipos con nombre en el mismo texto. Un tipo que se repite, como el árbol de filtros, se escribe una vez y se usa por su nombre. La declaración se genera del mismo esquema con el que valida el servidor, así que sigue al día cuando el servidor cambia. Los clientes HTTP leen el mismo contrato como JSON Schema en OpenAPI.
sift.spec() sin id devuelve el índice del catálogo: id, productFamily, aliases opcional, summary, description, domain, effect, access, ui, url, discovery, examples opcional, inputSchema y outputSchema. Fíltralo en código y devuelve solo lo que necesitas.
Salida de búsqueda
Lee items y nextCursor. Un cursor null termina la lista. La búsqueda no devuelve un total.
Los metadatos de fuente varían; inspecciona el esquema de salida. Una primera página vacía incluye emptyReason.
Las filas de action pueden incluir id, actionId, threadId, userId, username, author, engagement, platform, operationStatus, channelId, channel, summary, description, matchedText, easyId, easyIdNumber, link y url.
Usa actionId para un caso, link para su página en Sift y url para evidencia pública de la fuente.
Los campos pueden ser null o estar ausentes. Las proyecciones agregan columnas específicas de la fuente; no asumas que todas las filas contienen todos los campos.
Salida de analítica
| Campo | Significado |
|---|---|
rows | Valores de agrupación y valores de líneas medidas. |
_filter de fila | Selección de registros detrás del grupo. Combínala con los filtros de consulta y línea para lecturas de evidencia. |
_window de fila | Ventana opcional para un intervalo de reloj de action. |
meta.queryJSON | Consulta exacta que se ejecutó, incluyendo scope resuelto y valores predeterminados. |
meta.source | Fuente resuelta. |
meta.dateField | Reloj de action resuelto opcional. |
meta.dateRange | Ventana from / to resuelta opcional; to es exclusivo. |
meta.appliedDefaults | Array de id y summary para los valores predeterminados aplicados. |
meta.truncated | Si existen más filas de las devueltas. |
meta.lines | Por línea: key, label, measure, aggregation, sampleCountKey y windowKind opcionales. |
meta.units | Unidades opcionales. Lee antes de mostrar duraciones o puntuaciones. |
comparison | dateRange y rows del período anterior opcionales. |
Lee los valores por meta.lines[].key, no por un nombre de columna adivinado.
Las herramientas de app devuelven su vista en structuredContent. Conserva la URL nativa y los campos de vista versionados.
Usa el esquema de salida conectado para una proyección completa de la app; no trates un resultado de app como un envelope de búsqueda.
Consejos
- Lee los esquemas antes de nuevas operaciones. No inferas campos a partir de nombres de herramientas.
- Usa IDs reales devueltos. Las etiquetas y nombres de usuario no reemplazan todos los campos de ID.
- Conserva el scope de paginación y los enlaces de evidencia devueltos.
- Mantén las credenciales fuera de
codey otros argumentos de herramientas.
Consulta el Diccionario de campos de registros para entender pmid, prid, otras claves cortas y los campos anidados de los resultados.