JUHE API Marketplace
karthiknarayankotha avatar
MCP Server

MarkLogic MCP Server

A Model Context Protocol server for MarkLogic that enables CRUD operations and document querying capabilities through a client interface.

0
GitHub Stars
8/18/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

MCP MarkLogic Server

This is a Model Context Protocol (MCP) server implementation for MarkLogic, allowing you to interact with a MarkLogic database through MCP tools.

  1. The server provides the following operations:

Create Document

  • Create documents in MarkLogic with optional collections
  • Read documents by URI
  • Delete documents by URI
  • Search documents with query strings and optional collection filters

Installation

pip install mcp-marklogic

Configuration

The server requires the following environment variables:

MARKLOGIC_HOST=localhost
MARKLOGIC_PORT=8000
MARKLOGIC_USERNAME=admin
MARKLOGIC_PASSWORD=admin

Usage

Once installed and configured, you can start the server:

mcp-marklogic

Available Tools

  1. create-document

    • Create a new document in MarkLogic
    • Parameters:
      • uri: Document URI (required)
      • content: Document content as JSON (required)
      • collections: List of collections to add the document to (optional)
  2. read-document

    • Read a document from MarkLogic
    • Parameters:
      • uri: Document URI (required)
  3. delete-document

    • Delete a document from MarkLogic
    • Parameters:
      • uri: Document URI (required)
  4. search-documents

    • Search for documents in MarkLogic
    • Parameters:
      • query: Search query string (required)
      • collections: List of collections to search in (optional)

Development

Setup

  1. Clone the repository
  2. Create a virtual environment and activate it
  3. Install dependencies:
    pip install -e .
    

Running Tests

pytest tests/

MarkLogic Setup

  1. Ensure you have MarkLogic Server installed and running
  2. Create a REST API instance on port 8000 if not already present
  3. Create a user with appropriate permissions:
    • Go to Admin Interface (usually http://localhost:8001)
    • Create role python-docs-role with:
      • Roles: rest-extension-user, rest-reader, rest-writer
      • Privileges: xdbc:eval, xdbc:invoke, xdmp:eval-in
    • Create user python-user with:
      • Password: pyth0n
      • Role: python-docs-role

License

MIT

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source