Edison Watch
Desarrolladores

LlamaIndex

Conecta un agente de LlamaIndex a Edison Watch usando BasicMCPClient y McpToolSpec.

LlamaIndex se conecta a Edison con BasicMCPClient, que selecciona automáticamente HTTP streamable para una URL https:// como la de Edison. McpToolSpec convierte las herramientas del servidor en herramientas de LlamaIndex. Tu URL de conexión lleva tu clave API, por lo que no se necesita cabecera de autenticación.

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())

Establece EDISON_MCP_URL con tu URL de conexión, p. ej. https://mcp.edison.watch/mcp/<your-api-key>/?client=llamaindex.

llama-index-llms-openai resuelve cada modelo contra una tabla de context-window fija y lanza ValueError: Unknown model para cualquier id que no esté en ella - así que un model id muy nuevo puede fallar hasta que actualices la integración. Elige un modelo que tu versión instalada conozca (actualiza con pip install -U llama-index-llms-openai), o usa OpenAILike de llama-index-llms-openai-like para omitir la tabla por completo.

Opcional: la cabecera de secretos cifrados

Para servidores con secretos cifrados de conocimiento cero, BasicMCPClient acepta un dict headers:

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

Los helpers de conveniencia get_tools_from_mcp_url / aget_tools_from_mcp_url no aceptan un argumento headers. Para enviar una cabecera personalizada con ellos, pasa un cliente preconstruido: aget_tools_from_mcp_url(url, client=BasicMCPClient(url, headers=...)).