LimaCharlie MCP

LimaCharlie MCP

A local MCP server for the LimaCharlie security platform that provides investigation, administration, and content-review workflows via a broad read-only tool surface with explicit organization scoping and audit logging.

Category
Visit Server

README

Geoff's LimaCharlie MCP

A local MCP for LimaCharlie setup, administration, investigations, and tuning.

This is an alternative to the LimaCharlie hosted MCP. It uses LimaCharlie API surfaces directly, requires explicit scope for data, records a local audit line for each tool call, and can start adding value even with just read-only access.

Why?

Doesn't LimaCharlie already have an MCP? Yes.

Is something wrong with the LimaCharlie MCP? Nope.

Then... why? I love LimaCharlie, I had some free time, and wanted something that made LimaCharlie more accessible to people who dont live in the dark realm of EDR internals.

The official LimaCharlie docs describe:

  • a hosted HTTP MCP endpoint at https://mcp.limacharlie.io/mcp,
  • OAuth, JWT, and org API key authentication options,
  • CLI and SDK helper surfaces layered on top of the same APIs.

This server is different: it runs locally over stdio, exchanges an org API key for short-lived LimaCharlie JWTs, refreshes those JWTs automatically, and calls the APIs directly. That avoids shelling out to the CLI and keeps the MCP implementation small and reviewable.

Install From Geoff's Plugins

The easiest agent-facing install path is the geoffs-plugins marketplace:

/plugin marketplace add geoffbelknap/geoffs-plugins
/plugin install limacharlie-mcp@geoffs-plugins

The plugin handles running the MCP server. Configure auth once before calling LimaCharlie tools.

By default, setup uses a managed local Vault so the long-lived LimaCharlie API key is not accidentally stored in chat history, .env files, MCP client configuration, or audit logs. The MCP uses that protected key to mint short-lived LimaCharlie JWTs when tools need API access.

First-Time Auth Setup

You need two values from LimaCharlie: an organization ID and a temporary bootstrap API key.

  1. Open LimaCharlie, login, and choose your organization.
  2. Copy the org ID from the URL: app.limacharlie.io/orgs/<org-id>/....
  3. Open a terminal on the host running your MCP, swap in your org ID where it says paste-your-org-id-here, and run this:
uvx --from git+https://github.com/geoffbelknap/limacharlie-mcp \
  limacharlie-mcp-configure \
  --oid "paste-your-org-id-here" \
  --provision-runtime-key
  1. The command will print a temporary bootstrap key name and stop at a hidden LimaCharlie API key secret prompt. Leave it waiting there.

  2. Go back to your browser and head to Organization Settings -> Access Management -> REST API.

  3. Click Create API Key, name it exactly what the command printed, and give it only:

    org.get
    apikey.ctrl
    

    The setup command uses this temporary key to create one dedicated runtime key named limacharlie-mcp-runtime, stores that runtime key in local Vault, and verifies it. It does not print either secret.

    Don't bother adding live_stream.ctrl; this MCP does not expose live firehose or streaming telemetry tools. Spraying high pressure random telemetry at an AI is great for burning tokens, but it ain't going to make you more secure.

  4. Create your bootstrap key and copy the secret from the LimaCharlie dashboard.

  5. Switch back to the terminal and paste the secret into the hidden prompt. It will not end up in your shell history.

  6. After setup verifies the runtime key, delete the printed bootstrap key from LimaCharlie. The runtime key is already stored in Vault.

Then start a new chat with your favorite AI tool, with the plugin enabled, and ask:

Check my LimaCharlie MCP auth status.

The agent should confirm credentials are configured without showing secrets.

For screenshots, permissions, user API key mode, advanced deployment, and troubleshooting, see Onboarding And Auth.

What You Can Ask It To Do

Start with one of these:

  • "Check my LimaCharlie MCP auth status."
  • "Show me which LimaCharlie MCP profile and tools are available."
  • "Review my LimaCharlie org posture."
  • "List my LimaCharlie sensors."
  • "Triage this LimaCharlie detection."
  • "Help me tune noisy LimaCharlie detections."

The MCP is split into focused profiles so normal agent sessions do not need to load every tool at once:

Profile Intended use
core Auth, org discovery, runtime status, schemas, ontology, and downloads.
fleet Sensor onboarding, installation keys, tags, online state, and fleet maintenance.
admin Organizations, users, groups, API keys, billing, outputs, extensions, and org configuration.
content D&R, false positives, YARA, Hive content, lookups, playbooks, SOPs, and content governance.
detect Bounded detection triage, events, cases, IOC lookups, audit, search, artifacts, and jobs.
contain Endpoint containment, response tasking, reliable tasks, job cancellation, and supporting evidence.
evict Response tasking plus content/YARA workflows used to remove adversary footholds.
recover Post-incident recovery verification and restoration previews.
review Read-only posture review, tuning, content coverage, case backlog, and access hygiene.

Ask the agent to call lc_tool_catalog when you want the current profile's exact tool list.

Safety Model

This MCP is meant to help an agent work carefully, not turn LimaCharlie into an unbounded data pump.

  • Tools use bounded reads with explicit org scope, limits, cursors, selectors, or time windows.
  • Response and administration changes use preview/confirm flows.
  • API keys, JWTs, Vault tokens, and secret values are not returned in tool responses or audit excerpts.
  • Live telemetry streaming, spout, and firehose surfaces are intentionally not exposed. Use LimaCharlie outputs, storage, SIEM pipelines, or purpose-built stream processors for operational telemetry streams.

More Help

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured