Spaces:
Sleeping
Sleeping
| # Servidor Gradio MCP para leer y crear archivos Word | |
| # Requiere: gradio[mcp], python-docx | |
| import gradio as gr | |
| from docx import Document | |
| import os | |
| def leer_word(ruta): | |
| if not os.path.exists(ruta): | |
| return f"Archivo no encontrado: {ruta}" | |
| try: | |
| doc = Document(ruta) | |
| texto = "\n".join([p.text for p in doc.paragraphs]) | |
| return texto | |
| except Exception as e: | |
| return f"Error al leer el archivo: {e}" | |
| def crear_word(ruta, contenido): | |
| try: | |
| doc = Document() | |
| for linea in contenido.split("\n"): | |
| doc.add_paragraph(linea) | |
| doc.save(ruta) | |
| return f"Archivo creado en: {ruta}" | |
| except Exception as e: | |
| return f"Error al crear el archivo: {e}" | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# Servidor Gradio MCP - Word Reader/Writer") | |
| with gr.Tab('Intro'): | |
| gr.Markdown("""## MCP Word Tools 🚀 | |
| This Gradio MCP server exposes Word document utilities to LLM copilots via Model Context Protocol. | |
| ### 🧰 Tools | |
| - read_word(path) → Read .docx preserving paragraph breaks. | |
| - create_word(path, content) → Create / overwrite a .docx from text lines. | |
| ### ⚙️ Usage (Prompt Examples) | |
| 1. Read & summarize: | |
| Use read_word on C:\\Docs\\report.docx, summarize to 5 bullet points, then create_word to C:\\Docs\\report_summary.docx | |
| 2. Translate: | |
| Read C:\\Docs\\notes.docx, translate to Spanish, write C:\\Docs\\notes_es.docx | |
| 3. Generate: | |
| create_word to C:\\Docs\\plan.docx with a 5-day Tokyo itinerary. | |
| ### 🔐 Security Tips | |
| - Limit allowed_directories in your MCP client config. | |
| - Avoid sensitive / personal data in remote sessions. | |
| - Paths overwrite existing files without asking. | |
| ### 🧪 Troubleshooting | |
| File not found → Check path & permissions | |
| Empty output → Document has empty paragraphs | |
| Corrupt file → Re-open & re-save in Word | |
| ### 📡 Remote Endpoint | |
| https://mcp-1st-birthday-mcp-docx-tools.hf.space/gradio_api/mcp/ | |
| ### 🔗 LinkedIn Showcase | |
| Project demo post: https://www.linkedin.com/posts/oscar-felipe-gonz%C3%A1lez-gonz%C3%A1lez-019971387_mcp-artificialintelligence-hackathon-activity-7400155174138245121-DKiX | |
| ### 📦 Stack | |
| Python · Gradio (mcp_server) · python-docx · MCP | |
| ### 📖 License | |
| Apache 2.0 | |
| ❤️ Hackathon Edition""") | |
| with gr.Tab("Leer Word"): | |
| ruta_lectura = gr.Textbox(label="Ruta local del archivo Word a leer") | |
| salida_lectura = gr.Textbox(label="Contenido del archivo Word", lines=10) | |
| btn_leer = gr.Button("Leer archivo") | |
| btn_leer.click(leer_word, inputs=[ruta_lectura], outputs=[salida_lectura]) | |
| with gr.Tab("Crear Word"): | |
| ruta_creacion = gr.Textbox(label="Ruta local para guardar el archivo Word") | |
| contenido_creacion = gr.Textbox(label="Contenido para el archivo Word", lines=10) | |
| salida_creacion = gr.Textbox(label="Resultado de la creación") | |
| btn_crear = gr.Button("Crear archivo") | |
| btn_crear.click(crear_word, inputs=[ruta_creacion, contenido_creacion], outputs=[salida_creacion]) | |
| demo.launch(mcp_server=True) | |