Skip to content

v1.0.9 — Agents pick the right kind

Choose a tag to compare

@xanojustin xanojustin released this 13 Oct 22:26
· 1 commit to main since this release

The docs your coding agent reads now say which kind to author for a task, not just what each kind is. An MCP server gets prompts and resources where they fit, instead of only tools. The guides also describe deploys to the Xano Engine correctly. Nothing changes at runtime.

npm install @xano/sdk@1.0.9

Agents are told which kind fits each task

llms/object-kinds.md has a new "Choosing a kind" section. For each group of kinds that get confused, it says which one fits and why:

  • defineFunction for logic other code calls, a query for HTTP, a tool for AI callers.
  • task for a timer, an async s.function.run for work a request doesn't wait for, tableTrigger for side effects of a row change (it fires on every write to the table).
  • middleware for steps shared across many objects, an addon for related rows.
  • agent(), mcpServer() or knowledge() depending on who runs the AI.
  • s.realtime.publish for server push.
  • A lambda only after native filters and expressions; microservice and s.api.request for outside code.
  • tests or a workflowTest.

MCP servers get prompts and resources, not just tools

llms/kinds-agent-mcp.md now opens with who drives each MCP primitive. The model calls a tool(). The client app attaches a resource() by uri. The user picks a prompt() by name. Data the model has to fetch on its own mid-task stays a tool. The mcpServer() type docs say the same, and a prompt message's content is documented as accepting an MCP content block.

The deploy guides match the Xano Engine default

guides/cli.md and guides/deploying.md now say that a bare deploy goes to the Xano Engine, not a new ephemeral. They also say to cut releases from an ephemeral (deploy --ephemeral), because release create can't cut from the Engine.