MCPcopy Index your code
hub / github.com/getsentry/XcodeBuildMCP / loadResources

Function loadResources

src/core/resources.ts:33–69  ·  view source on GitHub ↗
(ctx: PredicateContext)

Source from the content-addressed store, hash-verified

31 * @returns Map of resource URI to resource metadata
32 */
33export async function loadResources(ctx: PredicateContext): Promise<Map<string, ResourceMeta>> {
34 const manifest = loadManifest();
35 const resources = new Map<string, ResourceMeta>();
36
37 for (const resource of manifest.resources.values()) {
38 if (!isResourceExposedForRuntime(resource, ctx)) {
39 log('info', `Skipped resource '${resource.name}' (hidden by predicates)`);
40 continue;
41 }
42
43 let resourceModule;
44 try {
45 resourceModule = await importResourceModule(resource.module);
46 } catch (err) {
47 log(
48 'error',
49 `[infra/resources] failed to import resource module '${resource.module}': ${err}`,
50 {
51 sentry: true,
52 },
53 );
54 continue;
55 }
56
57 resources.set(resource.uri, {
58 uri: resource.uri,
59 name: resource.name,
60 description: resource.description,
61 mimeType: resource.mimeType,
62 handler: resourceModule.handler,
63 });
64
65 log('info', `Loaded resource: ${resource.name} (${resource.uri})`);
66 }
67
68 return resources;
69}
70
71/**
72 * Register resources with the MCP server using manifest-driven discovery.

Callers 3

resources.test.tsFile · 0.90
registerResourcesFunction · 0.85
getAvailableResourcesFunction · 0.85

Calls 4

loadManifestFunction · 0.90
logFunction · 0.90
importResourceModuleFunction · 0.90

Tested by

no test coverage detected