LlamaIndex MCP demos
Exponer los servicios de LlamaCloud como herramientas MCP para construir y gestionar aplicaciones LLM.
Documentación
[!CAUTION] Este repositorio ha sido archivado y ya no recibe soporte. Consulta nuestra documentación para obtener la información más reciente sobre cómo conectar tus agentes a las APIs de la plataforma LlamaParse.
LlamaIndex MCP demos
llamacloud-mcp es una herramienta que te permite usar LlamaCloud como servidor MCP. Se puede utilizar para consultar índices de LlamaCloud y extraer datos de archivos.
Permite:
- especificar uno o más índices para usar en la recuperación de contexto.
- especificar uno o más agentes de extracción para usar en la extracción de datos.
- configurar los IDs de proyecto y organización.
- configurar el transporte a usar para el servidor MCP (stdio, sse, streamable-http).
Primeros pasos
- Instala uv
- Ejecuta
uvx llamacloud-mcp@latest --helppara ver las opciones disponibles. - Configura tu cliente MCP para usar el servidor
llamacloud-mcp. Puedes iniciar el servidor directamente conuvx llamacloud-mcp@latesto usar un archivoclaude_desktop_config.jsonpara conectarte con Claude Desktop.
Uso
% uvx llamacloud-mcp@latest --help
Usage: llamacloud-mcp [OPTIONS]
Options:
--index TEXT Index definition in the format
name:description. Can be used multiple
times.
--extract-agent TEXT Extract agent definition in the format
name:description. Can be used multiple
times.
--project-id TEXT Project ID for LlamaCloud
--org-id TEXT Organization ID for LlamaCloud
--transport [stdio|sse|streamable-http]
Transport to run the MCP server on. One of
"stdio", "sse", "streamable-http".
--api-key TEXT API key for LlamaCloud
--help Show this message and exit.
Configurar Claude Desktop
- Instala Claude Desktop
- En la barra de menú elige
Claude->Settings->Developer->Edit Config. Esto mostrará un archivo de configuración que puedes editar en tu editor de texto preferido. - Crea y agrega los siguientes "mcpServers" al archivo de configuración, donde cada
--indexes una nueva herramienta de índice que defines, y cada--extract-agentes una herramienta de agente de extracción. - Querrás que tu configuración se vea algo así (asegúrate de reemplazar
$YOURPATHcon la ruta al repositorio):
{
"mcpServers": {
"llama_index_docs_server": {
"command": "uvx",
"args": [
"llamacloud-mcp@latest",
"--index",
"your-index-name:Description of your index",
"--index",
"your-other-index-name:Description of your other index",
"--extract-agent",
"extract-agent-name:Description of your extract agent",
"--project-name",
"<Your LlamaCloud Project Name>",
"--org-id",
"<Your LlamaCloud Org ID>",
"--api-key",
"<Your LlamaCloud API Key>"
]
},
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"<your directory you want filesystem tool to have access to>"
]
}
}
}
Asegúrate de reiniciar Claude Desktop después de configurar el archivo.
¡Ahora estás listo para consultar! Deberías ver un ícono de herramienta con tu servidor listado debajo del cuadro de consulta en Claude Desktop, así:

LlamaCloud como servidor MCP desde cero
Para proporcionar un servidor MCP local que pueda ser utilizado por un cliente como Claude Desktop, puedes usar mcp-server.py. Puedes usar esto para proporcionar una herramienta que utilice RAG para brindar a Claude información privada actualizada al instante que pueda usar para responder preguntas. Puedes proporcionar tantas de estas herramientas como quieras.
Configura tu índice de LlamaCloud
- Obtén una cuenta de LlamaCloud
- Crea un nuevo índice con cualquier fuente de datos que quieras. En nuestro caso usamos Google Drive y proporcionamos un subconjunto de la documentación de LlamaIndex como fuente. También podrías subir documentos directamente al índice si solo quieres probarlo.
- Obtén una clave de API desde la interfaz de LlamaCloud
Configura tu servidor MCP
- Clona este repositorio
- Crea un archivo
.envy agrega dos variables de entorno:LLAMA_CLOUD_API_KEY- La clave de API que obtuviste en el paso anteriorOPENAI_API_KEY- Una clave de API de OpenAI. Se utiliza para impulsar la consulta RAG. Puedes usar cualquier otro LLM si no quieres usar OpenAI.
Ahora veamos el código. Primero instancias un servidor MCP:
mcp = FastMCP('llama-index-server')
Luego defines tu herramienta usando el decorador @mcp.tool():
@mcp.tool()
def llama_index_documentation(query: str) -> str:
"""Search the llama-index documentation for the given query."""
index = LlamaCloudIndex(
name="mcp-demo-2",
project_name="Rando project",
organization_id="e793a802-cb91-4e6a-bd49-61d0ba2ac5f9",
api_key=os.getenv("LLAMA_CLOUD_API_KEY"),
)
response = index.as_query_engine().query(query + " Be verbose and include code examples.")
return str(response)
Aquí nuestra herramienta se llama llama_index_documentation; instancia un índice de LlamaCloud llamado mcp-demo-2 y luego lo usa como motor de consulta para responder la consulta, incluyendo algunas instrucciones adicionales en el prompt. Obtendrás instrucciones sobre cómo configurar tu índice de LlamaCloud en la siguiente sección.
Finalmente, ejecutas el servidor:
if __name__ == "__main__":
mcp.run(transport="stdio")
Ten en cuenta el transporte stdio, utilizado para comunicarse con Claude Desktop.
LlamaIndex como cliente MCP
LlamaIndex también tiene una integración de cliente MCP, lo que significa que puedes convertir cualquier servidor MCP en un conjunto de herramientas que puede usar un agente. Puedes ver esto en mcp-client.py, donde usamos el BasicMCPClient para conectarnos a nuestro servidor MCP local.
Para simplificar la demostración, estamos usando el mismo servidor MCP que configuramos anteriormente. Normalmente, no usarías MCP para conectar LlamaCloud a un agente de LlamaIndex, usarías QueryEngineTool y lo pasarías directamente al agente.
Configura tu servidor MCP
Para proporcionar un servidor MCP local que pueda ser utilizado por un cliente HTTP, necesitamos modificar ligeramente mcp-server.py para usar el método run_sse_async en lugar de run. Puedes encontrar esto en mcp-http-server.py.
mcp = FastMCP('llama-index-server',port=8000)
asyncio.run(mcp.run_sse_async())
Obtén tus herramientas del servidor MCP
mcp_client = BasicMCPClient("http://localhost:8000/sse")
mcp_tool_spec = McpToolSpec(
client=mcp_client,
# Optional: Filter the tools by name
# allowed_tools=["tool1", "tool2"],
)
tools = mcp_tool_spec.to_tool_list()
Crea un agente y haz una pregunta
llm = OpenAI(model="gpt-4o-mini")
agent = FunctionAgent(
tools=tools,
llm=llm,
system_prompt="You are an agent that knows how to build agents in LlamaIndex.",
)
async def run_agent():
response = await agent.run("How do I instantiate an agent in LlamaIndex?")
print(response)
if __name__ == "__main__":
asyncio.run(run_agent())
¡Estás listo! Ahora puedes usar el agente para responder preguntas desde tu índice de LlamaCloud.