A single MCP server. The `type` field selects the transport; `stdio` is the
default and may be omitted.
A local stdio server launched as a subprocess:
```json
{
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "ghp_..." }
}
```
A remote streamable-HTTP server using a pre-registered public OAuth client:
```json
{
"type": "http",
"url": "https://mcp.slack.com/mcp",
"oauth": {
"clientId": "1601185624273.8899143856786",
"callbackPort": 3118
}
}
```
When a remote HTTP server returns an OAuth challenge, Aether uses its first-party
Client ID Metadata Document at
`https://aether-agent.io/oauth/client-metadata.json` and listens on
`127.0.0.1:3118`, advertising the exact redirect URI `http://localhost:3118/`.
If port 3118 is occupied, authentication fails until the port is available.
The `oauth` object is optional. Set `clientMetadataUrl` for a custom CIMD, or
`clientId` for a pre-registered public client; a configured `clientId` takes
priority. `callbackPort` defaults to 3118 and must exactly match the client's
registered redirect URI. If the authorization server does not advertise CIMD,
Aether falls back to deprecated Dynamic Client Registration. An
`Authorization` header on its own turns off OAuth.
A server can configure one of `oauth`, `sigv4`, or an `Authorization` header. For example:
```json
{
"type": "http",
"url": "https://abc123.execute-api.us-east-1.amazonaws.com/mcp",
"sigv4": { "service": "execute-api", "region": "us-east-1", "profile": "dev" }
}
```
A remote server using a bearer token:
```json
{
"type": "http",
"url": "https://mcp.example.com",
"headers": { "Authorization": "Bearer ..." }
}
```
Set `"deferTools": true` to omit every tool on this server from the model-visible
tool definitions and make it available through progressive `aether mcp` discovery.
For selective deferral, set `deferTools` to an object with `include` and `exclude`
lists. Entries match either an exact MCP-local tool name or a prefix ending in `*`:
```json
{
"type": "in-memory",
"deferTools": {
"include": ["*"],
"exclude": ["bash", "lsp_*"]
}
}
```