# Atlas error: Resource not found: <client>/<uri>

> Run `atlas mcp` to confirm the client is connected, re-list the server's resources, check the URI is complete including its scheme, then reconnect and re-attach.

Atlas fails to attach an MCP resource with "Resource not found: <client>/<uri>" because Session.prompt reads the resource through mcp.readResource for the named client, and when that call succeeds but returns no content, prompt building throws rather than silently sending an empty attachment. Fix it by running `atlas mcp` to confirm the client is connected rather than failed or needs_auth, re-listing the server's resources, checking the URI is complete including its scheme, and reconnecting the server so its resource list refreshes.

## Symptom

Attaching an MCP resource to a message fails with: Resource not found: <client>/<uri>. The message is never sent and the attachment does not appear in the prompt.

## Cause

Session.prompt reads the resource through mcp.readResource for the named client. When the call succeeds but returns no content, prompt building throws rather than silently sending an empty attachment.

## Fix

1. Run `atlas mcp` and confirm the client is connected, not failed or needs_auth.
2. Re-list the server's resources; the URI may have been renamed or may be dynamically scoped.
3. Check that the resource URI you pasted is complete, including its scheme.
4. Reconnect the server so its resource list is refreshed, then re-attach.

## Why Atlas says Resource not found when attaching an MCP resource

Atlas throws "Resource not found: <client>/<uri>" during prompt building because Session.prompt reads the resource through mcp.readResource for the named client, and that call returned 0 bytes of content. Atlas refuses to send an empty attachment silently, so it fails the prompt rather than quietly dropping the resource.

The design choice matters here. An empty MCP resource attachment would reach the model as nothing at all, and the model would answer as if the file or document you attached did not exist, without either of you noticing. Atlas surfaces the failure instead. The error names both halves of the lookup, the client and the URI, which tells you exactly where to start: either the client is not in a state to serve resources, or the URI no longer resolves to content on that server. Atlas connects to Model Context Protocol servers and exposes their tools and resources to the agent, and both depend on a healthy client.

## How to fix an MCP Resource not found error in Atlas

Fix the Atlas "Resource not found" error in 4 steps: run `atlas mcp` and confirm the client is connected rather than failed or needs_auth, re-list the server's resources, check the pasted URI is complete including its scheme, then reconnect the server to refresh its resource list and re-attach.

Check the client first, because a client that is not connected cannot serve any resource at all. `atlas mcp` shows the status row, and anything other than connected, whether failed or needs_auth, explains the error immediately and points you at a different fix. If the client is genuinely connected, the problem is the URI. Re-list the server's resources and compare what comes back to what you pasted. Resource URIs get renamed between server versions and are sometimes scoped dynamically, so a URI that worked last week can resolve to nothing today.

## Check the MCP client status before debugging the URI

Run `atlas mcp` as check 1, before touching the URI. A client sitting at failed or needs_auth cannot serve resources through mcp.readResource, so "Resource not found: <client>/<uri>" is the expected outcome and no amount of URI correction will help. Only a connected client is worth debugging further.

Ordering the checks this way in Atlas saves real time. failed means the transport never came up and the fix lives in the server's command or url. needs_auth means the server demanded a login and the fix is `atlas mcp auth <name>`. Neither of those has anything to do with the resource URI you pasted, and both produce the same downstream Resource not found error the moment Session.prompt tries to read through that client. Confirm connected in the status row, and only then treat the URI as the suspect.

## Why an MCP resource URI stops resolving in Atlas

An MCP resource URI stops resolving in Atlas for 3 ordinary reasons: the server renamed the URI in a newer version, the resource is dynamically scoped and no longer exists in your current context, or the URI you pasted is incomplete and is missing its scheme.

Re-listing the server's resources settles all three at once, because the listing is the server's own current answer about what exists. Compare the URI in the listing to the one you attached, character for character, including the scheme prefix. A URI copied out of documentation, a chat message, or a wrapped terminal line very often loses its scheme or picks up a truncation. Dynamically scoped resources are the subtler case: the server generates them per project, per session, or per user, so a URI that resolved in one context legitimately resolves to nothing in another.

## How to verify the MCP resource attaches in Atlas

Verify the Atlas fix in 2 moves: reconnect the server so its resource list is refreshed, then re-attach the resource to a message. A prompt that builds and sends means mcp.readResource returned content for that client and URI. A repeated "Resource not found" means the lookup is still empty.

Reconnecting the MCP server in Atlas is the step people skip, and it is the one that refreshes a stale resource list. A client that has been connected for hours may be holding an old view of what the server offers. After reconnecting, re-attach and send. If the prompt goes through, Session.prompt read the resource successfully and the attachment is in the message. If the error returns unchanged, take the URI straight from the fresh listing rather than from your clipboard, since that removes the last place a typo or a truncation could be hiding.

## FAQ

### What does "Resource not found: <client>/<uri>" mean in Atlas?

It means Session.prompt read the resource through mcp.readResource for that client and got no content back. Atlas throws during prompt building rather than silently sending an empty attachment.

### Why can't Atlas attach my MCP resource to a message?

Either the MCP client is not connected, or the URI no longer resolves to content. Run `atlas mcp` to confirm the client is connected, not failed or needs_auth, then re-list the server's resources and compare the URI.

### How do I list MCP resources in Atlas?

Re-list the server's resources from the MCP server itself and compare the result to the URI you pasted. Resource URIs can be renamed between versions or scoped dynamically, so an old URI may no longer exist.

### Does the MCP resource URI need a scheme in Atlas?

Yes. Check that the resource URI you pasted is complete, including its scheme. A URI copied from documentation or a wrapped terminal line often loses its scheme prefix and then resolves to nothing.

### Why does Atlas throw instead of sending an empty attachment?

Because an empty attachment would reach the model as nothing, and the model would answer as if the resource did not exist. Atlas fails prompt building instead, so the missing resource is visible rather than silent.

### Do I need to reconnect the MCP server after a Resource not found error?

Reconnect the server so its resource list is refreshed, then re-attach. A long-lived client can hold a stale view of what the server offers, which produces Resource not found even for a resource that now exists.

### Can needs_auth cause a Resource not found error in Atlas?

Yes. A client at needs_auth cannot serve resources through mcp.readResource, so the attachment fails. Run `atlas mcp auth <name>` to complete the login, confirm the status is connected, then re-attach.

---

Canonical HTML: https://runatlas.sh/resources/troubleshooting/mcp-resource-not-found
Source of truth: aeo_pages row `/resources/troubleshooting/mcp-resource-not-found` (segment: Troubleshooting) (this file is generated from it, never hand-edited).
Licence: Atlas is proprietary with a free core. It is not open source and there is no public source repository.
