Built-in Office document tools (OfficeCLI integration)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 15/100
Línea de trabajo
This is a design proposal, so start by reading how the existing pieces fit: LocalAIAssistantHolder and metadata.localai_assistant, DisableMutating in pkg/mcp/localaitools, and the MCP executor functions NewToolExecutor, DiscoverMCPTools, ExecuteTool and ExecuteMCPToolCallRemote. Done means maintainers agree on the modality shape, lifecycle, and sandboxing, not that code exists yet. Do not start an implementation until that is settled in the thread.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is your feature request related to a problem?
LocalAI models and agents cannot create or edit Office documents (.docx/.xlsx/.pptx) locally. Users must manually configure an external MCP server per model or per agent.
Describe the solution
I don't know if anybody thinked about before, but my proposal is to integrate OfficeCLI (Apache 2.0, single self-contained binary, built-in MCP stdio server + HTML/PNG rendering engine) as an optional built-in tool surface, following the existing LocalAI Assistant pattern:
- In-process / managed MCP surface — analogous to
LocalAIAssistantHolder+metadata.localai_assistant: anofficemodality (e.g.metadata.office_documentsor aDisableOfficeToolsapp flag) that registers OfficeCLI's MCP tools for any model without per-model YAML. - Lifecycle management — LocalAI provisions/launches the
officeclistdio server itself (auto-download binary or bundled), instead of requiring users to hand-write anmcp.stdioblock. - Agent integration — expose the same surface to the Agent pool as a built-in action / default agent-scoped MCP server, respecting
allowed_tools,excluded_toolsand a read-only mode (mirroringDisableMutatinginpkg/mcp/localaitools). - Skill prompt injection — reuse the MCP prompt-injection path to surface OfficeCLI's SKILL.md guidance to the model when the modality is active.
Why it fits
- The existing MCP executor (
NewToolExecutor,DiscoverMCPTools,ExecuteTool) already supports stdio servers and the server-side tool loop across /v1/chat/completions, Anthropic Messages, Open Responses (stream + background). - OfficeCLI's MCP tool has a single
commandstring param — trivially compatible with the genericCallToolpath. - Distributed mode: the tool would execute on agent workers via
ExecuteMCPToolCallRemote, so the binary only needs to exist on worker nodes.
Workaround today
Manually adding OfficeCLI as mcp.stdio in the model YAML or as an agent-scoped stdio server — but this requires installing the binary yourself and repeating the config per model/agent.
Security considerations
- File-system access should be sandboxed/scoped (configurable working dir).
- Read-only mode (view/get/query/validate only) for untrusted contexts.
- Disabled by default, opt-in flag — same posture as the LocalAI Assistant.
Other considerations
Integrate office features is so important to a professional and enterprise use of LocalAI.
- Lenguaje dominante
- Go
- Estrellas
- 49.8k
- Forks
- 4.5k
- Merge medio
- 18 h 28 min
- PR fusionados (30 d)
- 347
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de mudler/LocalAI
-
[Bug] Qwen3.8-27b Uncensored Fails to Download due to 404Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abiertobug unconfirmed
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Realtime: ASR EOU language tags leak into the LLM conversation (unintended reply-language switching)Posiblemente ocupada @nexxtmobile la tomó hace 8 días. Abiertoarea/api bug unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Open Responses API doesn't accept "output_text" as an input ItemPosiblemente ocupada @localai-org-maint-bot la tomó hace 27 días. Abiertobug unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
mudler/LocalAI#12337 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Gallery model audio-cpp-sortformer-diarization fails to install: SHA mismatch, reproducible across retriesQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
mudler/LocalAI#11995 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Agent pool Postgres DSN is logged in cleartext, including the password, while the auth DSN is redactedPosiblemente ocupada @localai-org-maint-bot la tomó hace 43 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
mudler/LocalAI#11991 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de mudler/LocalAI
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
blinklabs-io/dingo#5636 ·
Los mantenedores suelen responder en 1 día
-
automated-analysis bug cookie safe-outputs tool-improvement workflow-issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
github/gh-aw#71952 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
JetBrains/youtrack-cli#130 ·
Los mantenedores suelen responder en 1 día
-
Cloudflare Pages secret sync throws TypeError when deployment_configs[environment] is undefinedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Infisical/infisical#8892 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
windvane requests one more page than it needsPosiblemente ocupada @TassioSales la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
projectdiscovery/subfinder#1979 ·
Los mantenedores suelen responder en 3 días