Daniel Bauer 94340e2bb1 feat: add search tool for digital object discovery
Implement MCP tool to search Cordra repository using Lucene/Solr syntax.
Enables AI assistants to discover and filter digital objects by content,
type, and other metadata fields.

Features:
- Lucene/Solr compatible query syntax support
- Optional type filtering (e.g., Person, Document)
- Configurable result limits with sensible defaults
- Comprehensive error handling and validation
- JSON formatted results with proper indentation

Technical changes:
- Enhanced CordraClient.find() with type and limit parameters
- Added search_objects MCP tool with detailed annotations
- Removed unused tools module in favor of decorator approach
- Added 12 comprehensive unit tests covering all scenarios
2025-07-04 09:30:38 +02:00
2025-06-30 13:44:29 +02:00
2025-06-28 23:43:17 +02:00
2025-06-30 12:31:08 +02:00

Cordra MCP Server

Cordra is a configurable digital object repository system that stores digital objects as JSON documents with associated metadata and optional binary payloads. This Model Context Protocol (MCP) server provides AI assistants with read-only access to explore and understand Cordra repositories. This allows AI systems to quickly understand the data model and schema structure of a Cordra repository and to explore digital objects and their relationships.

Features

  • Read-Only Access: All operations are strictly read-only, ensuring safe exploration without risk of data modification or corruption.
  • Schema Discovery: Discover and retrieve schema definitions for each type in the repository.
  • Individual Object Retrieval: Retrieve specific digital objects by their handle identifier with complete metadata.

MCP Architecture

Resources

  • cordra://objects/{prefix}/{suffix} - Retrieve a specific object by its handle identifier
  • cordra://schemas/{schema_name} - Schema definition for a specific type.

Tools

Currently, none.

Configuration

The MCP server can be configured using environment variables with the CORDRA_ prefix:

  • CORDRA_BASE_URL - Cordra server URL (default: https://localhost:8443)
  • CORDRA_USERNAME - Username for authentication (optional)
  • CORDRA_PASSWORD - Password for authentication (optional)
  • CORDRA_VERIFY_SSL - SSL certificate verification (default: true)
  • CORDRA_TIMEOUT - Request timeout in seconds (default: 30)
  • CORDRA_MAX_SEARCH_RESULTS - Maximum search results (default: 1000)

Usage

Run the MCP server:

uv run mcp-cordra
Description
Languages
Python 99.4%
Dockerfile 0.6%