ResourceProvider
Supplies resources for one area of the device (photos, files, contacts, …). Registered through DroidMcp.Builder.addResourceProvider; each module exposes its own, e.g. MediaTools.resources(context).
Like McpTool.execute, list and read run on Dispatchers.IO and must not throw for an expected failure: return an empty list, or null from read, instead.
Properties
Tools whose data this provider serves (e.g. read_contact for contacts). The provider is hidden — not listed, not readable — unless all of them are registered, enabled and visible, so gating a tool off also gates the same data as a resource.
Templates this provider resolves; advertised by resources/templates/list.
Functions
Suggested values for the argument variable of one of this provider's templates (uriTemplate), given what the user has typed so far (value); MCP completion/complete. Best matches first; the server sends at most 100. Defaults to no suggestions.
Concrete resources to advertise. Keep it bounded (e.g. the most recent items).