MarkLogic MCP Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Enables document querying using MarkLogic's CTS query capabilities with pagination support for filtering collections and content

  • Provides TypeScript interfaces and client libraries for interacting with MarkLogic document operations programmatically

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

-
security - not tested
A
license - permissive license
-
quality - not tested

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

  1. Create Document
    1. Installation
      1. Configuration
        1. Usage
          1. Available Tools
        2. Development
          1. Setup
          2. Running Tests
          3. MarkLogic Setup
        3. License
          ID: mezrylp34m