MCP Docling Server
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 8000Si 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 8000Herramientas disponibles
El servidor expone las siguientes herramientas:
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)
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)
extract_tables : Extrae tablas de un documento como datos estructurados
source: URL o ruta del archivo local del documento (obligatorio)
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)
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 XWATSONX_APIKEY: Su clave de API de IBM CloudWATSONX_URL: la URL de la API Watson X (predeterminada: https://us-south.ml.cloud.ibm.com )
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.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
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