Claude Agent SDK (TypeScript) talks to Agent Update over MCP. The server is https://api.tryagentupdate.com/v1/mcp, the transport is Streamable HTTP, and the credential is one header.
Setup
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Text me when the deploy finishes, then wait for my reply.",
options: {
mcpServers: {
"agent-update": {
type: "http",
url: "https://api.tryagentupdate.com/v1/mcp",
headers: { Authorization: `Bearer ${process.env.AGENT_UPDATE_TOKEN}` }
}
},
allowedTools: ["mcp__agent-update__*"]
}
})) {
if (message.type === "result" && message.subtype === "success") console.log(message.result);
}Before you file a bug
Programmatic mcpServers accepts only "http". "streamable-http" is a JSON-file alias and fails here. Without allowedTools the tools are visible but uncallable, and permissionMode: "acceptEdits" does not cover MCP tools. MCP_TIMEOUT (30s) bounds the first-turn connect. An init status of "pending" is not a failure; poll mcpServerStatus(). Results over 25,000 tokens spill to a file, so raise MAX_MCP_OUTPUT_TOKENS if check_replies returns long threads.
Check it worked
Ask the agent to text you. A 401 means the token is wrong, or the word Bearer is in there twice. No tool at all means the transport string is wrong. Both are covered in troubleshooting.
Next
The five tools and their arguments are on the MCP page. The same tools over plain HTTP are on the REST page. Every other tool is on the docs index.