| name | mcp-resource-uri-designer |
| description | Design and implement MCP resource URI schemes and templates with proper naming, hierarchy, and documentation. |
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep |
| graph | {"domains":["domain:software-engineering"],"specializations":["specialization:cli-mcp-development"],"skillAreas":["skill-area:cli-design","skill-area:mcp-server-implementation","skill-area:mcp-resource-design"],"roles":["role:backend-engineer","role:platform-engineer"],"workflows":["workflow:feature-development"],"topics":["topic:developer-experience"]} |
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
| 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) |
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';
const URI_TEMPLATES = {
table: 'db://{database}/tables/{table}',
schema: 'db://{database}/schema',
query: 'db://{database}/query/{queryId}',
} as const;
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 { , regex } patterns) {
match = uri.(regex);
(match) {
( === ) {
{ , : { : match[], : match[] } };
} ( === ) {
{ , : { : match[] } };
} ( === ) {
{ , : { : match[], : match[] } };
}
}
}
;
}
(): {
uri = [];
( [key, value] .(params)) {
uri = uri.(, (value));
}
uri;
}
(): [] {
[
{
: .,
: ,
: ,
: ,
},
{
: .,
: ,
: ,
: ,
},
];
}
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
- Analyze domain - Understand resource types
- Design scheme - Choose URI scheme
- Define templates - Create URI patterns
- Generate parser - URI parsing utilities
- Create builder - URI construction helpers
- Document resources - API documentation
Target Processes
- mcp-resource-provider
- mcp-server-bootstrap
- mcp-tool-documentation