Edison Watch
Desenvolvedores

LlamaIndex

Conecte um agente LlamaIndex ao Edison Watch usando BasicMCPClient e McpToolSpec.

LlamaIndex se conecta ao Edison com BasicMCPClient, que seleciona automaticamente HTTP streamável para uma URL https:// como a do Edison. McpToolSpec transforma as ferramentas do servidor em ferramentas do LlamaIndex. Sua URL de conexão carrega sua chave de API, portanto nenhum cabeçalho de autenticação é necessário.

pip install llama-index-tools-mcp llama-index-llms-openai llama-index
import asyncio
import os

from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
from llama_index.llms.openai import OpenAI
from llama_index.core.agent.workflow import FunctionAgent

async def main() -> None:
    client = BasicMCPClient(os.environ["EDISON_MCP_URL"])
    tools = await McpToolSpec(client=client).to_tool_list_async()

    agent = FunctionAgent(tools=tools, llm=OpenAI(model="gpt-5.4-mini"))
    response = await agent.run("List my available tools.")
    print(response)

asyncio.run(main())

Defina EDISON_MCP_URL com sua URL de conexão, por exemplo https://mcp.edison.watch/mcp/<your-api-key>/?client=llamaindex.

llama-index-llms-openai resolve cada modelo contra uma tabela de context-window fixa e lança ValueError: Unknown model para qualquer id que não esteja nela - então um model id muito novo pode falhar até você atualizar a integração. Escolha um modelo que sua versão instalada conheça (atualize com pip install -U llama-index-llms-openai), ou use OpenAILike de llama-index-llms-openai-like para ignorar a tabela por completo.

Opcional: o cabeçalho de segredos criptografados

Para servidores com segredos com criptografia zero-knowledge, BasicMCPClient aceita um dict headers:

client = BasicMCPClient(
    os.environ["EDISON_MCP_URL"],
    headers={"x-edison-secret-key": os.environ["EDISON_SECRET_KEY"]},
)

Os auxiliares convenientes get_tools_from_mcp_url / aget_tools_from_mcp_url não aceitam um argumento headers. Para enviar um cabeçalho personalizado com eles, passe um cliente pré-construído: aget_tools_from_mcp_url(url, client=BasicMCPClient(url, headers=...)).