cordra-mcp


Namecordra-mcp JSON
Version 1.2.0 PyPI version JSON
download
home_pageNone
SummaryMCP server for Cordra digital object repository
upload_time2025-07-09 09:11:12
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseMIT
keywords mcp agent-coding ai cordra digital-repository model-context-protocol
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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.

![Example](example.gif)

## 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![Example](example.gif)\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"
}
        
Elapsed time: 1.40326s