LlamaIndex MCP demos
Expor os serviços LlamaCloud como ferramentas MCP para construir e gerenciar aplicações LLM.
Documentação
[!CAUTION] Este repositório foi arquivado e não é mais suportado. Consulte nossa documentação para obter as informações mais recentes sobre como conectar seus agentes às APIs da Plataforma LlamaParse.
LlamaIndex MCP demos
llamacloud-mcp é uma ferramenta que permite usar o LlamaCloud como um servidor MCP. Ela pode ser usada para consultar índices do LlamaCloud e extrair dados de arquivos.
Ela permite:
- especificar um ou mais índices para usar na recuperação de contexto.
- especificar um ou mais agentes de extração para usar na extração de dados
- configurar IDs de projeto e organização
- configurar o transporte a ser usado para o servidor MCP (stdio, sse, streamable-http)
Começando
- Instale uv
- Execute
uvx llamacloud-mcp@latest --helppara ver as opções disponíveis. - Configure seu cliente MCP para usar o servidor
llamacloud-mcp. Você pode iniciar o servidor diretamente comuvx llamacloud-mcp@latestou usar um arquivoclaude_desktop_config.jsonpara conectar com o 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 o Claude Desktop
- Instale o Claude Desktop
- Na barra de menus, escolha
Claude->Settings->Developer->Edit Config. Isso exibirá um arquivo de configuração que você pode editar no seu editor de texto preferido. - Crie e adicione os seguintes "mcpServers" ao arquivo de configuração, onde cada
--indexé uma nova ferramenta de índice que você define, e cada--extract-agenté uma ferramenta de agente de extração. - Você vai querer que sua configuração fique mais ou menos assim (certifique-se de substituir
$YOURPATHpelo caminho para o repositório):
{
"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>"
]
}
}
}
Certifique-se de reiniciar o Claude Desktop após configurar o arquivo.
Agora você está pronto para consultar! Você deve ver um ícone de ferramenta com seu servidor listado abaixo da caixa de consulta no Claude Desktop, assim:

LlamaCloud como servidor MCP do zero
Para fornecer um servidor MCP local que possa ser usado por um cliente como o Claude Desktop, você pode usar mcp-server.py. Você pode usar isso para fornecer uma ferramenta que usará RAG para fornecer ao Claude informações privadas atualizadas ao segundo que ele pode usar para responder perguntas. Você pode fornecer quantas dessas ferramentas quiser.
Configure seu índice LlamaCloud
- Obtenha uma conta LlamaCloud
- Crie um novo índice com qualquer fonte de dados que desejar. No nosso caso, usamos o Google Drive e fornecemos um subconjunto da documentação do LlamaIndex como fonte. Você também pode enviar documentos diretamente para o índice se quiser apenas testá-lo.
- Obtenha uma chave de API na interface do LlamaCloud
Configure seu servidor MCP
- Clone este repositório
- Crie um arquivo
.enve adicione duas variáveis de ambiente:LLAMA_CLOUD_API_KEY- A chave de API que você obteve na etapa anteriorOPENAI_API_KEY- Uma chave de API da OpenAI. Ela é usada para alimentar a consulta RAG. Você pode usar qualquer outro LLM se não quiser usar a OpenAI.
Agora vamos olhar o código. Primeiro você instancia um servidor MCP:
mcp = FastMCP('llama-index-server')
Em seguida, você define sua ferramenta usando o 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)
Aqui nossa ferramenta é chamada de llama_index_documentation; ela instancia um índice LlamaCloud chamado mcp-demo-2 e então o usa como mecanismo de consulta para responder à pergunta, incluindo algumas instruções extras no prompt. Você receberá instruções sobre como configurar seu índice LlamaCloud na próxima seção.
Por fim, você executa o servidor:
if __name__ == "__main__":
mcp.run(transport="stdio")
Observe o transporte stdio, usado para comunicação com o Claude Desktop.
LlamaIndex como cliente MCP
O LlamaIndex também tem uma integração de cliente MCP, o que significa que você pode transformar qualquer servidor MCP em um conjunto de ferramentas que podem ser usadas por um agente. Você pode ver isso em mcp-client.py, onde usamos o BasicMCPClient para conectar ao nosso servidor MCP local.
Para simplificar a demonstração, estamos usando o mesmo servidor MCP que configuramos acima. Normalmente, você não usaria MCP para conectar o LlamaCloud a um agente LlamaIndex; você usaria QueryEngineTool e o passaria diretamente ao agente.
Configure seu servidor MCP
Para fornecer um servidor MCP local que possa ser usado por um cliente HTTP, precisamos modificar ligeiramente mcp-server.py para usar o método run_sse_async em vez de run. Você pode encontrar isso em mcp-http-server.py.
mcp = FastMCP('llama-index-server',port=8000)
asyncio.run(mcp.run_sse_async())
Obtenha suas ferramentas do 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()
Crie um agente e faça uma pergunta
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á tudo pronto! Agora você pode usar o agente para responder perguntas do seu índice LlamaCloud.