開発者
Claude Agent SDK
AnthropicのClaude Agent SDK(PythonまたはTypeScript)をEdison WatchにstreamableHTTP MCPサーバーとして接続する。
Anthropicの Claude Agent SDK(Claude Codeを支えるSDK)には専用のMCPクラスがありません。type: "http" を指定した mcpServers マップでサーバーを宣言します。接続URL にAPIキーが含まれているため、認証ヘッダーは不要です。
MCPツールは明示的に許可しなければなりません。許可しないとClaudeはツールを認識しても呼び出しません。allowedTools / allowed_tools に mcp__<server-name>__* を追加してください。ここではサーバーは edison という名前なので、mcp__edison__* を許可します。「何も起きない」接続の原因はほぼ常に、認証の問題ではなく許可ツールの設定漏れです。
pip install claude-agent-sdkimport 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 に接続URLを設定してください(例:https://mcp.edison.watch/mcp/<your-api-key>/?client=claude-agent)。
npm install @anthropic-ai/claude-agent-sdkimport { 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);
}
}オプション:暗号化シークレットヘッダー
ゼロ知識暗号化シークレット を使用するサーバーのために、サーバーエントリに x-edison-secret-key ヘッダーを追加します。
"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! },
}
