Files
cordra-mcp/README.md
2025-07-04 13:21:50 +02:00

93 lines
2.5 KiB
Markdown

# 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.
- `cordra://design` - Design document containing the overall structure and configuration of the Cordra repository.
### Tools
- `search_objects` - Search for digital objects using a query string.
## 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:
```bash
uv run mcp-cordra
```
### Claude Code
You can add this MCP to Claude Code by registering it in the settings
of your project or creating a `.mcp.json` file in your workdir:
Example using the docker build:
```json
{
"mcpServers": {
"cordra": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CORDRA_BASE_URL",
"ghcr.io/dnlbauer/cordra-mcp:latest"
],
"env": {
"CORDRA_BASE_URL": "https://cordra.example.de"
}
}
}
}
```
Example using the python package with `uvx`:
```json
{
"mcpServers": {
"cordra": {
"command": "uvx",
"args": [
"cordra-mcp"
],
"env": {
"CORDRA_BASE_URL": "https://cordra.example.de"
}
}
}
}
```