URL: https://gofastmcp.com/clients/resources
Title: Reading Resources - FastMCP

Documentation Index
Fetch the complete documentation index at:
/llms.txt
Use this file to discover all available pages before exploring further.
Skip to main content
Meet
Prefect Horizon
, the enterprise MCP gateway built by the team behind FastMCP
FastMCP
home page
v3
Prefect Horizon
PrefectHQ/fastmcp
25,596
PrefectHQ/fastmcp
25,596
Search...
Navigation
Operations
Reading Resources
Search the docs...
Ctrl
K
Documentation
Get Started
Welcome!
Installation
Quickstart
Servers
Overview
Core Components
Working with Tools
MCP Providers
Interactivity
Extensibility
Auth
Deployment
Apps
Overview
Quickstart
NEW
FastMCPApp
NEW
Interactive Tools
NEW
Generative UI
NEW
Custom HTML
Reference
Clients
Overview
Client-Only Package
Transports
fastmcp-remote
Operations
UPDATED
Tools
Resources
Prompts
Sampling
Elicitation
Tasks
NEW
Progress
Logging
Roots
Notifications
Authentication
UPDATED
Integrations
Auth
Web Frameworks
AI Assistants
AI SDKs
MCP.json
More
Settings
CLI
Upgrading
Development
What's New
FAQ
On this page
Reading Resources
Content Types
Multi-Server Clients
Version Selection
Raw Protocol Access
Operations
Reading Resources
Copy page
Access static and templated data sources from MCP servers.
Copy page
New in version
2.0.0
Use this when you need to read data from server-exposed resources like configuration files, generated content, or external data sources.
Resources are data sources exposed by MCP servers. They can be static files with fixed content, or dynamic templates that generate content based on parameters in the URI.
​
Reading Resources
Read a resource using its URI:
async
with
client
:
content
=
await
client
.
read_resource
(
"
file:///path/to/README.md
"
)
# content -> list[TextResourceContents | BlobResourceContents]
# Access text content
if
hasattr
(
content
[
0
],
'
text
'
):
print
(
content
[
0
].
text
)
# Access binary content
if
hasattr
(
content
[
0
],
'
blob
'
):
print
(
f
"Binary data:
{
len
(
content
[
0
].
blob
)
}
bytes"
)
Resource templates generate content based on URI parameters. The template defines a pattern like
weather://{{city}}/current
, and you fill in the parameters when reading:
async
with
client
:
# Read from a resource template
weather_content
=
await
client
.
read_resource
(
"
weather://london/current
"
)
print
(
weather_content
[
0
].
text
)
​
Content Types
Resources return different content types depending on what they expose.
Text resources include configuration files, JSON data, and other human-readable content:
async
with
client
:
content
=
await
client
.
read_resource
(
"
resource://config/settings.json
"
)
for
item
in
content
:
if
hasattr
(
item
,
'
text
'
):
print
(
f
"Text content:
{
item
.
text
}
"
)
print
(
f
"MIME type:
{
item
.
mimeType
}
"
)
Binary resources include images, PDFs, and other non-text data:
async
with
client
:
content
=
await
client
.
read_resource
(
"
resource://images/logo.png
"
)
for
item
in
content
:
if
hasattr
(
item
,
'
blob
'
):
print
(
f
"Binary content:
{
len
(
item
.
blob
)
}
bytes"
)
print
(
f
"MIME type:
{
item
.
mimeType
}
"
)
# Save to file
with
open
(
"
downloaded_logo.png
"
,
"
wb
"
)
as
f
:
f
.
write
(
item
.
blob
)
​
Multi-Server Clients
When using multi-server clients, resource URIs are prefixed with the server name:
async
with
client
:
# Multi-server client
weather_icons
=
await
client
.
read_resource
(
"
weather://weather/icons/sunny
"
)
templates
=
await
client
.
read_resource
(
"
resource://assistant/templates/list
"
)
​
Version Selection
New in version
3.0.0
When a server exposes multiple versions of a resource, you can request a specific version:
async
with
client
:
# Read the highest version (default)
content
=
await
client
.
read_resource
(
"
data://config
"
)
# Read a specific version
content_v1
=
await
client
.
read_resource
(
"
data://config
"
,
version
=
"
1.0
"
)
See
Metadata
for how to discover available versions.
​
Raw Protocol Access
For complete control, use
read_resource_mcp()
which returns the full MCP protocol object:
async
with
client
:
result
=
await
client
.
read_resource_mcp
(
"
resource://example
"
)
# result -> mcp.types.ReadResourceResult
Calling Tools
Previous
Getting Prompts
Next
Ctrl
+I
discord
github
website
x
Powered by
This documentation is built and hosted on Mintlify, a developer documentation platform
Assistant
Responses are generated using AI and may contain mistakes.
\n\n
\n
\n \n
\n
