@alvin0/ai-agent-sdk-mcp
v0.1.0
Published
Universal MCP HTTP client for ai-agent-sdk
Readme
@alvin0/ai-agent-sdk-mcp
Runtime: Universal (Edge/Worker, browser, Deno, Bun, and Node).
pnpm add @alvin0/ai-agent-sdk-core @alvin0/ai-agent-sdk-mcpUniversal MCP client for Fetch-shaped HTTP runtimes. It connects remote MCP
servers to the SDK as a versioned ToolSource.
import { createAgentRuntime } from '@alvin0/ai-agent-sdk-core'
import { connectMcpHttp } from '@alvin0/ai-agent-sdk-mcp'
const runtime = await createAgentRuntime({ providers: [modelProvider] })
let connection: Awaited<ReturnType<typeof connectMcpHttp>> | undefined
try {
connection = await connectMcpHttp({
serverName: 'tools',
url: 'https://tools.example.com/mcp',
logger: runtime.logger({ fields: { integration: 'mcp-http' } }),
})
const agent = runtime.agent({ model, toolSources: [connection] })
await agent.generate('Use the connected tools when needed.')
} finally {
try {
await runtime.close()
} finally {
await connection?.closeWithReport()
}
}The normal root and /client route contain no server, stdio, filesystem,
node:http, or process lifecycle integration. Use @alvin0/ai-agent-sdk-mcp-node for
the Node stdio client, and a dedicated server package for hosting.
HTTP endpoints are host-selected. HTTPS, public-network-only access, and no
redirects are the defaults; local development must opt out explicitly. Use
allowedOrigins, the async validateEndpoint hook, a DNS-pinning custom fetch
or network egress policy, response/catalog/result bounds, and operation deadlines
according to the application's trust boundary. OAuth credential persistence and
redirect handling remain caller-owned.
Composition: runtime-agent.toolSources. Lifecycle: connected-caller-owned;
create the runtime first, pass runtime.logger(...) while connecting, close the
runtime to quiesce runs, then inspect connection.closeWithReport().
