Un servidor Model Context Protocol (MCP) que expone metadatos de workspaces, review sets y búsquedas guardadas de Relativity como herramientas dentro de una conversación con Claude. Los gerentes de legal-ops e ingenieros de e-discovery pueden pedirle a Claude que liste los workspaces activos, obtenga los recuentos de documentos de un review set o resuma la definición de una búsqueda guardada, sin necesidad de abrir la interfaz de Relativity ni escribir una consulta personalizada. El scaffold está en apps/web/public/artifacts/mcp-server-relativity-ediscovery/ y es de solo lectura por diseño: no se recuperan documentos, no se exponen decisiones de codificación por documento y no hay operaciones de escritura registradas.
Cuándo usarlo
Recurre a este servidor cuando tu equipo usa Relativity — ya sea RelativityOne en la nube o Relativity Server on-prem — y puedes identificar tres o más preguntas operacionales recurrentes que requieren navegar por la interfaz de Relativity varias veces a la semana. Ejemplos típicos: “¿Cuántos documentos hay en el review set del asunto Alpha y qué porcentaje ya se revisó?”, “¿Qué workspaces están activos actualmente y cuáles son sus recuentos de documentos?”, “Muéstrame las búsquedas guardadas en el workspace del asunto Bravo y quiénes son sus propietarios.” Esas preguntas son navegación operacional; ninguna requiere leer un solo documento ni ver una sola decisión de codificación. Son exactamente el tipo de trabajo que se comprime bien en una conversación con Claude.
El argumento económico es concreto. Un equipo de e-discovery que gestiona entre 8 y 12 asuntos activos simultáneamente dedica una parte significativa de cada semana a obtener números de estado de Relativity: abriendo dashboards de workspaces, alternando entre vistas de asuntos, verificando el progreso de los review sets, confirmando definiciones de búsquedas guardadas para próximas producciones. Una estimación conservadora (basada en la estructura de la tarea, no en un estudio controlado) es de 45 minutos por día para un gerente de legal-ops a tiempo completo a esta escala. Comprimir esas búsquedas en conversaciones de 30 segundos con Claude reduce la carga operacional a menos de 5 minutos diarios. El tiempo recuperado se destina a trabajo de coordinación sustantivo: comunicar el progreso de la revisión a abogados externos, ajustar asignaciones en los review sets y preparar calendarios de producción.
Este servidor también es útil para la incorporación de nuevos integrantes. Cuando alguien nuevo se une a un equipo de asunto, pedirle a Claude que liste las búsquedas guardadas y los review sets del workspace es más rápido que programar una demostración en la interfaz de Relativity. El retrato de metadatos de un asunto — cuántos workspaces hay, qué review sets existen, cuáles son las búsquedas clave — queda inmediatamente accesible en una conversación con Claude.
Cuándo NO usarlo
Omítelo si tu cantidad de asuntos es baja — menos de aproximadamente cuatro asuntos activos a la vez — o si las consultas de metadatos operacionales de tu equipo son menos de unas quince por semana. El costo de configuración incluye: aprovisionamiento de credenciales con tu administrador de Relativity, una revisión de la postura de privilegio con el abogado interno, una revisión de seguridad del radio de acción de la cuenta de servicio y el ciclo de validación de sandbox a producción descrito en el paso de verificación de funcionamiento. Ese costo no se amortiza con bajo volumen de consultas. Usa la interfaz de Relativity directamente; reconsidera cuando el número de asuntos o la frecuencia de consultas aumente.
Omítelo si tu despliegue está regido por una orden de protección que restringe cómo se pueden transmitir o procesar los datos del caso. Los nombres de workspaces, las asignaciones de asuntos y los nombres de review sets en Relativity pueden estar sujetos a obligaciones de confidencialidad. Antes de enviar esos metadatos a través de una sesión de Claude, confirma con el abogado correspondiente que el despliegue es compatible con las órdenes de protección aplicables y cualquier protocolo de manejo de datos que tu firma o cliente haya adoptado.
Omítelo si tu instancia de Relativity es anterior a Relativity Server 2022 o si tu tenant no ha validado las rutas base de la API REST. El scaffold apunta a las convenciones de la API REST documentadas para RelativityOne (2024–2025); las rutas de versiones on-prem más antiguas difieren. Ejecutarlo contra una ruta base no validada produce errores 404 o respuestas malformadas que aparecen en Claude como “no se encontraron datos” — exactamente el modo de fallo que erosiona la confianza en las herramientas legales mediadas por MCP. Confirma las rutas con tu administrador de Relativity antes del primer uso.
Omítelo si aún no tienes una política de IA que cubra el acceso de Claude a los metadatos de e-discovery. La política debe abordar: qué asuntos están dentro del alcance, quién puede consultar vía MCP y cómo se registran las sesiones de Claude. Establece la política primero.
Configuración
La configuración completa está documentada en apps/web/public/artifacts/mcp-server-relativity-ediscovery/README.md. Resumen:
- Clona el bundle en un repositorio privado. Ejecuta
pip install -e .dentro de un entorno virtual de Python 3.11+. - Aprovisiona credenciales. Para uso en producción, crea un cliente OAuth2 en Relativity (Home → Authentication → OAuth2 Client Manager → New; Flow Grant Type: Client Credentials; Context User: una cuenta de servicio). Copia el client ID y el client secret. Para uso exclusivo de desarrollo, se admite autenticación Basic (usuario/contraseña), pero no se recomienda para entornos compartidos.
- Configura las variables de entorno:
RELATIVITY_HOST(la URL de tu tenant, por ejemplohttps://your-tenant.relativity.one),RELATIVITY_AUTH_MODE(oauth2obasic) y las variables de credenciales correspondientes. - Registra el servidor con Claude Desktop mediante el fragmento JSON del README. El servidor registra cinco herramientas bajo
relativity-ediscovery. - Realiza la verificación de funcionamiento: pídele a Claude que liste tus workspaces. Confirma que recibes nombres de workspaces y ArtifactIDs sin texto de documentos. Pide las búsquedas guardadas de un workspace específico. Confirma que la respuesta contiene solo nombres de búsquedas y propietarios. Si aparece algún contenido de documento, detén el proceso e investiga antes de ampliar el acceso.
La cuenta de servicio debe tener acceso de lectura a los workspaces previstos. Aprovisiónala con el alcance más reducido que el despliegue necesite — no como administrador de instancia.
Qué hace
El scaffold registra cinco herramientas, todas de solo lectura:
list_workspaces — llama al endpoint del Workspace Manager REST (GET /Relativity.Rest/api/relativity-environment/v1/workspace/) y devuelve una lista paginada de workspaces accesibles con nombres, ArtifactIDs, estados y asignaciones de asuntos. El ArtifactID es la clave utilizada en todas las llamadas de herramientas posteriores para limitar las consultas a un workspace específico.
get_workspace_summary — llama al helper de resumen del Workspace Manager (/summary) para un único workspace y devuelve el recuento de documentos y el tamaño total de archivos. La elección técnica aquí es exponer el endpoint de resumen en lugar de la lectura completa del workspace: el endpoint de resumen devuelve los dos números que los gerentes de legal-ops preguntan con mayor frecuencia, sin devolver campos de configuración del workspace irrelevantes para las consultas de estado operacional.
get_review_set_metadata — consulta el Object Manager (POST /Relativity.Rest/api/Relativity.ObjectManager/v1/workspace/{id}/object/read) para un objeto de review set específico. Los review sets en Relativity son Relativity Dynamic Objects (RDOs) cuyo ArtifactTypeID se asigna cuando se instala la aplicación de revisión y no es fijo entre instancias (a diferencia de los documentos, que siempre son tipo 10). El scaffold resuelve el ArtifactTypeID consultando el registro de tipos de objetos en la primera llamada y luego lo almacena en caché para la sesión. La herramienta devuelve metadatos a nivel de review set — nombre, estado, recuento total de documentos, recuento de documentos revisados, asignaciones de revisores — y explícitamente no expone los valores de codificación por documento. La respuesta incluye un campo _note que le recuerda a Claude que los datos de codificación por documento están intencionalmente ausentes.
get_saved_search_summary — llama al Keyword Search Manager (POST /Relativity.Rest/api/Relativity.Services.Search.ISearchModule/Keyword Search Manager/ReadSingleAsync) para devolver el DTO de definición de búsqueda guardada: nombre, condiciones, lista de campos y propietario. Las condiciones se devuelven a la sesión de Claude para que los abogados puedan confirmar qué busca realmente una búsqueda guardada — una necesidad operacional habitual antes de depender de una búsqueda para un lote de producción. Las condiciones nunca se escriben en los registros (el helper log_invocation() en server.py las omite) porque las condiciones de una búsqueda guardada pueden revelar la estrategia de revisión legal.
list_saved_searches — llama al endpoint de consulta del Keyword Search Manager para devolver una lista paginada de búsquedas guardadas en un workspace. La respuesta se reduce a nombres, ArtifactIDs, propietarios y fechas de modificación únicamente; las condiciones no se incluyen en la respuesta de lista (solo en la llamada individual a get_saved_search_summary, para que el abogado las solicite explícitamente).
El dispatch en src/relativity_ediscovery_mcp/server.py no contiene operaciones de escritura. No existe ninguna ruta create_*, update_*, delete_*, code_document ni de activación de producción. Agregar una requiere un cambio de código explícito.
Realidad de costos
Tres partidas, todas reales:
Suscripción a Claude. Claude Desktop o Claude Code con MCP habilitado. Pro a $20/usuario/mes o Team a $25–30/usuario/mes cubre la mayoría de las configuraciones de equipos de legal-ops. Un equipo que ejecuta 200 consultas de metadatos operacionales por semana en 10 asuntos activos se mantiene cómodamente dentro de esos niveles; los despliegues de muy alto volumen (por ejemplo, informes automáticos de estado de asuntos cada hora) pueden justificar Max.
Alojamiento del servidor. Proceso Python auto-alojado. Ejecútalo localmente por usuario para desarrollo. Para uso compartido en equipo, una pequeña VM interna (1 vCPU / 1 GB RAM es suficiente para menos de 200 llamadas por día) detrás de la VPN de tu firma cuesta aproximadamente $5–15/mes en un proveedor de nube, o sin costo incremental si ya tienes infraestructura interna.
Cuota de la API REST de Relativity. Relativity limita la tasa de clientes REST por tenant, con límites que varían según la versión de la instancia y el nivel de suscripción. Un equipo que ejecuta 200 consultas por semana con el patrón que genera este servidor (lecturas de objetos individuales, no exportaciones masivas de documentos) se mantiene bien dentro de las cuotas predeterminadas. Una automatización que sondea todos los workspaces cada hora en una instancia grande alcanzará los límites de tasa; la lista de TODO en el README señala los reintentos con backoff exponencial como una tarea previa a la producción.
La partida no presupuestada es el tiempo de abogados y administradores. Planifica entre una y tres horas de revisión por parte del abogado interno de la postura de privilegio antes de cualquier despliegue en producción, entre una y dos horas con tu administrador de Relativity para validar las rutas de la API y aprovisionar la cuenta de servicio con el alcance correcto, y una revisión trimestral recurrente a medida que Relativity publica actualizaciones que pueden cambiar la superficie de la API.
Modos de fallo
Expiración del token de autenticación durante una sesión prolongada. El scaffold obtiene un token OAuth2 una vez al iniciarse. Los tokens expiran en aproximadamente una hora. Si una sesión de Claude dura más de una hora y el token expira a mitad de la conversación, las llamadas posteriores a las herramientas devuelven errores 401 que aparecen en la conversación de Claude como “Relativity devolvió un error.” Guard: el TODO #2 del README señala la renovación del token OAuth2 como una tarea requerida antes del uso en producción. Hasta entonces, trata esto como una postura solo para desarrollo en sesiones de menos de una hora.
Fallo en la resolución del ArtifactTypeID para review sets. Los review sets son RDOs cuyo ArtifactTypeID no es fijo; el scaffold lo resuelve consultando el registro de tipos de objetos por nombre en la primera llamada. Si la aplicación de revisión no está instalada en el workspace de destino, o si el nombre del tipo de objeto difiere de “Review Set” en la configuración de tu tenant, la búsqueda falla con un error descriptivo. Guard: la función resolve_review_set_artifact_type_id() en server.py genera un mensaje de error claro que nombra el tipo de objeto que buscó, por lo que el fallo es diagnosticable. Valida el nombre del tipo de objeto con tu administrador de Relativity antes del despliegue en producción.
Divulgación del nombre del workspace o del asunto bajo una orden de protección. Los nombres de workspaces en Relativity típicamente incluyen nombres de asuntos. Enviarlos a través de una sesión de Claude puede implicar obligaciones de confidencialidad si el asunto está regido por una orden de protección que restringe la transmisión de metadatos del caso. Guard: antes de desplegar en cualquier asunto activo, confirma con el abogado correspondiente que el despliegue es compatible con las órdenes de protección aplicables. Este es el único modo de fallo sin una medida técnica de protección — requiere un paso de revisión legal. El README lo establece explícitamente en la sección del modelo de seguridad.
Registro de condiciones de búsquedas guardadas. Una instrumentación descuidada del servidor registraría los parámetros de consulta, incluidas las condiciones de búsqueda, lo que podría crear un registro descubrible de la estrategia de revisión. Guard: el helper log_invocation() en server.py solo acepta el nombre de la herramienta y el recuento de resultados; la cadena de condición de búsqueda nunca se pasa al registrador. Restaurar el registro de condiciones requiere un cambio de código revisado contra la política de privilegio.
Los nombres de campos de respuesta difieren de tu versión de Relativity. Los nombres de campos en get_review_set_metadata ("Total Documents", "Reviewed Documents", "Reviewers") siguen las convenciones de nomenclatura de campos comunes en RelativityOne, pero son personalizables y tu tenant puede usar nombres diferentes. Si la herramienta devuelve valores de campo vacíos, los nombres de campos son incorrectos para tu tenant. Guard: valida los nombres de campos con la configuración de campos de tu administrador de Relativity antes de depender de la salida de la herramienta.
Versus las alternativas
Los dashboards y widgets nativos de Relativity. Relativity incluye dashboards de estado de asuntos dentro de cada workspace. Elige esos si la respuesta permanece dentro de Relativity y la persona que pregunta tiene un inicio de sesión en Relativity. Elige este servidor MCP cuando la respuesta necesita llegar a una conversación de Claude que también abarca contexto de email, notas de gestión de asuntos, comunicaciones con abogados externos u otras herramientas en tu stack de legal-ops — es decir, cuando el valor es el razonamiento de Claude a través de múltiples fuentes, no solo la navegación en Relativity.
Reportes personalizados directamente vía la API REST de Relativity. Cualquier ingeniero puede escribir un script de Python que sondee la API REST de Relativity y envíe un informe de estado por email o Slack. Ese enfoque es adecuado para informes programados en formatos fijos. Elige el servidor MCP cuando las consultas son ad hoc — cuando el abogado no sabe de antemano qué necesitará preguntar, o cuando la pregunta surge de una conversación en lugar de una plantilla de informe fija. El enfoque MCP maneja la variabilidad de consultas; un script fijo no lo hace.
Statu quo: abogados y personal de legal-ops navegan por la interfaz de Relativity. Esta es la línea base honesta. El servidor MCP gana solo cuando el número de asuntos y la frecuencia de consultas son lo suficientemente altos como para amortizar el costo de configuración. Con menos de aproximadamente cuatro asuntos activos y quince consultas operacionales por semana, el statu quo es más rápido y conlleva menos riesgos.
Stack
Servidor Python MCP auto-alojado (mcp SDK oficial, httpx, pydantic) que habla con la API REST de Relativity en el backend; Claude Desktop o Code en el front end. El código fuente de server.py está en apps/web/public/artifacts/mcp-server-relativity-ediscovery/src/relativity_ediscovery_mcp/server.py. El bundle completo con instrucciones de instalación, referencia de variables de entorno, JSON de registro y la lista numerada de TODO para la preparación de producción está en apps/web/public/artifacts/mcp-server-relativity-ediscovery/README.md.