LlamaIndex
LlamaIndexエージェントをBasicMCPClientとMcpToolSpecを使ってEdison Watchに接続する。
LlamaIndex は BasicMCPClient を使ってEdisonに接続します。BasicMCPClient はEdisonのような https:// URLに対してstreamable HTTPを自動選択します。McpToolSpec はサーバーのツールをLlamaIndexツールに変換します。接続URL にはAPIキーが含まれているため、認証ヘッダーは不要です。
pip install llama-index-tools-mcp llama-index-llms-openai llama-indeximport 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())EDISON_MCP_URL に接続URLを設定してください(例:https://mcp.edison.watch/mcp/<your-api-key>/?client=llamaindex)。
llama-index-llms-openai は各モデルをハードコードされた context-window
テーブルと照合し、テーブルにないものは ValueError: Unknown model を送出します -
そのため、ごく新しい model id は統合をアップグレードするまで失敗することがあります。
インストール済みバージョンが認識するモデルを選ぶか(pip install -U llama-index-llms-openai
でアップグレード)、llama-index-llms-openai-like の OpenAILike を使って
テーブル照合をスキップしてください。
オプション:暗号化シークレットヘッダー
ゼロ知識暗号化シークレット を使用するサーバーには、BasicMCPClient に headers dictを渡します。
client = BasicMCPClient(
os.environ["EDISON_MCP_URL"],
headers={"x-edison-secret-key": os.environ["EDISON_SECRET_KEY"]},
)便利ヘルパーの get_tools_from_mcp_url / aget_tools_from_mcp_url は headers 引数を取りません。これらでカスタムヘッダーを送信するには、事前に構築したクライアントを渡してください。aget_tools_from_mcp_url(url, client=BasicMCPClient(url, headers=...)) のように使用します。

