marklogic mcp

Local 2025-09-01 00:15:20 0

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


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

  2. Create a new document in MarkLogic

  3. Parameters:

    • uri: Document URI (required)
    • content: Document content as JSON (required)
    • collections: List of collections to add the document to (optional)
  4. read-document

  5. Read a document from MarkLogic

  6. Parameters:

    • uri: Document URI (required)
  7. delete-document

  8. Delete a document from MarkLogic

  9. Parameters:

    • uri: Document URI (required)
  10. search-documents

  11. Search for documents in MarkLogic
  12. 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:
  4. Go to Admin Interface (usually http://localhost:8001)
  5. Create role python-docs-role with:
    • Roles: rest-extension-user, rest-reader, rest-writer
    • Privileges: xdbc:eval, xdbc:invoke, xdmp:eval-in
  6. Create user python-user with:
    • Password: pyth0n
    • Role: python-docs-role

License

MIT