Browse topics
RobinPath Overview
Applets API
Read applet metadata from your custom applet.
The Applets API provides read-only access to applet metadata. Use it to discover other applets in the workspace, for cross-applet integrations or dashboards.
Capability required: resources:read
Frontend (iframe)
import { createResourceClient } from "@rightplace/sdk";
const rp = createResourceClient();
await rp.ready();
// List all applets across all projects
const all = await rp.resources.list();
// -> [{ id: "r1", name: "My API", type: "custom/api-monitor", projectId: "p1" }, ...]
// List applets in a specific project
const projectResources = await rp.resources.list("project-id-here");
Backend (Node.js)
import { createResourceServer } from "@rightplace/sdk/server";
const server = createResourceServer({
methods: {
getDashboardData: async (_params, { rp }) => {
const resources = await rp.resources.list();
return {
totalResources: resources.length,
byType: resources.reduce((acc, r) => {
acc[r.type] = (acc[r.type] || 0) + 1;
return acc;
}, {}),
};
},
},
});
server.start();
MCP
Agents get both read and write access to applets - this is the primary integration surface for custom applet automation.
| Tool | Purpose | Permission |
|---|---|---|
rightplace_list_resources | Applets in a project | resource:read |
rightplace_get_resource | One applet + configJson | resource:read |
rightplace_resource_types | Registered applet types | resource:read |
rightplace_create_resource | New applet (any registered type) | resource:create |
rightplace_update_resource | Rename / reconfigure | resource:write |
rightplace_delete_resource | Remove applet | resource:delete |
rightplace_create_resource accepts projectId, type, name, and a configJson shape defined by the applet type (see the frontend registrations in builtinRegistrations).
RobinPath Bridge
# Discover types
rightplace.resource_types into $types
for $t in $types
log $t.type $t.label
endfor
# List applets in a project
rightplace.list_resources {projectId: "proj_abc"} into $resources
for $r in $resources
log $r.id $r.name $r.type
endfor
# Create a doc applet
rightplace.create_resource {
projectId: "proj_abc",
type: "docs",
name: "Design Notes",
configJson: {folderPath: "rightplace/docs/design-notes"}
} into $created
log "created:" $created.id
# Update + delete
rightplace.update_resource {id: $created.id, name: "Design Notes (v2)"}
rightplace.delete_resource {id: $created.id}
Every scope above is enforced server-side; a script missing resource:create will see rightplace.create_resource throw.
API Reference
rp.resources.list(projectId?)
| Parameter | Type | Description |
|---|---|---|
projectId | string (optional) | Filter by project ID. Omit to list all applets. |
| Returns | Promise<ResourceInfo[]> | Array of applet metadata |
ResourceInfo
| Field | Type | Description |
|---|---|---|
id | string | Applet ID |
name | string | Applet display name |
type | string | Applet type (e.g. wordpress, custom/my-type) |
projectId | string | Owning project ID |
Manifest Configuration
{
"capabilities": [
"resources:read"
]
}
Notes
- This API is read-only. Applets cannot create, update, or delete other applets.
- The
configJsonis not exposed to prevent leaking credentials or connection details between applets. - Results include both built-in and custom applet types.