Manual › Slima MCP › Herramientas que se comportan distinto en ciertos archivos
Herramientas que se comportan distinto en ciertos archivos
Última actualización 9/09/2026 · 6 min de lectura
En una línea: las herramientas que se comportan distinto en ciertos archivos o ciertos libros, y qué hacer con cada diferencia.
Qué resuelve
La mayoría de las herramientas de MCP tratan todos los archivos igual. Las de abajo, no. Ninguna da error: simplemente devuelven algo que no esperabas, y un éxito inesperado es mucho más difícil de detectar que un fallo claro.
read_file: dos tipos de archivo vuelven cambiados
Los mapas de relaciones .map vuelven como JSON en crudo: ids de nodo, coordenadas en píxeles, listas de miembros de grupo. Técnicamente correcto, en la práctica inservible. Usa view_relationship_map, que devuelve una imagen más un resumen con todos los personajes y todas las relaciones; mira Dejar que una IA vea un mapa de relaciones.
Los mapas del mundo .geomap vuelven con sus tres rejillas de terreno sustituidas por una nota. Eso no es un truncamiento, es deliberado: el terreno está codificado para la máquina, no hay nada que leer ahí, y las operaciones que lo modifican trabajan en celdas de rejilla.
search_content: lo que encuentra depende de la edad del libro
En un libro 4.0 se busca en todos los archivos, incluido el JSON en crudo de los estructurados. Así que una palabra corriente como name o title puede volver convertida en pura lista de nombres de campo. Pasa file_types: ["md"] cuando quieras solo prosa.
En un libro antiguo de Script Studio funciona al contrario: *.character, *.scene, *.storyline, *.note, *.location y los *.json que hay bajo .script_studio/ quedan excluidos por defecto, porque su JSON en crudo es ruido en una búsqueda de texto. Pasa include_structured: true para incluirlos.
semantic_search: solo ve lo que está en un commit
La búsqueda semántica indexa el contenido del último commit del libro. Un párrafo que el autor acaba de teclear en la app y todavía no forma parte de un commit no está ahí.
Un libro grande que nunca se ha indexado pasa el trabajo a una construcción en segundo plano, y esa búsqueda vuelve vacía: «todavía no está construido», no «no hay nada». Búscalo otra vez al rato. Los detalles completos, en Búsqueda semántica y búsqueda de texto.
analyze_chapter: apúntala a prosa, no a un archivo estructurado
Los libros antiguos de Script Studio no se admiten en absoluto. La llamada se rechaza de plano, con un mensaje que te remite a las funciones de análisis de la propia app.
En un libro 4.0, esto queda de tu lado. Nada te impide poner file_path sobre un .script o un .beats, y hacerlo equivale a pedirle a un lector que te lea en voz alta un documento JSON. Va a obedecer, y el informe va a salir raro. Apunta el Lector Beta IA a archivos de manuscrito .md.
Si el informe no termina dentro de la ventana de espera, la respuesta te entrega el token de ese test. No vuelvas a llamar a analyze_chapter: eso arranca un segundo informe y se cobra aparte. Recoge el primero con get_reader_test y ese token.
get_writing_stats: cuatro tipos cuentan siempre cero
.map, .beats, .timeline y .geomap tienen un recuento de palabras de cero por contrato; ninguno es prosa escrita por el autor. .script es lo contrario: cuenta las palabras que hay dentro de sus escenas y alimenta el recuento diario y la racha.
Así que ordenarle una cronología a un autor no deja progreso falso en sus estadísticas. Escribirle un episodio, sí.
create_file: en las cinco extensiones estructuradas, tu contenido se ignora
El servidor escribe un esqueleto vacío, el nombre del archivo pasa a ser el nombre del documento y la respuesta dice con todas las letras que tu contenido fue reemplazado. Lo que pensabas poner dentro entra por lotes de update_*; mira Herramientas de edición estructurada.
delete_file: una carpeta con cosas dentro hay que decirla en voz alta
Borrar una carpeta que todavía tiene contenido se rechaza por defecto (FOLDER_NOT_EMPTY). Si de verdad quieres el subárbol completo, envíalo otra vez con recursive: true.
La protección existe por un accidente real: borrar solo la fila de la carpeta desparrama todos los archivos que había debajo a la raíz del libro, y el servidor responde 200.
get_chapter y read_file: usa la segunda cuando ya sabes la ruta
get_chapter acepta un nombre de archivo suelto (Capítulo 01 - La copista.md) o una ruta parcial, y cuando no acierta te enumera los archivos que sí existen. El precio son consultas extra.
Una vez que la ruta está clara, read_file hace el mismo trabajo de forma más directa.
Relacionado
Abre la app y hazlo con tu propio libro. Gratis para empezar, sin tarjeta de crédito.