caprowsky/mcp-omeka-s
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
- Clone or copy this folder into your project
- Install dependencies:
cd mcp-omeka-s
npm install
- Configure environment variables:
- Copy or rename the
.env
file if needed - Update environment variables according to your needs
- Copy or rename the
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 typeGET /api/omeka/resources/:resourceType/:id
- Fetch a single resourcePOST /api/omeka/resources/:resourceType
- Create a new resourcePUT /api/omeka/resources/:resourceType/:id
- Update an existing resourceDELETE /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
- Unified Content Management: Manage digital collections in Omeka-S while presenting them through Drupal's powerful front-end
- Enhanced Metadata Handling: Leverage Omeka-S's robust metadata standards while utilizing Drupal's content workflows
- Flexible Display Options: Use Drupal's theming system to present Omeka-S collections in various ways
- 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.