Loading resources...
;
if (error) return Loading...
;
if (error) return
{resourceData.contents.map((content, idx) => (
{content.mimeType &&
Type: {content.mimeType}}
{content.text &&
{content.text}}
{content.blob && (
Binary content ({content.blob.length} bytes)
)}
))}
);
}
```
The hook accepts:
* `resourceUri` - The URI of the resource to fetch (e.g., `"linear:issue://TAM-123"`)
In these examples, `issue://TAM-123` is just a sample scheme; your MCP server defines the actual URI scheme and path format.
The returned data contains:
* `contents` - Array of resource content items (text or blob)
* Each content item has `uri`, `mimeType`, and either `text` or `blob`
## Connection Type Support
Resources work with both connection types:
* **[Server-side MCP](/concepts/model-context-protocol/providers/serverside-mcp-connection)** - ✅ Fully supported (recommended)
* **[Client-side MCP](/concepts/model-context-protocol/providers/clientside-mcp-connection)** - ✅ Fully supported
Both connection types can expose resources that will appear in the resource picker. The key difference is where the resource content is fetched (client vs server).
## Example Use Cases
### Issue Tracking Systems
A Linear or Jira MCP server provides resources for issues and tickets:
* Reference specific issues in conversations
* Pull in issue details, comments, and status
* Let AI analyze and suggest actions based on issue content
### File Systems
A file system MCP server exposes files and folders as resources:
* Reference project files in code discussions
* Include configuration files for analysis
* Pull in documentation for context
### Knowledge Bases
A documentation or wiki MCP server provides articles as resources:
* Reference internal documentation
* Include help articles for context
* Pull in knowledge base entries for AI to reference
### CRM and Customer Data
A CRM MCP server exposes customer records as resources:
* Reference customer profiles in support conversations
* Include account history for context
* Pull in interaction logs for analysis
## Best Practices
### Resource Naming
* Use descriptive resource names that users can easily identify
* Include relevant metadata (issue number, file path, etc.)
* Keep names concise but informative
### Resource Size
* Be mindful of resource size, especially with client-side MCP
* Large resources can impact performance and token usage
* Consider summarizing or truncating large content
### Security and Privacy
* Only expose resources that users should have access to
* Implement proper authentication and authorization
* Be careful with sensitive data in resource content
### Caching
* Resources are cached by Tambo for performance
* Consider cache invalidation strategies for frequently changing data
* Use resource URIs that reflect versioning if needed
## Related Features
import LearnMore from "@/components/learn-more";