HTTP

httpTransportPlugin (service id http) starts one shared server. Other plugins mount routes and websockets onto it. This is separate from the transport service (stdio / remote).

Default tools path is /mcp. Extra mounts come from endpoints:

import { httpTransportPlugin } from '@buildautomaton/plugins';

httpTransportPlugin({
  options: {
    host: '127.0.0.1',
    port: 3333,
    endpoints: [
      { kind: 'tools', path: '/mcp' },
      { plugin: 'session-disk', path: '/api' },
      { plugin: 'work-sqlite', path: '/api' },
    ],
  },
});

coreSet() mounts buildautomaton work and sessions at /api.

This is the default path in coreSet(). On Cloudflare, use Fetch (or Worker host). createRuntime then exposes handle.fetch(request) instead of binding a port.