Edison Watch
นักพัฒนา

Claude Agent SDK

เชื่อมต่อ Claude Agent SDK ของ Anthropic (Python หรือ TypeScript) กับ Edison Watch ในฐานะ MCP server แบบ streamable-HTTP

Claude Agent SDK ของ Anthropic (SDK ที่อยู่เบื้องหลัง Claude Code) ไม่มี MCP class เฉพาะ - คุณประกาศ servers ใน map mcpServers ด้วย type: "http" connection URL ของคุณมี API key อยู่แล้ว ดังนั้นไม่ต้องใช้ auth header

MCP tools ต้อง ได้รับอนุญาตอย่างชัดเจน มิเช่นนั้น Claude จะเห็น tools เหล่านั้นแต่จะไม่เรียกใช้งาน เพิ่ม mcp__<server-name>__* ใน allowedTools / allowed_tools - ที่นี่ server มีชื่อว่า edison ดังนั้นอนุญาต mcp__edison__* การเชื่อมต่อที่ "ไม่ทำอะไร" เกือบทั้งหมดเป็นปัญหาของ allowed-tools ที่ขาดหายไป ไม่ใช่ปัญหา auth

pip install claude-agent-sdk
import asyncio
import os

from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

async def main() -> None:
    options = ClaudeAgentOptions(
        mcp_servers={
            "edison": {
                "type": "http",
                "url": os.environ["EDISON_MCP_URL"],
            }
        },
        allowed_tools=["mcp__edison__*"],
    )
    async for message in query(prompt="List my available tools.", options=options):
        if isinstance(message, ResultMessage) and message.subtype == "success":
            print(message.result)

asyncio.run(main())

ตั้งค่า EDISON_MCP_URL เป็น connection URL ของคุณ เช่น https://mcp.edison.watch/mcp/<your-api-key>/?client=claude-agent

npm install @anthropic-ai/claude-agent-sdk
import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
  prompt: "List my available tools.",
  options: {
    mcpServers: {
      edison: {
        type: "http",
        url: process.env.EDISON_MCP_URL!,
      },
    },
    allowedTools: ["mcp__edison__*"],
  },
})) {
  if (message.type === "result" && message.subtype === "success") {
    console.log(message.result);
  }
}

ทางเลือก: header สำหรับ encrypted secrets

สำหรับ server ที่มี ความลับที่เข้ารหัสแบบ zero-knowledge ให้เพิ่ม header x-edison-secret-key ใน server entry:

"edison": {
    "type": "http",
    "url": os.environ["EDISON_MCP_URL"],
    "headers": {"x-edison-secret-key": os.environ["EDISON_SECRET_KEY"]},
}
edison: {
  type: "http",
  url: process.env.EDISON_MCP_URL!,
  headers: { "x-edison-secret-key": process.env.EDISON_SECRET_KEY! },
}