icon for mcp server

MarkLogic Document Manager

STDIO

Model Context Protocol server implementation for MarkLogic database interaction.

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

Be the First to Experience MCP Now