Skip to content

v3.36.0

Choose a tag to compare

@cboettig cboettig released this 25 Oct 16:49
2b63ef3

MCP

Several MCP servers per app, with optional ones (#405, closes #338). An app can now give the agent tools from more than one MCP server, for example duckdb-mcp plus glen-sdm's species distribution models. This is opt-in: an app with no mcp_servers connects to one server exactly as before.

"mcp_servers": [
  { "url": "https://duckdb-mcp.nrp-nautilus.io/mcp" },
  { "url": "https://sdm-mcp.nrp-nautilus.io/mcp", "optional": true }
]
  • Primary server: the first entry is the data engine. Only it gets the inline STAC lookup, the fallback query tool and the geospatial-analyst prompt, and get_schema and render_chart query it.
  • Single-server keys: mcp_url and mcp_auth_token, and mcp_server_url from a deploy-time config.json, set the primary server only. A deployment that injects the duckdb-mcp URL keeps the other servers listed in layers-input.json.
  • Optional servers: "optional": true keeps a server from holding up boot. Its tools join when it connects, and if it can't be reached they are left out with a console warning.
  • Per-server behaviour: auth_token is set per server, each server reconnects on its own, and calls go to the server that listed the tool. On a tool-name collision the server listed first wins.

See "Multiple MCP servers" in the configuration guide.

Map

One swatch for a hex layer with a single value (#406). A hex layer whose cells all hold the same value, such as a modelled species range where every cell is 1, now shows one swatch labelled with the layer's name instead of a colorbar from 1 to 1. A single-value GeoJSON hex layer is now painted in the palette's top colour, because the middle colour can be near-white. The server must report the constant domain (min: 1, max: 1) for this to apply.

add_hex_tile_layer description (#404). The tool description no longer says register_hex_tiles can return GeoJSON, since it always builds vector tiles. It now says format: "geojson" and geojson_url come from the tool that produced the layer, such as a species distribution model's artifacts.map_layers, and that a ready argument object should be passed unchanged.

Voice input

Transcription docs and a quieter mic icon (#410, closes #408). The configuration guide's voice examples now use a working transcription model (gemma-small) and give a one-request check for whether a model accepts audio. The mic button is a muted line icon beside Send that turns red while recording, replacing the emoji, and the fallback transcription endpoint points at open-llm-proxy.nrp-nautilus.io.

Development

  • pnpm, with no install scripts (#413). Development dependencies are installed with pnpm (corepack pnpm install). No dependency runs an install script, a version must be a week old before it installs, and a release with weaker provenance than earlier ones is refused. None of these packages is served to users.
  • DISCLOSURE.md (#400) states how LLM coding tools were used in this repository.

Upgrading

No config changes are required; bump the pin to @v3.36.0. To add a second MCP server, list both in mcp_servers.