agentsclimarketplace

Mcp resource uri designer

Skill a5c-ai/babysitter/library/specializations/cli-mcp-development/skills/mcp-resource-uri-designer

Babysitter enforces obedience on agentic workforces and enables them to manage extremely complex tasks and workflows through deterministic, hallucination-free self-orchestration

Install
npx -y skills add a5c-ai/babysitter --skill mcp-resource-uri-designer

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Design and implement MCP resource URI schemes and templates with proper naming, hierarchy, and documentation.

SKILL.md

4.5 KB, as published. Nobody here has run it

MCP Resource URI Designer

Design and implement resource URI schemes for MCP servers.

Capabilities

  • Design URI schemes for resources
  • Create URI template patterns
  • Generate URI parsing utilities
  • Document resource hierarchies
  • Implement content type mapping
  • Create resource discovery

Usage

Invoke this skill when you need to:

  • Design URI schemes for MCP resources
  • Create URI template patterns
  • Implement resource hierarchies
  • Document resource APIs

Inputs

ParameterTypeRequiredDescription
domainstringYesResource domain (e.g., files, database)
resourcesarrayYesResource definitions
languagestringNoImplementation language (default: typescript)

Resource Structure

{
  "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" }
      }
    }
  ]
}

Generated Patterns

TypeScript URI Handler

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',
    },
  ];
}

URI Design Guidelines

Scheme Selection

  • file:// - File system resources
  • db:// - Database resources
  • http://, https:// - Web resources
  • git:// - Git repository resources
  • Custom schemes for domain-specific resources

Hierarchy Patterns

db://{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}

Workflow

  1. Analyze domain - Understand resource types
  2. Design scheme - Choose URI scheme
  3. Define templates - Create URI patterns
  4. Generate parser - URI parsing utilities
  5. Create builder - URI construction helpers
  6. Document resources - API documentation

Target Processes

  • mcp-resource-provider
  • mcp-server-bootstrap
  • mcp-tool-documentation

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.