library/specializations/cli-mcp-development/skills/mcp-resource-uri-designer/SKILL.md
Design and implement MCP resource URI schemes and templates with proper naming, hierarchy, and documentation.
npx skillsauth add a5c-ai/babysitter mcp-resource-uri-designerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Design and implement resource URI schemes for MCP servers.
Invoke this skill when you need to:
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | domain | string | Yes | Resource domain (e.g., files, database) | | resources | array | Yes | Resource definitions | | language | string | No | Implementation language (default: typescript) |
{
"domain": "database",
"resources": [
{
"pattern": "db://{database}/tables/{table}",
"name": "Database Table",
"description": "Access database table schema and data",
"mimeType": "application/json",
"parameters": {
"database": { "description": "Database name" },
"table": { "description": "Table name" }
}
}
]
}
import { Resource, ResourceTemplate } from '@modelcontextprotocol/sdk/types.js';
// URI Templates
const URI_TEMPLATES = {
table: 'db://{database}/tables/{table}',
schema: 'db://{database}/schema',
query: 'db://{database}/query/{queryId}',
} as const;
// Parse URI to extract parameters
export function parseResourceUri(uri: string): {
type: keyof typeof URI_TEMPLATES;
params: Record<string, string>;
} | null {
const patterns = [
{ type: 'table' as const, regex: /^db:\/\/([^/]+)\/tables\/([^/]+)$/ },
{ type: 'schema' as const, regex: /^db:\/\/([^/]+)\/schema$/ },
{ type: 'query' as const, regex: /^db:\/\/([^/]+)\/query\/([^/]+)$/ },
];
for (const { type, regex } of patterns) {
const match = uri.match(regex);
if (match) {
if (type === 'table') {
return { type, params: { database: match[1], table: match[2] } };
} else if (type === 'schema') {
return { type, params: { database: match[1] } };
} else if (type === 'query') {
return { type, params: { database: match[1], queryId: match[2] } };
}
}
}
return null;
}
// Build URI from parameters
export function buildResourceUri(
type: keyof typeof URI_TEMPLATES,
params: Record<string, string>
): string {
let uri = URI_TEMPLATES[type];
for (const [key, value] of Object.entries(params)) {
uri = uri.replace(`{${key}}`, encodeURIComponent(value));
}
return uri;
}
// List available resource templates
export function listResourceTemplates(): ResourceTemplate[] {
return [
{
uriTemplate: URI_TEMPLATES.table,
name: 'Database Table',
description: 'Access database table schema and data',
mimeType: 'application/json',
},
{
uriTemplate: URI_TEMPLATES.schema,
name: 'Database Schema',
description: 'Full database schema information',
mimeType: 'application/json',
},
];
}
file:// - File system resourcesdb:// - Database resourceshttp://, https:// - Web resourcesgit:// - Git repository resourcesdb://{database}/tables/{table}
db://{database}/tables/{table}/rows/{rowId}
db://{database}/views/{view}
db://{database}/functions/{function}
file:///{path}
file:///projects/{project}/src/{file}
git://{repo}/branches/{branch}/files/{path}
development
Model documentation skill for generating model cards following Google's model card framework.
development
MLflow integration skill for experiment tracking, model registry, and artifact management. Enables LLMs to log experiments, compare runs, manage model lifecycle, and retrieve artifacts through the MLflow API.
data-ai
LIME-based local explanation skill for individual predictions across tabular, text, and image data.
devops
Kubeflow Pipelines skill for ML workflow orchestration, component management, and Kubernetes-native ML.