schema · evergreen

Tools, resources, prompts

Three things a server exposes — and the difference is who decides to use them.

A server exposes three things. The difference that matters is who decides to use them.

PrimitiveWhat it isControlled by
Toolsexecutable functions with typed inputthe model
Resourcesreadable data, static or dynamicthe application
Promptstemplates a user can invokethe user
Toolsmodel-controlled — the LLM chooses to call
Resourcesapplication-controlled — read-only, the host attaches
Promptsuser-controlled — a slash command, a template

The wire methods

Discovery and use are separate calls, and each has a list side and an act side: tools/list then tools/call, resources/list then resources/read, prompts/list then prompts/get.

If you are unsure whether something is a tool or a resource, ask: should the model be allowed to trigger it on its own? Yes → tool. No → resource.

#tools #resources #prompts

See this note on the whiteboard →