Documentation Index Fetch the complete documentation index at: https://docs.agentfront.dev/llms.txt
Use this file to discover all available pages before exploring further.
Overview
import { ResourceRegistry } from ' @frontmcp/sdk ' ;
// Access via scope
const resources = scope . resources ;
// List all static resources
const allResources = resources . getResources ();
// List all resource templates
const templates = resources . getResourceTemplates ();
// Find by URI
const resource = resources . findByUri ( ' file:///config.json ' );
Methods
getResources()
Get all static resources (not templates).
getResources ( includeHidden ?: boolean ) : ReadonlyArray < ResourceEntry >
Parameter Type Default Description includeHiddenbooleanfalseInclude hidden resources
Example:
// Get all visible resources
const resources = registry . getResources ();
// Include hidden resources
const allResources = registry . getResources ( true );
getResourceTemplates()
Get all resource templates.
getResourceTemplates () : ReadonlyArray < ResourceEntry >
Example:
const templates = registry . getResourceTemplates ();
for ( const template of templates ) {
console . log ( ` Template: ${ template . uriTemplate } ` );
}
findByUri()
Find a resource by exact URI match.
findByUri ( uri : string ) : ResourceEntry | undefined
Example:
const resource = registry . findByUri ( ' file:///config.json ' );
if ( resource ) {
console . log ( ` Found: ${ resource . name } ` );
}
matchTemplateByUri()
Match a URI against template resources.
matchTemplateByUri ( uri : string ) : {
template : ResourceEntry ;
params : Record < string , string>;
} | undefined
Example:
// Given template: 'file:///users/{userId}/profile'
const match = registry . matchTemplateByUri ( ' file:///users/123/profile ' );
if ( match ) {
console . log ( match . template . name ); // user-profile
console . log ( match . params ); // { userId: '123' }
}
findResourceForUri()
Find resource by URI (exact match or template).
findResourceForUri ( uri : string ) : ResourceEntry | undefined
Example:
// Will try exact match first, then template matching
const resource = registry . findResourceForUri ( ' file:///users/123/profile ' );
findByName()
Find a resource by its base name.
findByName ( name : string ) : ResourceEntry | undefined
findByQualifiedName()
Find a resource by its fully qualified name.
findByQualifiedName ( qualifiedName : string ) : ResourceEntry | undefined
Example:
const resource = registry . findByQualifiedName ( ' my-app:config ' );
getExported()
Lookup a resource by its exported (resolved) name.
getExported ( name : string , opts ?: { ignoreCase? : boolean }) : ResourceEntry | undefined
exportResolvedNames()
Produce unique, conflict-aware exported names.
exportResolvedNames ( opts ?: ExportResolvedNamesOptions ) : Map < string , ResourceEntry >
getInlineResources()
Get resources defined inline (local only).
getInlineResources () : ReadonlyArray < ResourceEntry >
listAllInstances()
List all resource instances (locals + adopted).
listAllInstances () : ReadonlyArray < ResourceEntry >
listByOwner()
List resources by owner path.
listByOwner ( ownerPath : string ) : ReadonlyArray < ResourceEntry >
registerResourceInstance()
Register a pre-constructed ResourceEntry directly.
registerResourceInstance ( resource : ResourceEntry ) : void
registerDynamicResource()
Register a resource or template at runtime.
registerDynamicResource ( resourceDef : DynamicResourceDef ) : ResourceEntry
Example:
// Register a dynamic resource
const entry = registry . registerDynamicResource ({
name : ' dynamic-config ' ,
uri : ' config://runtime ' ,
description : ' Runtime configuration ' ,
mimeType : ' application/json ' ,
read : async () => ({ text : JSON . stringify ( config ) }),
});
subscribe()
Subscribe to resource change events.
subscribe (
opts : SubscribeOptions ,
cb : ( event : ResourceChangeEvent ) => void
) : () => void
Returns: Unsubscribe function.
Example:
const unsubscribe = registry . subscribe ({}, ( event ) => {
console . log ( ` Resource ${ event . kind } : ` , event . entry ?. uri );
});
// Later
unsubscribe ();
getCapabilities()
Get MCP capabilities for resources.
getCapabilities () : { subscribe : boolean ; listChanged : boolean }
Example:
const caps = registry . getCapabilities ();
// { subscribe: false, listChanged: true }
hasAny()
Check if any resources exist.
adoptFromChild()
Adopt resources from a child registry.
adoptFromChild ( child : ResourceRegistry , childOwner : Owner ) : void
Change Events
interface ResourceChangeEvent {
kind : ' added ' | ' updated ' | ' removed ' | ' reset ' ;
changeScope : ' global ' | ' session ' ;
version : number ;
snapshot : ReadonlyArray < ResourceEntry >;
entry ?: ResourceEntry ;
sessionId ?: string ;
relatedRequestId ?: string ;
}
Indexes
Index Key Description byQualifiedIdqualifiedIdUnique identifier lookup byNamenameBase name lookup byUriuriStatic resource URI lookup byUriTemplateuriTemplateTemplate URI lookup byOwnerownerPathAll resources by owner
Static vs Template Resources
Static Resources Have a fixed uri property. Found via findByUri().
Template Resources Have a uriTemplate with parameters. Matched via matchTemplateByUri().
Example:
// Static resource
@ Resource ({
name : ' config ' ,
uri : ' file:///config.json ' ,
})
class ConfigResource extends ResourceContext { }
// Template resource
@ ResourceTemplate ({
name : ' user-profile ' ,
uriTemplate : ' file:///users/{userId}/profile ' ,
})
class UserProfileResource extends ResourceContext <{ userId : string }> { }