Skip to main content
Glama
cr7258

Elasticsearch MCP Server

get_document

Retrieve a specific document from an Elasticsearch index using its unique ID to access stored data.

Instructions

Get a document by ID. Args: index: Name of the index id: Document ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
indexYes
idYes

Implementation Reference

  • The MCP tool handler for 'get_document'. It retrieves a document from the specified index by ID using the search client.
    @mcp.tool() def get_document(index: str, id: str) -> Dict: """ Get a document by ID. Args: index: Name of the index id: Document ID """ return self.search_client.get_document(index=index, id=id)
  • The underlying helper method in DocumentClient that performs the actual document retrieval using the base client.
    def get_document(self, index: str, id: str) -> Dict: """Get a document by ID.""" return self.client.get(index=index, id=id)
  • src/server.py:38-53 (registration)
    Top-level registration point where DocumentTools is included in the list of tool classes passed to ToolsRegister.register_all_tools.
    def _register_tools(self): """Register all MCP tools.""" # Create a tools register register = ToolsRegister(self.logger, self.search_client, self.mcp) # Define all tool classes to register tool_classes = [ IndexTools, DocumentTools, ClusterTools, AliasTools, DataStreamTools, GeneralTools, ] # Register all tools register.register_all_tools(tool_classes)
  • Logic in ToolsRegister.register_all_tools that instantiates each tool class (including DocumentTools) and registers their tools via with_exception_handling, which calls register_tools.
    for tool_class in tool_classes: self.logger.info(f"Registering tools from {tool_class.__name__}") tool_instance = tool_class(self.search_client) # Set logger and client attributes tool_instance.logger = self.logger tool_instance.search_client = self.search_client # Check if risk management is enabled (high-risk operations are disabled) if risk_manager.high_risk_ops_disabled: # Add risk manager attributes for filtering tool_instance.risk_manager = risk_manager tool_instance.tool_class_name = tool_class.__name__ # Register tools with risk filtering self._register_with_risk_filter(tool_instance) else: # Register tools with just exception handling (original way) with_exception_handling(tool_instance, self.mcp)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cr7258/elasticsearch-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server