Skip to main content
Glama

Servidor de acoplamiento MCP

Un servidor MCP que proporciona capacidades de procesamiento de documentos utilizando la biblioteca Docling.

Instalación

Puedes instalar el paquete usando pip:

pip install -e .

Related MCP server: MarkItDown MCP Server

Uso

Inicie el servidor utilizando stdio (predeterminado) o el transporte SSE:

# Using stdio transport (default) mcp-server-lls # Using SSE transport on custom port mcp-server-lls --transport sse --port 8000

Si está usando uv, puede ejecutar el servidor directamente sin instalar:

# Using stdio transport (default) uv run mcp-server-lls # Using SSE transport on custom port uv run mcp-server-lls --transport sse --port 8000

Herramientas disponibles

El servidor expone las siguientes herramientas:

  1. convert_document : Convierte un documento desde una URL o ruta local al formato Markdown

    • source : URL o ruta del archivo local del documento (obligatorio)

    • enable_ocr : si se debe habilitar el OCR para documentos escaneados (opcional, valor predeterminado: falso)

    • ocr_language : lista de códigos de idioma para OCR, p. ej., ["en", "fr"] (opcional)

  2. convert_document_with_images : Convertir un documento y extraer imágenes incrustadas

    • source : URL o ruta del archivo local del documento (obligatorio)

    • enable_ocr : si se debe habilitar el OCR para documentos escaneados (opcional, valor predeterminado: falso)

    • ocr_language : Lista de códigos de idioma para OCR (opcional)

  3. extract_tables : Extrae tablas de un documento como datos estructurados

    • source : URL o ruta del archivo local del documento (obligatorio)

  4. convert_batch : Procesar múltiples documentos en modo por lotes

    • sources : Lista de URL o rutas de archivos a documentos (obligatorio)

    • enable_ocr : si se debe habilitar el OCR para documentos escaneados (opcional, valor predeterminado: falso)

    • ocr_language : Lista de códigos de idioma para OCR (opcional)

  5. qna_from_document : Crea un documento de preguntas y respuestas desde una URL o ruta local al formato YAML

    • source : URL o ruta del archivo local del documento (obligatorio)

    • no_of_qnas : Número de preguntas y respuestas esperadas (opcional, predeterminado: 5)

    • Nota : Esta herramienta requiere que las credenciales de IBM Watson X se configuren como variables de entorno:

      • WATSONX_PROJECT_ID : Su ID de proyecto Watson X

      • WATSONX_APIKEY : Su clave de API de IBM Cloud

      • WATSONX_URL : la URL de la API Watson X (predeterminada: https://us-south.ml.cloud.ibm.com )

  6. get_system_info : Obtener información sobre la configuración del sistema y el estado de la aceleración

Ejemplo con Llama Stack

https://github.com/user-attachments/assets/8ad34e50-cbf7-4ec8-aedd-71c42a5de0a1

Puede usar este servidor con Llama Stack para proporcionar capacidades de procesamiento de documentos a sus aplicaciones LLM. Asegúrese de tener un servidor Llama Stack en ejecución y luego configure su INFERENCE_MODEL

from llama_stack_client.lib.agents.agent import Agent from llama_stack_client.lib.agents.event_logger import EventLogger from llama_stack_client.types.agent_create_params import AgentConfig from llama_stack_client.types.shared_params.url import URL from llama_stack_client import LlamaStackClient import os # Set your model ID model_id = os.environ["INFERENCE_MODEL"] client = LlamaStackClient( base_url=f"http://localhost:{os.environ.get('LLAMA_STACK_PORT', '8080')}" ) # Register MCP tools client.toolgroups.register( toolgroup_id="mcp::docling", provider_id="model-context-protocol", mcp_endpoint=URL(uri="http://0.0.0.0:8000/sse")) # Define an agent with MCP toolgroup agent_config = AgentConfig( model=model_id, instructions="""You are a helpful assistant with access to tools to manipulate documents. Always use the appropriate tool when asked to process documents.""", toolgroups=["mcp::docling"], tool_choice="auto", max_tool_calls=3, ) # Create the agent agent = Agent(client, agent_config) # Create a session session_id = agent.create_session("test-session") def _summary_and_qna(source: str): # Define the prompt run_turn(f"Please convert the document at {source} to markdown and summarize its content.") run_turn(f"Please generate a Q&A document with 3 items for source at {source} and display it in YAML format.") def _run_turn(prompt): # Create a turn response = agent.create_turn( messages=[ { "role": "user", "content": prompt, } ], session_id=session_id, ) # Log the response for log in EventLogger().log(response): log.print() _summary_and_qna('https://arxiv.org/pdf/2004.07606')

Almacenamiento en caché

El servidor almacena en caché los documentos procesados en ~/.cache/mcp-docling/ para mejorar el rendimiento de las solicitudes repetidas.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zanetworker/mcp-docling'

If you have feedback or need assistance with the MCP directory API, please join our Discord server