mcp-omeka-s

caprowsky/mcp-omeka-s

3.2

If you are the rightful owner of mcp-omeka-s and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Drupal-Omeka S Integration MCP Server is a powerful intermediary that facilitates seamless integration between Drupal and Omeka-S REST APIs, enhancing digital collection management and content synchronization.

Drupal-Omeka S Integration MCP Server

A powerful Model Context Protocol (MCP) server that enables seamless integration between Drupal and Omeka-S REST APIs. This integration bridge opens up new possibilities for cultural heritage institutions and digital libraries by combining:

  • Drupal's powerful content management and website building capabilities
  • Omeka-S's specialized digital collection management features

This MCP server acts as a sophisticated intermediary between Drupal and Omeka-S's REST API, enabling:

  • Unified content management across both platforms
  • Synchronized digital asset management
  • Streamlined workflow for cultural heritage data
  • Enhanced metadata handling and preservation

Requirements

  • Node.js (v14 or higher)
  • npm or yarn

Installation

  1. Clone or copy this folder into your project
  2. Install dependencies:
cd mcp-omeka-s
npm install
  1. Configure environment variables:
    • Copy or rename the .env file if needed
    • Update environment variables according to your needs

Configuration

Edit the .env file with the appropriate parameters:

# MCP Server Configuration
PORT=3000

# Omeka-S API Configuration
OMEKA_API_URL=your_api_rest_omeka_s_url
OMEKA_KEY_IDENTITY=your_identity_key
OMEKA_KEY_CREDENTIAL=your_credential_key

# Drupal Configuration
DRUPAL_URL=http://localhost:8000

# Logging Configuration
LOG_LEVEL=info

Starting the Server

For development mode with hot-reloading:

npm run dev

For production deployment:

npm start

API Usage

Once running, the server exposes several endpoints that facilitate seamless communication between Drupal and Omeka-S:

  • GET /api/omeka/resources/:resourceType - Retrieve all resources of a specific type
  • GET /api/omeka/resources/:resourceType/:id - Fetch a single resource
  • POST /api/omeka/resources/:resourceType - Create a new resource
  • PUT /api/omeka/resources/:resourceType/:id - Update an existing resource
  • DELETE /api/omeka/resources/:resourceType/:id - Remove a resource

API Documentation

Interactive API documentation is available at:

http://localhost:3000/api-docs

Drupal Integration

To integrate this MCP service into your Drupal module, utilize the drupal/http_client module to make requests to the MCP server. This enables seamless content synchronization between your Drupal site and Omeka-S collections.

Example Drupal implementation:

$client = \Drupal::httpClient();
$response = $client->get('http://localhost:3000/api/omeka/resources/items');
$items = json_decode($response->getBody(), TRUE);

Integration Benefits

  1. Unified Content Management: Manage digital collections in Omeka-S while presenting them through Drupal's powerful front-end
  2. Enhanced Metadata Handling: Leverage Omeka-S's robust metadata standards while utilizing Drupal's content workflows
  3. Flexible Display Options: Use Drupal's theming system to present Omeka-S collections in various ways
  4. Improved User Experience: Provide seamless access to digital collections within your Drupal website

Logging

Server logs are available in the logs/ directory. These logs help track integration activities and troubleshoot any synchronization issues between Drupal and Omeka-S.