Skip to content

Conversation

@hifi-phil
Copy link
Contributor

No description provided.

Phil Whittaker and others added 23 commits September 24, 2025 11:41
This commit improves media reference testing from smoke tests to proper
reference validation and adds several new MCP tools and configurations.

## Media Reference Testing Improvements
- Updated get-media-by-id-referenced-by test to create actual document references
- Updated get-media-by-id-referenced-descendants test with proper hierarchy and references
- Enhanced tool description for get-media-by-id-referenced-descendants with use cases
- All media reference tests now validate actual entity relationships

## New MCP Tools Added
- get-collection-media: Collection-based media retrieval with filtering
- get-media-are-referenced: Check if media items are referenced elsewhere
- get-media-by-id-referenced-by: Find entities referencing specific media
- get-media-by-id-referenced-descendants: Find references to descendant media
- get-data-type-configuration: Data type configuration retrieval
- get-template-configuration: Template configuration retrieval
- get-user-configuration: User configuration retrieval
- get-user-current-configuration: Current user configuration retrieval
- get-webhook: Individual webhook retrieval

## Testing Infrastructure
- Comprehensive integration tests for all new tools
- Snapshot testing with proper normalization using createSnapshotResult helper
- Proper cleanup and entity management in all tests
- Fixed search indexing issues with complex media hierarchies

## Documentation Updates
- Updated endpoint coverage analysis to reflect new implementations
- Media group now at 90% coverage (19/21 endpoints)
- Overall project coverage improved from 69.1% to 70.2%
- Added new analyze-coverage command documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Add getRecycleBinMediaByIdOriginalParent endpoint for restoration workflows
- Include comprehensive integration tests with full coverage
- Update media tools exports to include new endpoint
- Update UNSUPPORTED_ENDPOINTS.md to reflect 100% Media completion
- Media endpoint group now has complete API coverage (23/23 endpoints)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
- Add member reference checking tools (are-referenced, by-id-referenced-by, referenced-descendants)
- Add member validation tools for create and update operations
- Add recycle bin media reference checking tool
- Update member tool exports and constants
- Add comprehensive test coverage with snapshots for all new tools
- Update endpoint group planner documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
…ity controls

Added complete User management tools with proper permission-based access controls:
- Self-service tools for all authenticated users (current user operations)
- Administrative tools restricted to Users section access
- Avatar upload and management capabilities
- Permission and configuration management tools

Added UserData CRUD operations:
- Create, update, and retrieve user data with proper validation
- Builder pattern for test data creation with UUID key generation
- Limited cleanup due to API endpoint constraints

Enhanced testing infrastructure:
- UserBuilder with fluent interface for test user creation
- UserTestHelper with comprehensive verification and cleanup
- UserDataBuilder with API integration and validation
- Full test coverage with snapshot testing and normalization

Security analysis and documentation:
- Detailed User Group security analysis identifying critical risks
- Proper exclusion of dangerous user-group assignment endpoints
- Documentation of permission escalation risks and mitigations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
…nce checking

- Add Document reference checking tools: get-document-are-referenced, get-document-by-id-referenced-by, get-document-by-id-referenced-descendants
- Add Document collection tool: get-collection-document-by-id
- Add Document recycle bin tools: get-recycle-bin-document-original-parent, get-recycle-bin-document-referenced-by
- Add Document Blueprint scaffold and creation tools: get-document-blueprint-scaffold, create-document-blueprint-from-document
- Update Document Blueprint builder with enhanced folder support
- Add comprehensive integration tests with snapshot testing
- Update tool index files to include new reference checking functionality
- Update UNSUPPORTED_ENDPOINTS.md to reflect newly implemented endpoints

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
… Media Type endpoints

- Implement complete Health Check tooling with group management and action execution
- Add Manifest endpoint coverage for both public and private manifests
- Create Static File navigation tools with hierarchical browsing support
- Implement Tag management system with comprehensive testing
- Enhance Media Type tooling with folder support
- Update endpoint analysis documentation with new implementations
- Add comprehensive test infrastructure with builders and helpers for all new endpoints
- Include snapshot testing and proper cleanup mechanisms

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…ring

This commit implements complete MCP tooling for Umbraco's Models Builder functionality:
- get-models-builder-dashboard: Retrieves Models Builder configuration and status
- get-models-builder-status: Monitors build status and validation state
- build-models-builder: Triggers model generation with proper error handling

Features:
- Full TypeScript typing with Zod schema validation
- Comprehensive error handling for build failures and API issues
- RESTful organization following established project patterns
- Updated endpoint coverage tracking (now 96.8% coverage)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Implement all searcher endpoints (list, query by name)
- Implement all indexer endpoints (list, get by name, rebuild)
- Add integration tests following models-builder pattern
- Update coverage documentation (97.9% coverage achieved)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Add Umbraco.ExaminePDF package to enable PDF content indexing
- Add custom ExamineComposer for enhanced search testing capabilities
- Support searcher and indexer endpoint testing with real content

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Add get-imaging-resize-urls tool for media image resizing
- Update coverage to 99.1% (3 endpoints remaining)
- Ignore Help and Segment utility endpoints

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…testing

Implemented full CRUD operations and additional tools for both Relation and Relation Type entities. Enhanced Data Type testing with additional test cases for copy, find, references, and usage checks.

Key additions:
- Relation Type tools: create, delete, get, update, find, search
- Relation tools: create, delete, get by ID array, get by parent/child
- Enhanced Data Type tests with copy, find, references, and is-used operations
- Updated builder helpers and snapshots across multiple tool sets
- Documentation updates for unsupported endpoints

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update user-data index test to follow correct pattern for tools available to all authenticated users without permission checks. Previously was incorrectly using User tools pattern with section-based filtering.

Changes:
- Use UserDataTools instead of UserTools
- Remove permission-based test cases
- Follow temporary-file test pattern
- Add snapshot for tool names

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Add comprehensive index tests for all tool collections to verify permission-based filtering and tool availability. This ensures tools are correctly exposed based on user permissions and roles.

New index tests added:
- document-version: Always available to all users
- health: Admin-only access
- imaging: Admin-only access
- indexer: Admin-only access
- manifest: Admin-only access
- models-builder: Admin-only access
- partial-view: Settings section access required
- relation: Always available to all users
- relation-type: Always available to all users
- script: Settings section access required
- searcher: Admin-only access
- static-file: Settings section access required
- stylesheet: Settings section access required
- template: Settings section access required
- user: Self-service vs full admin access

Improvements to tool collections:
- Standardize ToolCollectionExport structure across all collections
- Add proper metadata (name, displayName, description, dependencies)
- Ensure consistent backwards compatibility exports
- Clean up permission checks and user role validation

Cleanup:
- Remove user tool planning markdown documents

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
…static-file collections

Clean up unused legacy exports that are no longer needed. The ToolCollectionExport pattern and backwards-compatible ToolTools functions provide the necessary interfaces.

Changes:
- Remove legacy individual tool exports from template/index.ts
- Remove legacy individual tool exports from stylesheet/index.ts
- Remove legacy individual tool exports from static-file/index.ts
- Delete obsolete imaging implementation plan document

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Register three missing tool collections in tool-factory that were
not being loaded by the MCP server:
- UserCollection (15 user management tools)
- UserDataCollection (4 user data storage tools)
- StaticFileCollection (4 static file access tools)

Update README.md to document all 36 tool collections including
newly added collections:
- Health (health) - 4 tools
- Imaging (imaging) - 1 tool
- Indexer (indexer) - 3 tools
- Manifest (manifest) - 3 tools
- Models Builder (models-builder) - 3 tools
- Relation (relation) - 1 tool
- Relation Type (relation-type) - 2 tools
- Searcher (searcher) - 2 tools
- Static File (static-file) - 4 tools
- Tag (tag) - 1 tool
- User (user) - 15 tools
- User Data (user-data) - 4 tools

Additional changes:
- Add imaging collection dependency on media collection
- Update media-type snapshot for new get-media-type-folders tool
- Remove empty reference check test from document tests

All 36 collections are now properly registered and documented.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Add comprehensive Umbraco MCP tooling for multiple endpoint groups
@hifi-phil hifi-phil merged commit febda2b into dev Oct 1, 2025
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants