Skip to main content
Glama
dstreefkerk

ms-sentinel-mcp-server

by dstreefkerk

sentinel_connectors_list

Retrieve a list of data connectors to monitor and manage security data sources in Microsoft Sentinel.

Instructions

List data connectors

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kwargsYes

Implementation Reference

  • The SentinelConnectorsListTool class provides the core implementation of the 'sentinel_connectors_list' tool, including metadata (name, description) and the 'run' method that fetches and formats the list of Sentinel data connectors using the Azure SecurityInsights API.
    class SentinelConnectorsListTool(MCPToolBase):
        """
        MCP tool for listing Sentinel data connectors.
    
        This tool supports both MCP server context (using ctx.request_context) and
        direct invocation for integration tests.
        If ctx.request_context is not present, Azure credentials and context are
        loaded from environment variables, as required by project architecture guidelines.
        """
    
        name = "sentinel_connectors_list"
        description = "List data connectors"
    
        async def run(self, ctx: Context, **kwargs):
            """List available Sentinel data connectors in the workspace.
    
            Args:
                ctx (Context): The MCP server or test context.
                **kwargs: Additional keyword arguments (unused).
            Returns:
                dict: Result containing connector list or error information.
            """
            logger = self.logger
            workspace_name, resource_group, subscription_id = self.get_azure_context(ctx)
            if not (workspace_name and resource_group and subscription_id):
                logger.error("Missing Azure context for listing data connectors.")
                return {"error": "Missing Azure context for listing data connectors."}
            try:
                client = self.get_securityinsight_client(subscription_id)
                connectors = client.data_connectors.list(
                    resource_group_name=resource_group,
                    workspace_name=workspace_name,
                )
                connector_list = list(connectors)
                result = []
                for c in connector_list:
                    connector_type = getattr(c, "kind", "Unknown")
                    result.append(
                        {
                            "name": getattr(c, "name", None),
                            "kind": connector_type,
                            "id": getattr(c, "id", None),
                            "etag": getattr(c, "etag", None),
                            "type": getattr(c, "type", None),
                        }
                    )
                return {
                    "count": len(result),
                    "connectors": result,
                    "note": (
                        "⚠️ Connector list may be incomplete. Built-in and gallery-deployed "
                        "connectors are not included due to Azure API limitations. "
                        "Manual verification recommended."
                    ),
                }
            except Exception as e:
                logger.error("Error listing data connectors: %s", e)
                return {"error": "Error listing data connectors: %s" % str(e)}
  • The 'register_tools' function registers the SentinelConnectorsListTool (sentinel_connectors_list) with the MCP server instance.
    def register_tools(mcp):
        """Register all data connector tools with the MCP server.
    
        Args:
            mcp: The MCP server instance.
        """
        SentinelConnectorsListTool.register(mcp)
        SentinelConnectorsGetTool.register(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/dstreefkerk/ms-sentinel-mcp-server'

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