A server's code-review prompt must give the model a 40-page coding policy that the same server already exposes as a resource. The team does not want the full policy text pasted into every prompts/get result. Which approach fits the prompts specification?
Select an answer to reveal the explanation.
Short Explanation
Think of it like a footnote instead of a photocopy. A resource link hands the client the policy's URI so you can fetch the document when you actually need it, instead of stuffing 40 pages into every prompt. Don't fall for the "server pushes it" option, because MCP servers never send requests of their own.
Full Explanation
Prompt messages can carry text, image and audio content, embedded resources, and resource links. A resource_link item carries a URI plus optional name, description and MIME type, and the specification describes it as a way to provide additional context without embedding the resource contents directly; the client fetches the URI with resources/read when it actually needs the content. That matches a requirement to reference a large document the server already publishes without inlining it on every call. Copying the policy into the description field fails because description is optional human-readable text about the prompt, not message content delivered to the model. Making the policy a required argument fails by concept: arguments customise a prompt, and forcing the user to paste the document each time recreates the very inlining the team wants to avoid. A server-initiated resources/read fails because resources/read is a client request; in this revision servers never send JSON-RPC requests at all. Exam caveat: embedded resources (type resource) are also valid prompt content and must include a URI, a MIME type and either text or base64 blob data; they suit content that must travel inline. Operational check: call prompts/get and confirm the messages contain a resource_link whose uri also appears in resources/list and can be read successfully.