← Elasticsearch MCP Server

Elasticsearch MCP Server 2.1.3

pypi · elasticsearch-mcp-server · current release

20
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-09-04T08:48:20.921Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.

Server capabilities
{
  "experimental": {},
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "tools": {
    "listChanged": true
  }
}

Tools 20

ToolCategoryAnnotationsRisk
analyze_textAnalyze text to see how it would be tokenized. Use this tool to understand how Elasticsearch/OpenSearch tokenizes and transforms text using analyzers. This is essential for debugging search queries and understanding why certain documents match or don't match. Args: text: The text to analyze index: Index name to use its configured analyzer. If not specified, uses cluster-level analysis with built-in analyzers only. analyzer: Name of the analyzer to use (e.g., 'standard', 'korean', 'korean_search'). If index is specified, you can use custom analyzers defined in that index. tokenizer: Tokenizer to use for custom analysis chain. Cannot be used together with 'analyzer'. filter: List of token filters to apply (e.g., ['lowercase', 'stop']). Used with 'tokenizer' for custom analysis chain. char_filter: List of character filters to apply before tokenization. Used with 'tokenizer' for custom analysis chain. explain: If True, returns detailed information about each token including all token attributes and filter transformations. Useful for debugging complex analyzer chains. attributes: List of token attributes to return when explain=True (e.g., ['keyword', 'type']). If not specified, all attributes are returned. cluster: Optional cluster name. Uses the default cluster if omitted. Returns: Dict containing 'tokens' array. Each token has 'token', 'start_offset', 'end_offset', 'type', and 'position' fields. With explain=True, returns detailed 'detail' object showing each filter's effect.
Input schema
{
  "properties": {
    "text": {
      "type": "string"
    },
    "index": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "analyzer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "tokenizer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "filter": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "char_filter": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "explain": {
      "default": false,
      "type": "boolean"
    },
    "attributes": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "text"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
create_data_streamCreate a new data stream. This creates a new data stream with the specified name. The data stream must have a matching index template before creation. Args: name: Name of the data stream to create cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "name": {
      "type": "string"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "name"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
create_indexCreate a new index. Args: index: Name of the index body: Optional index configuration including mappings and settings cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "body": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
delete_aliasDelete an alias for a specific index. Args: index: Name of the index name: Name of the alias cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index",
    "name"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
delete_by_queryDeletes documents matching the provided query. Args: index: Name of the index body: Query to match documents for deletion cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "body": {
      "additionalProperties": true,
      "type": "object"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index",
    "body"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
delete_data_streamDelete one or more data streams. Permanently deletes the specified data streams and all their backing indices. Args: name: Name of the data stream(s) to delete. Can be a comma-separated list or wildcard pattern. cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "name": {
      "type": "string"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "name"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
delete_documentDelete a document by ID. Args: index: Name of the index id: Document ID cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index",
    "id"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
delete_indexDelete an index. Args: index: Name of the index cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
general_api_requestPerform a general HTTP API request. Use this tool for any Elasticsearch/OpenSearch API that does not have a dedicated tool. Args: method: HTTP method (GET, POST, PUT, DELETE, etc.) path: API endpoint path params: Query parameters body: Request body cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "method": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "params": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "body": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "method",
    "path"
  ],
  "type": "object"
}
— · —
get_aliasGet alias information for a specific index. Args: index: Name of the index cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
get_cluster_healthReturns basic information about the health of the cluster. Args: cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
get_cluster_statsReturns high-level overview of cluster statistics. Args: cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
get_data_streamGet information about one or more data streams. Retrieves configuration, mappings, settings, and other information about the specified data streams. Args: name: Name of the data stream(s) to retrieve. Can be a comma-separated list or wildcard pattern. If not provided, retrieves all data streams. cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
get_documentGet a document by ID. Args: index: Name of the index id: Document ID cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index",
    "id"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
get_indexReturns information (mappings, settings, aliases) about one or more indices. Args: index: Name of the index cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
index_documentCreates or updates a document in the index. Args: index: Name of the index document: Document data id: Optional document ID cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "document": {
      "additionalProperties": true,
      "type": "object"
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index",
    "document"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
list_aliasesList all aliases. Args: cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "type": "object"
}
Output schema
{
  "properties": {
    "result": {
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "type": "object",
  "x-fastmcp-wrap-result": true
}
— · —
list_indicesList all indices. Args: cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "type": "object"
}
Output schema
{
  "properties": {
    "result": {
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "type": "object",
  "x-fastmcp-wrap-result": true
}
— · —
put_aliasCreate or update an alias for a specific index. Args: index: Name of the index name: Name of the alias body: Alias configuration cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "body": {
      "additionalProperties": true,
      "type": "object"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index",
    "name",
    "body"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —
search_documentsSearch for documents. Args: index: Name of the index body: Search query cluster: Optional cluster name. Uses the default cluster if omitted.
Input schema
{
  "properties": {
    "index": {
      "type": "string"
    },
    "body": {
      "additionalProperties": true,
      "type": "object"
    },
    "cluster": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "index",
    "body"
  ],
  "type": "object"
}
Output schema
{
  "additionalProperties": true,
  "type": "object"
}
— · —

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.