Primitives
Read a resource
Reads a single resource by URI and returns its contents.
POST
/
projects
/
{projectId}
/
servers
/
{serverId}
/
resources
/
read
Read a resource
curl --request POST \
--url https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uri": "file:///readme.md"
}
'import requests
url = "https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read"
payload = { "uri": "file:///readme.md" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({uri: 'file:///readme.md'})
};
fetch('https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'uri' => 'file:///readme.md'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read"
payload := strings.NewReader("{\n \"uri\": \"file:///readme.md\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"uri\": \"file:///readme.md\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uri\": \"file:///readme.md\"\n}"
response = http.request(request)
puts response.read_body{
"contents": [
{
"uri": "<string>",
"mimeType": "<string>",
"text": "<string>",
"blob": "<string>"
}
]
}
Authorizations
MCPJam API key (sk_…). Create one at Settings → API keys. Guest sessions cannot use the API, and API keys cannot manage other API keys.
Path Parameters
ID of the hosted project that contains the server.
ID of the server inside the project.
Body
application/json
The resource URI, exactly as returned by the resources list.
Example:
"file:///readme.md"
Response
The resource contents.
MCP read-resource result.
Show child attributes
Show child attributes
Was this page helpful?
Previous
Export a server snapshotLists tools, resources, and prompts in one call and returns a single JSON snapshot — handy for diffing a server's surface over time in CI.
Next
⌘I
Read a resource
curl --request POST \
--url https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uri": "file:///readme.md"
}
'import requests
url = "https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read"
payload = { "uri": "file:///readme.md" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({uri: 'file:///readme.md'})
};
fetch('https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'uri' => 'file:///readme.md'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read"
payload := strings.NewReader("{\n \"uri\": \"file:///readme.md\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"uri\": \"file:///readme.md\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.mcpjam.com/api/v1/projects/{projectId}/servers/{serverId}/resources/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uri\": \"file:///readme.md\"\n}"
response = http.request(request)
puts response.read_body{
"contents": [
{
"uri": "<string>",
"mimeType": "<string>",
"text": "<string>",
"blob": "<string>"
}
]
}

