does-it-install?

← All servers

io.github.thomasxm/crowdsentinel-mcp-server

AI threat hunting & incident response for Elasticsearch/OpenSearch with endpoint & network forensics

io.github.thomasxm/crowdsentinel-mcp-server · Repository · version 0.6.0 · 206 stars · listed from registry

Install

The sweep installs into a clean prefix, but this is the command a user would run:

uvx crowdsentinel-mcp-server

Results by platform

Linux

MCP handshake failed2026-08-16 · probed over pypi

1 recorded run, oldest first.

handshake failed: MCP error -32000: Connection closed
transport: Unexpected token '', "02:54:"... is not valid JSON
Unexpected token '', "02:54:"... is not valid JSON
Unexpected token '', "02:54:"... is not valid JSON
Unexpected token '', "02:54:"... is not valid JSON
--- stderr (tail) ---
…nner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/urllib3/connection.py", line 219, in _new_conn
    raise NewConnectionError(
        self, f"Failed to establish a new connection: {e}"
    ) from e
urllib3.exceptions.NewConnectionError: HTTPSConnection(host='localhost', port=9200): Failed to establish a new connection: [Errno 111] Connection refused

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/bin/crowdsentinel-mcp-server", line 12, in <module>
    sys.exit(elasticsearch_mcp_server())
             ~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/src/server.py", line 401, in elasticsearch_mcp_server
    run_search_server(
    ~~~~~~~~~~~~~~~~~^
        engine_type="elasticsearch", transport=args.transport, host=args.host, port=args.port, path=args.path
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/src/server.py", line 335, in run_search_server
    server = SearchMCPServer(engine_type=engine_type)
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/src/server.py", line 76, in __init__
    self.search_client = create_search_client(self.engine_type)
                         ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/src/clients/__init__.py", line 149, in create_search_client
    client.client.info(request_timeout=5)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/elasticsearch/_sync/client/utils.py", line 455, in wrapped
    return api(*args, **kwargs)
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/elasticsearch/_sync/client/__init__.py", line 3042, in info
    return self.perform_request(  # type: ignore[return-value]
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        "GET",
        ^^^^^^
    ...<4 lines>...
        path_parts=__path_parts,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/elasticsearch/_sync/client/_base.py", line 271, in perform_request
    response = self._perform_request(
        method,
    ...<4 lines>...
        otel_span=otel_span,
    )
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/elasticsearch/_sync/client/_base.py", line 316, in _perform_request
    meta, resp_body = self.transport.perform_request(
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        method,
        ^^^^^^^
    ...<8 lines>...
        otel_span=otel_span,
        ^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/elastic_transport/_transport.py", line 342, in perform_request
    resp = node.perform_request(
        method,
    ...<3 lines>...
        request_timeout=request_timeout,
    )
  File "/home/runner/.cache/uv/archive-v0/mTY3RMbq1NHhzfug/lib/python3.13/site-packages/elastic_transport/_node/_http_urllib3.py", line 202, in perform_request
    raise err from e
elastic_transport.ConnectionError: Connection error caused by: ConnectionError(Connection error caused by: NewConnectionError(HTTPSConnection(host='localhost', port=9200): Failed to establish a new connection: [Errno 111] Connection refused))

macOS

MCP handshake failed2026-08-16 · probed over pypi

1 recorded run, oldest first.

handshake failed: MCP error -32000: Connection closed
--- stderr (tail) ---
…Compiling python3-dll-a v0.2.13
         Compiling once_cell v1.19.0
         Compiling stable_deref_trait v1.2.0
         Compiling autocfg v1.3.0
         Compiling litemap v0.7.3
         Compiling writeable v0.5.5
         Compiling heck v0.5.0
         Compiling libc v0.2.155
         Compiling num-traits v0.2.19
         Compiling icu_locid_transform_data v1.5.0
         Compiling version_check v0.9.5
         Compiling pyo3-build-config v0.24.1
         Compiling quote v1.0.36
         Compiling syn v2.0.82
         Compiling icu_properties_data v1.5.0
         Compiling rustversion v1.0.17
         Compiling smallvec v1.14.0
         Compiling pyo3-macros-backend v0.24.1
         Compiling pyo3-ffi v0.24.1
      error: failed to run custom build command for `pyo3-ffi v0.24.1`

      Caused by:
        process didn't exit successfully:
      `/Users/runner/.cache/uv/sdists-v9/pypi/pydantic-core/2.33.2/2f7rVIA27UIhIfEU/src/target/release/build/pyo3-ffi-c6dfd9c3f3b0d5da/build-script-build`
      (exit status: 1)
        --- stdout
        cargo:rustc-check-cfg=cfg(Py_LIMITED_API)
        cargo:rustc-check-cfg=cfg(Py_GIL_DISABLED)
        cargo:rustc-check-cfg=cfg(PyPy)
        cargo:rustc-check-cfg=cfg(GraalPy)
        cargo:rustc-check-cfg=cfg(py_sys_config, values("Py_DEBUG",
      "Py_REF_DEBUG", "Py_TRACE_REFS", "COUNT_ALLOCS"))
        cargo:rustc-check-cfg=cfg(pyo3_disable_reference_pool)
        cargo:rustc-check-cfg=cfg(pyo3_leak_on_drop_without_reference_pool)
        cargo:rustc-check-cfg=cfg(Py_3_7)
        cargo:rustc-check-cfg=cfg(Py_3_8)
        cargo:rustc-check-cfg=cfg(Py_3_9)
        cargo:rustc-check-cfg=cfg(Py_3_10)
        cargo:rustc-check-cfg=cfg(Py_3_11)
        cargo:rustc-check-cfg=cfg(Py_3_12)
        cargo:rustc-check-cfg=cfg(Py_3_13)
        cargo:rustc-check-cfg=cfg(Py_3_14)
        cargo:rerun-if-env-changed=PYO3_CROSS
        cargo:rerun-if-env-changed=PYO3_CROSS_LIB_DIR
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_VERSION
        cargo:rerun-if-env-changed=PYO3_CROSS_PYTHON_IMPLEMENTATION
        cargo:rerun-if-env-changed=PYO3_PRINT_CONFIG
        cargo:rerun-if-env-changed=PYO3_USE_ABI3_FORWARD_COMPATIBILITY

        --- stderr
        error: the configured Python interpreter version (3.14) is newer than
      PyO3's maximum supported version (3.13)
        = help: please check if an updated version of PyO3 is available.
      Current version: 0.24.1
        = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this
      check and build anyway using the stable ABI
      warning: build failed, waiting for other jobs to finish...
      💥 maturin failed
        Caused by: Failed to build a native library through cargo
        Caused by: Cargo build finished with "exit status: 101": `env -u
      CARGO MACOSX_DEPLOYMENT_TARGET="11.0" PYO3_BUILD_EXTENSION_MODULE="1"
      PYO3_ENVIRONMENT_SIGNATURE="cpython-3.14-64bit"
      PYO3_PYTHON="/Users/runner/.cache/uv/builds-v0/.tmpOyTy2L/bin/python"
      PYTHON_SYS_EXECUTABLE="/Users/runner/.cache/uv/builds-v0/.tmpOyTy2L/bin/python"
      "cargo" "rustc" "--profile" "release" "--features"
      "pyo3/extension-module" "--message-format"
      "json-render-diagnostics" "--manifest-path"
      "/Users/runner/.cache/uv/sdists-v9/pypi/pydantic-core/2.33.2/2f7rVIA27UIhIfEU/src/Cargo.toml"
      "--lib" "--crate-type" "cdylib" "--" "-C"
      "link-args=-Wl,-install_name,@rpath/pydantic_core._pydantic_core.cpython-314-darwin.so"`
      Error: command ['maturin', 'pep517', 'build-wheel', '-i',
      '/Users/runner/.cache/uv/builds-v0/.tmpOyTy2L/bin/python',
      '--compatibility', 'off'] returned non-zero exit status 1


hint: `pydantic-core` (v2.33.2) was included because `crowdsentinel-mcp-server` (v0.6.0) depends on `pydantic` (v2.11.10) which depends on `pydantic-core`
hint: Build failures usually indicate a problem with the package or the build environment

Windows

MCP handshake failed2026-08-16 · probed over pypi

1 recorded run, oldest first.

handshake failed: MCP error -32000: Connection closed
transport: Unexpected token '', "04:11:"... is not valid JSON
Unexpected token '', "04:11:"... is not valid JSON
Unexpected token '', "04:11:"... is not valid JSON
Unexpected token '', "04:11:"... is not valid JSON
--- stderr (tail) ---
… 45, in connect
    super().connect()
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\urllib3\connection.py", line 759, in connect
    self.sock = sock = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\urllib3\connection.py", line 219, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: HTTPSConnection(host='localhost', port=9200): Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Scripts\crowdsentinel-mcp-server.exe\__main__.py", line 10, in <module>
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\src\server.py", line 401, in elasticsearch_mcp_server
    run_search_server(
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\src\server.py", line 335, in run_search_server
    server = SearchMCPServer(engine_type=engine_type)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\src\server.py", line 76, in __init__
    self.search_client = create_search_client(self.engine_type)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\src\clients\__init__.py", line 149, in create_search_client
    client.client.info(request_timeout=5)
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\elasticsearch\_sync\client\utils.py", line 455, in wrapped
    return api(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\elasticsearch\_sync\client\__init__.py", line 3042, in info
    return self.perform_request(  # type: ignore[return-value]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\elasticsearch\_sync\client\_base.py", line 271, in perform_request
    response = self._perform_request(
               ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\elasticsearch\_sync\client\_base.py", line 316, in _perform_request
    meta, resp_body = self.transport.perform_request(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\elastic_transport\_transport.py", line 342, in perform_request
    resp = node.perform_request(
           ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\runneradmin\AppData\Local\uv\cache\archive-v0\qwj3uM9xs1d6j6_t\Lib\site-packages\elastic_transport\_node\_http_urllib3.py", line 202, in perform_request
    raise err from e
elastic_transport.ConnectionError: Connection error caused by: ConnectionError(Connection error caused by: NewConnectionError(HTTPSConnection(host='localhost', port=9200): Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it))

Badge

Paste this into the project README to show the current result:

[![does it install](https://img.shields.io/endpoint?url=https://doesitinstall.com/badge/io.github.thomasxm__crowdsentinel-mcp-server.json)](https://doesitinstall.com/s/io.github.thomasxm__crowdsentinel-mcp-server.html)