# 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 with pagination support.
- `query` - Lucene/Solr compatible search query
- `type` - Optional filter by object type
- `limit` - Number of results per page (default: 1)
- `page_num` - Page number to retrieve, 0-based (default: 0)
- `count_objects` - Count the total number of objects matching a query.
- `query` - Lucene/Solr compatible search query
- `type` - Optional filter by object type
## 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`)
## 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"
}
}
}
}
```
Raw data
{
"_id": null,
"home_page": null,
"name": "cordra-mcp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "MCP, agent-coding, ai, cordra, digital-repository, model-context-protocol",
"author": null,
"author_email": "Daniel Bauer <github@dbauer.me>",
"download_url": "https://files.pythonhosted.org/packages/6a/30/8fca001c129e460aafb235578becaa344c8fcd4d85475084520064269f2e/cordra_mcp-1.2.0.tar.gz",
"platform": null,
"description": "# Cordra MCP Server\n\nCordra is a configurable digital object repository system that stores digital objects as JSON documents\nwith associated metadata and optional binary payloads.\nThis Model Context Protocol (MCP) server provides AI assistants with read-only\naccess to explore and understand Cordra repositories.\nThis allows AI systems to quickly understand the data model and schema structure\nof a Cordra repository and to explore digital objects and their relationships.\n\n\n\n## Features\n\n- **Read-Only Access**: All operations are strictly read-only,\nensuring safe exploration without risk of data modification or corruption.\n- **Schema Discovery**: Discover and retrieve schema definitions for each type in the repository.\n- **Individual Object Retrieval**: Retrieve specific digital objects by their handle identifier with complete metadata.\n\n## MCP Architecture\n\n### Resources\n\n- `cordra://objects/{prefix}/{suffix}` - Retrieve a specific object by its handle identifier\n- `cordra://schemas/{schema_name}` - Schema definition for a specific type.\n- `cordra://design` - Design document containing the overall structure and configuration of the Cordra repository.\n\n### Tools\n\n- `search_objects` - Search for digital objects using a query string with pagination support.\n - `query` - Lucene/Solr compatible search query\n - `type` - Optional filter by object type \n - `limit` - Number of results per page (default: 1)\n - `page_num` - Page number to retrieve, 0-based (default: 0)\n- `count_objects` - Count the total number of objects matching a query.\n - `query` - Lucene/Solr compatible search query\n - `type` - Optional filter by object type \n\n## Configuration\n\nThe MCP server can be configured using environment variables with the `CORDRA_` prefix:\n\n- `CORDRA_BASE_URL` - Cordra server URL (default: `https://localhost:8443`)\n- `CORDRA_USERNAME` - Username for authentication (optional)\n- `CORDRA_PASSWORD` - Password for authentication (optional)\n- `CORDRA_VERIFY_SSL` - SSL certificate verification (default: `true`)\n- `CORDRA_TIMEOUT` - Request timeout in seconds (default: `30`)\n\n## Usage\n\nRun the MCP server:\n\n```bash\nuv run mcp-cordra\n```\n\n### Claude Code\n\nYou can add this MCP to Claude Code by registering it in the settings\nof your project or creating a `.mcp.json` file in your workdir:\n\nExample using the docker build:\n\n```json\n{\n \"mcpServers\": {\n \"cordra\": {\n \"command\": \"docker\",\n \"args\": [\n \"run\",\n \"-i\",\n \"--rm\",\n \"-e\",\n \"CORDRA_BASE_URL\",\n \"ghcr.io/dnlbauer/cordra-mcp:latest\"\n ],\n \"env\": {\n \"CORDRA_BASE_URL\": \"https://cordra.example.de\"\n }\n }\n }\n}\n```\n\nExample using the python package with `uvx`:\n\n```json\n{\n \"mcpServers\": {\n \"cordra\": {\n \"command\": \"uvx\",\n \"args\": [\n \"cordra-mcp\"\n ],\n \"env\": {\n \"CORDRA_BASE_URL\": \"https://cordra.example.de\"\n }\n }\n }\n}\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "MCP server for Cordra digital object repository",
"version": "1.2.0",
"project_urls": {
"Homepage": "https://github.com/dnlbauer/cordra-mcp",
"Repository": "https://github.com/dnlbauer/cordra-mcp"
},
"split_keywords": [
"mcp",
" agent-coding",
" ai",
" cordra",
" digital-repository",
" model-context-protocol"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "92caf14d11b260a9f09ccf62378ceece5050df14c376a9a16aa9d2aac6da1f37",
"md5": "480a22de975f424043b8d940dcb66b2e",
"sha256": "ce97795a09df6f75581b98156ae11a6be8b61c44f13042a278b00d62274cb996"
},
"downloads": -1,
"filename": "cordra_mcp-1.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "480a22de975f424043b8d940dcb66b2e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 9488,
"upload_time": "2025-07-09T09:11:10",
"upload_time_iso_8601": "2025-07-09T09:11:10.647008Z",
"url": "https://files.pythonhosted.org/packages/92/ca/f14d11b260a9f09ccf62378ceece5050df14c376a9a16aa9d2aac6da1f37/cordra_mcp-1.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6a308fca001c129e460aafb235578becaa344c8fcd4d85475084520064269f2e",
"md5": "1807cfe43379fd6abe6f010ddfdf334a",
"sha256": "0b910aeeb307a7c126001168e9ef6038b4905760e2420141732d12a24c454aac"
},
"downloads": -1,
"filename": "cordra_mcp-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "1807cfe43379fd6abe6f010ddfdf334a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 2136739,
"upload_time": "2025-07-09T09:11:12",
"upload_time_iso_8601": "2025-07-09T09:11:12.017702Z",
"url": "https://files.pythonhosted.org/packages/6a/30/8fca001c129e460aafb235578becaa344c8fcd4d85475084520064269f2e/cordra_mcp-1.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-09 09:11:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dnlbauer",
"github_project": "cordra-mcp",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cordra-mcp"
}