Lumu MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Lumu MCP ServerShow me open security incidents from the last 30 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🛡️ Lumu MCP Server
Supercharge Claude Desktop with Lumu Defender security incident analysis
An MCP (Model Context Protocol) server that seamlessly integrates Claude Desktop with the Lumu Defender API, enabling AI-powered security incident analysis and management.
✨ Features
🔍 Incident Retrieval: Get security incidents with advanced filtering
🎯 Smart Analysis: AI-powered incident analysis through Claude
📊 Full Management: Mark as read, mute, unmute, and close incidents
🖥️ Endpoint Insights: Analyze affected endpoints and network contacts
📈 Real-time Monitoring: Track incident updates and activity
🔐 Secure Integration: Environment-based API key management
⚡ Easy Setup: One-command installation with pip
Related MCP server: Pentest Tools MCP Server
🚀 Quick Start
1. Install
pip install lumu-mcp-server2. Configure Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"lumu-mcp-server": {
"command": "lumu-mcp-server",
"env": {
"LUMU_DEFENDER_API_KEY": "your-api-key-here"
}
}
}
}3. Start Using
Ask Claude: "Get security incidents from Lumu Defender"
💡 Need help finding your config file? See Configuration Locations below.
🔧 Configuration
Get Your Lumu Defender API Key
Log in to your Lumu Defender account
Navigate to Settings → API Keys
Generate or copy your API key
Configuration File Locations
🍎 macOS:
~/Library/Application Support/Claude/claude_desktop_config.json🪟 Windows:
%APPDATA%\Claude\claude_desktop_config.json🐧 Linux:
~/.config/Claude/claude_desktop_config.json
Configuration Options
Standard Configuration (Recommended)
{
"mcpServers": {
"lumu-mcp-server": {
"command": "lumu-mcp-server",
"env": {
"LUMU_DEFENDER_API_KEY": "your-api-key-here"
}
}
}
}Alternative Configuration
If the command isn't found, use the Python module directly:
{
"mcpServers": {
"lumu-mcp-server": {
"command": "python",
"args": ["-m", "lumu_mcp_server.server"],
"env": {
"LUMU_DEFENDER_API_KEY": "your-api-key-here"
}
}
}
}Activate the Integration
Restart Claude Desktop completely
Look for the 🔌 MCP icon in Claude Desktop
Test with: "Check the health of the lumu-mcp-server"
💬 Usage Examples
Once configured, you can interact with Lumu Defender through natural language:
🩺 Health & Status
"Check the health of the lumu-mcp-server"
"Is the Lumu integration working?"
🔍 Incident Discovery
"Get security incidents from Lumu Defender"
"Show me open security incidents from the last 30 days"
"Find all C2C and Malware incidents"
"Get incidents with status 'open' or 'muted'"
📋 Incident Analysis
"Get details for incident [UUID]"
"Show me the full information about incident abc-123-def"
"Get the context for incident [UUID]"
"Show me related incidents and affected assets"
📝 Incident Management
"Add a comment to incident [UUID]: 'Investigating with network team'"
"Mark incident [UUID] as read"
"Mute incident [UUID] with comment 'False positive'"
"Close incident [UUID] with comment 'Threat resolved'"
🖥️ Network Analysis
"Get endpoints for incident [UUID]"
"Show me which endpoints were affected by this incident"
"Analyze the network impact of incident abc-123-def"
📊 Real-time Monitoring
"Get incident updates from the last 10 minutes"
"Show me what happened in the last hour with incidents"
"Check for recent incident activity"
🔄 Advanced Workflows
"Get all open Malware incidents, then show details for the most recent one"
"Find critical incidents that are still open and summarize their impact"
"List all muted C2C incidents and help me decide which to unmute"
"Get incident endpoints and mark the incident as read when done"
Available Tools
1. health_check
Returns the server status and API key configuration status.
2. get_incidents
Retrieves security incidents with optional filters and pagination support.
Parameters:
from_date(optional): Start date in ISO format (default: 7 days ago). Max range: 90 days unlessfetch_allis true.to_date(optional): End date in ISO format (default: now)status(optional): Array of statuses ["open", "muted", "closed"]adversary_types(optional): Array of types ["C2C", "Malware", "DGA", "Mining", "Spam", "Phishing"]labels(optional): Array of label IDspage(optional): Page number for pagination (0-indexed, default: 0)limit(optional): Number of items per page (default: 50, max: 100)fetch_all(optional): If true, automatically fetches ALL incidents with pagination. Handles large date ranges by chunking.
Examples:
# Get incidents with pagination
"Get page 2 of incidents with 20 items per page"
# Get ALL incidents for a date range
"Get all incidents from May 1-31, 2026 with fetch_all=true"
# Get all malware incidents
"Get all Malware incidents with fetch_all=true"3. get_incident_details
Get detailed information about a specific security incident.
Parameters:
incident_id(required): The UUID of the incident
Returns: Detailed incident information including status, IOCs, recommended actions, and more.
4. get_incident_context
Get context information for a specific security incident.
Parameters:
incident_id(required): The UUID of the incidenthash_type(optional): Hash type for filtering context
Returns: Context including related incidents, affected assets, threat intelligence, and timeline.
5. comment_incident
Add a comment to a specific security incident.
Parameters:
incident_id(required): The UUID of the incidentcomment(required): The comment text to add
Returns: Confirmation of the comment being added.
6. get_open_incidents
Retrieve only open security incidents.
Parameters:
adversary_types(optional): Array of types ["C2C", "Malware", "DGA", "Mining", "Spam", "Phishing"]labels(optional): Array of label IDs
Returns: List of open incidents with filtering options.
7. get_muted_incidents
Retrieve only muted security incidents.
Parameters:
adversary_types(optional): Array of types ["C2C", "Malware", "DGA", "Mining", "Spam", "Phishing"]labels(optional): Array of label IDs
Returns: List of muted incidents with filtering options.
8. get_closed_incidents
Retrieve only closed security incidents.
Parameters:
adversary_types(optional): Array of types ["C2C", "Malware", "DGA", "Mining", "Spam", "Phishing"]labels(optional): Array of label IDs
Returns: List of closed incidents with filtering options.
9. get_incident_endpoints
Retrieve endpoints and contacts for a specific security incident.
Parameters:
incident_id(required): The UUID of the incidentendpoints(optional): Filter by specific endpoint IPs or nameslabels(optional): Array of label IDs
Returns: Detailed endpoint and contact information for the incident.
10. mark_incident_as_read
Mark a security incident as read.
Parameters:
incident_id(required): The UUID of the incident to mark as read
Returns: Confirmation that the incident was marked as read.
11. mute_incident
Mute a security incident.
Parameters:
incident_id(required): The UUID of the incident to mutecomment(optional): Comment explaining why the incident was muted
Returns: Confirmation that the incident was muted.
12. unmute_incident
Unmute a security incident.
Parameters:
incident_id(required): The UUID of the incident to unmutecomment(optional): Comment explaining why the incident was unmuted
Returns: Confirmation that the incident was unmuted.
13. get_incident_updates
Get real-time updates on incident operations (alternative to WebSocket).
Parameters:
offset(optional): Starting offset for pagination (default: 0)items(optional): Number of items to return, 1-100 (default: 50)time(optional): Time window in minutes for updates (default: 5)
Returns: List of incident updates with timestamps in UTC (RFC 3339/ISO 8601 format).
14. close_incident
Close a security incident.
Parameters:
incident_id(required): The UUID of the incident to closecomment(optional): Comment explaining why the incident was closed
Returns: Confirmation that the incident was closed.
🔧 Troubleshooting
Server Not Appearing in Claude Desktop
Check Claude Desktop logs: Help → Show Logs
Verify installation:
pip list | grep lumu-mcp-serverTest command: Run
lumu-mcp-server --helpin terminalRestart Claude Desktop completely
API Key Issues
✅ Ensure API key is correctly set in
claude_desktop_config.json✅ Verify API key is valid in Lumu Defender portal
✅ Check Claude Desktop logs for authentication errors
✅ Test with: "Check the health of the lumu-mcp-server"
No Incidents Returned
📅 Date Range: Try broader date ranges (e.g., last 30 days)
🔍 Filters: Remove status/type filters to see all incidents
🔑 Permissions: Ensure API key has proper incident access
💡 Tip: Ask Claude "Get incidents from the last 30 days"
Connection Issues
🌐 Network: Verify internet connection to
defender.lumu.io🔒 Firewall: Ensure HTTPS traffic is allowed
🚀 Proxy: Configure proxy settings if needed
Need More Help?
📖 Check QUICK_START.md for simplified setup
🐛 Report issues on GitHub
💬 Ask questions in discussions
🔒 Security & Privacy
🔐 API keys stored in environment variables, never in code
🌐 HTTPS encryption for all API communications
🚫 No data storage - all data fetched in real-time from Lumu
🛡️ Error sanitization prevents sensitive information leakage
📝 Audit trail through Lumu Defender's native logging
🤝 Contributing
We welcome contributions! Please see our contribution guidelines:
Quick Development Setup
git clone https://github.com/jpyoda/lumu-mcp.git
cd lumu-mcp-server
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e .Adding New Features
API Methods: Add to
lumu_mcp_server/lumu_client.pyTool Registration: Update
handle_list_tools()inserver.pyHandler Implementation: Add to
handle_call_tool()inserver.pyTesting: Ensure functionality works with real API
📄 License
MIT License - see LICENSE file for details.
🆘 Support
Get Help
🚀 Quick Setup: QUICK_START.md
🐛 Bug Reports: GitHub Issues
💬 Questions: GitHub Discussions
📧 Lumu API Issues: Contact Lumu Support
Project Stats
Built with ❤️ for the cybersecurity community
Enhance your security operations with AI-powered incident analysis
Available Tools
14 toolsclose_incidentB
Close a security incident
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | The UUID of the incident to close | |
| comment | No | Optional comment for closing the incident |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like whether closing is reversible, required permissions, or side effects on related incidents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core action, but it could be slightly more informative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-changing tool with no output schema and no annotations, the description is too brief. It lacks information about return values, effects, and how it fits with siblings like 'get_closed_incidents'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters, so the description adds no extra meaning beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Close a security incident' clearly uses a specific verb and resource, distinguishing it from sibling tools like 'comment_incident' or 'get_open_incidents'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as prerequisites or when not to use it. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
comment_incidentB
Add a comment to a specific security incident
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | The UUID of the incident to comment on | |
| comment | Yes | The comment text to add to the incident |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral traits. It only states 'Add a comment' but does not reveal if the operation is idempotent, requires permissions, triggers notifications, or has any side effects (e.g., appending vs. replacing). The agent is left to infer safety from the action name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It is front-loaded with the verb 'Add' and immediately specifies the resource, achieving high efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 params, no output schema), the description is adequate but not complete. It lacks return value information and does not mention that the incident must exist. For a tool with no annotations, additional context about behavior would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema: both parameters are already well-described ('The UUID of the incident to comment on' and 'The comment text to add to the incident'). No format, length, or constraints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Add a comment) and the resource (specific security incident). It distinguishes from sibling tools like close_incident or get_incident_details, making its unique purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when the incident is closed or if any prerequisites exist. Sibling tools like close_incident or mute_incident suggest different contexts, but no exclusions or recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_closed_incidentsC
Retrieve closed security incidents from Lumu Defender with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| adversary_types | No | Filter by adversary types. If not specified, all types are returned | |
| labels | No | Filter by label IDs. If not specified, all labels are returned | |
| page | No | Page number for pagination (0-indexed). Default: 0 | |
| limit | No | Number of items per page (default: 50, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only mentions pagination support; does not disclose read-only nature, rate limits, or other behavioral traits. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and direct. Could be slightly restructured for clarity, but overall efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated list tool with 4 optional parameters and no output schema, the description is too minimal. Does not explain return format, ordering, or default behavior for empty results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already documented. The description adds no extra meaning beyond what schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and resource 'closed security incidents', and mentions pagination support. It distinguishes from siblings like get_open_incidents, but could specify what 'closed' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_incidents or get_open_incidents. With many sibling tools, the agent lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incident_contextB
Get context information for a specific security incident
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | The UUID of the incident to retrieve context for | |
| hash_type | No | Optional hash type for filtering context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read operation without side effects. With no annotations, it is minimally adequate but lacks details on what 'context information' includes or any potential limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. However, it could provide slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not explain what 'context information' is returned. Given the complexity of the tool (2 params, no annotations), the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds no value beyond the schema. The schema already explains both parameters sufficiently.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves context information for an incident. However, it does not differentiate from sibling tools like get_incident_details or get_incident_endpoints, which also retrieve incident-related data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_incident_details). No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incident_detailsC
Get detailed information about a specific security incident
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | The UUID of the incident to retrieve details for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as read-only nature, side effects, or required permissions. For a retrieval tool, basic transparency is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it lacks structure or additional helpful details. It is appropriately concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description is minimally complete. However, it could clarify what 'detailed information' includes to differentiate from siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for the single parameter. The description adds no additional meaning beyond what the schema already provides, achieving the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'detailed information about a specific security incident', distinguishing it from sibling tools like 'get_incidents' (list) and 'get_incident_context' (context-specific).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description lacks contextual usage hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incident_endpointsC
Retrieve endpoints and contacts for a specific security incident
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | The UUID of the incident | |
| endpoints | No | Filter by specific endpoint IPs or names | |
| labels | No | Filter by label IDs. If not specified, all labels are returned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description only says 'Retrieve', which implies a read-only operation. However, it does not disclose any behavioral traits such as pagination, rate limits, or side effects. For a read tool, the burden is lower, but minimal transparency is offered beyond the verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded with the action and resource. However, it could be slightly more informative without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool name and schema hint at the data, the description lacks detail about the return format or structure of 'endpoints and contacts'. Given no output schema and no additional context, the description is incomplete for an agent to fully understand what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description. The tool description adds no additional meaning or context beyond what the schema provides. Baseline score of 3 is appropriate as the description does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Retrieve') and the resource ('endpoints and contacts for a specific security incident'). It differentiates from sibling tools like close_incident or get_incidents, but does not explicitly distinguish from similar retrieval tools like get_incident_context or get_incident_details, leaving slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any prerequisites, limitations, or use-case hints. The description merely states the action without contextual or conditional advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incidentsC
Retrieve security incidents from Lumu Defender API with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| from_date | No | Start date in ISO format (e.g., 2024-01-01T00:00:00Z). Default: 7 days ago. Max range: 90 days unless fetch_all is true. | |
| to_date | No | End date in ISO format (e.g., 2024-01-08T00:00:00Z). Default: now | |
| status | No | Filter by incident status. If not specified, all statuses are returned | |
| adversary_types | No | Filter by adversary types. If not specified, all types are returned | |
| labels | No | Filter by label IDs. If not specified, all labels are returned | |
| page | No | Page number for pagination (0-indexed). Default: 0 | |
| limit | No | Number of items per page. Default: 50, max: 100 | |
| fetch_all | No | If true, automatically fetches ALL incidents with pagination. Handles large date ranges by chunking. Use this to get complete incident lists. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It mentions 'pagination support' but does not elaborate on key behaviors like automatic fetching via fetch_all, date range limits (90 days unless fetch_all is true), or the fact that it can return large volumes of data. The description lacks details on side effects, authentication needs, or performance implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently states the core purpose and highlights pagination support. It is front-loaded with the action and resource. While more detail could be beneficial, the brevity avoids unnecessary verbosity. However, it could be slightly longer to cover key behavioral aspects without becoming overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, no output schema, and no annotations, the description is insufficiently complete. It does not explain the return format, how pagination works in practice, or how the tool relates to its many siblings. The description should provide context about the result structure, expected data volume, and usage patterns to fully equip an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 100%, the baseline is 3. The description adds minimal value beyond the schema, only noting 'pagination support'. The schema already provides detailed descriptions for all 8 parameters, including defaults, constraints, and the fetch_all behavior. The description does not enrich parameter understanding further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'security incidents', establishing a clear purpose. However, it does not differentiate this tool from sibling tools like get_closed_incidents or get_open_incidents, which also retrieve incidents with specific filters. The description could explicitly indicate that this tool retrieves all incidents (with optional status filters) to distinguish it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its alternatives (e.g., get_closed_incidents, get_open_incidents). It does not mention conditions, prerequisites, or scenarios where this tool is preferred or should be avoided. Users are left to infer usage from the schema and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_incident_updatesB
Get real-time updates on incident operations
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Starting offset for pagination (default: 0) | |
| items | No | Number of items to return (default: 50) | |
| time | No | Time window in minutes for updates (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions 'real-time updates' but does not disclose behavior like polling, side effects, or data freshness guarantees. Minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence. It is front-loaded with the purpose, no fluff. However, it is slightly under-informative, earning a 4 instead of 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is too brief. It omits return format, pagination details, and how 'real-time' is implemented, leaving gaps for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good parameter descriptions, so baseline is 3. The description adds no extra meaning about parameters, achieving the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'incident updates', implying a live feed distinct from siblings like get_incident_details or get_incidents. The word 'real-time' adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives such as get_incident_details or get_open_incidents. Missing explicit context for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_muted_incidentsB
Retrieve muted security incidents from Lumu Defender with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| adversary_types | No | Filter by adversary types. If not specified, all types are returned | |
| labels | No | Filter by label IDs. If not specified, all labels are returned | |
| page | No | Page number for pagination (0-indexed). Default: 0 | |
| limit | No | Number of items per page (default: 50, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It only mentions pagination support, which is already implied by parameters. It does not mention read-only nature, authentication, rate limits, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the action and resource. It contains no fluff and efficiently conveys the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not describe what is returned (e.g., a list of incident objects, fields, or pagination metadata). The description is incomplete for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no meaning beyond the schema; it simply restates pagination support, which is already described in parameter schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve', the resource 'muted security incidents', and the platform 'Lumu Defender'. It distinguishes the tool from siblings like get_incidents and get_open_incidents by specifying the 'muted' status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives. It only states what it does, leaving the agent to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_open_incidentsA
Retrieve open security incidents from Lumu Defender with pagination support
| Name | Required | Description | Default |
|---|---|---|---|
| adversary_types | No | Filter by adversary types. If not specified, all types are returned | |
| labels | No | Filter by label IDs. If not specified, all labels are returned | |
| page | No | Page number for pagination (0-indexed). Default: 0 | |
| limit | No | Number of items per page (default: 50, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses it's a read operation with pagination, but does not mention authentication, rate limits, or response structure. Adequate for a simple retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the action and key resource. No unnecessary words, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not clarify the return format (e.g., list of incident objects). For pagination, it could mention metadata. Adequate but not comprehensive given the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are described. The description adds no extra meaning beyond the schema, meeting the baseline for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Retrieve' and resource 'open security incidents' with pagination support, clearly distinguishing from sibling tools like get_closed_incidents and get_muted_incidents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The sibling list implies differentiation via tool names, but no 'when to use' or 'when not to use' is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkA
Check the health status of the server
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation, but without annotations, it does not explicitly state there are no side effects. However, the nature of a health check is generally safe and non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. It contains no unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the short description is adequate. It could mention what the health check includes or returns, but it is not critically missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description does not need to add parameter meaning, and the baseline for 0 parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check' and the resource 'health status of the server'. It distinguishes from sibling tools which are all incident-related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Context signals show no sibling health tools, but the description does not explicitly state when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_incident_as_readB
Mark a security incident as read
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | The UUID of the incident to mark as read |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the action 'mark as read' without explaining side effects, irreversibility, or what 'read' means in the security incident context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence. It is appropriately concise for a simple action, though slightly underspecified for behavioral depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter, no output schema, and no annotations, the description gives the minimal purpose but lacks behavioral context needed for safe invocation by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single required parameter (incident_id). The description adds no extra meaning beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('mark') and resource ('incident as read'), clearly distinguishing from sibling tools such as close_incident, mute_incident, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., close_incident, mute_incident, or comment_incident). The AI agent has no context to decide based on the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mute_incidentB
Mute a security incident
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | The UUID of the incident to mute | |
| comment | No | Optional comment for muting the incident |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does not disclose side effects, permissions, or what muting entails (e.g., whether it silences notifications, prevents future updates, or is reversible).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. However, it sacrifices detail for brevity, which slightly lowers the score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only two parameters, the description should explain what muting does to the incident (e.g., suppresses alerts). It fails to provide that context, leaving the tool incomplete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters (incident_id and comment) with 100% coverage. The description adds no further meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Mute a security incident' clearly states the action (mute) and the resource (security incident). The sibling tool 'unmute_incident' further helps distinguish it as the opposite operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'close_incident' or when not to mute. The description implies usage only through the verb 'Mute'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unmute_incidentC
Unmute a security incident
| Name | Required | Description | Default |
|---|---|---|---|
| incident_id | Yes | The UUID of the incident to unmute | |
| comment | No | Optional comment for unmuting the incident |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks any behavioral details such as side effects, idempotency, permissions, or consequences of unmuting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single concise sentence, but it is under-specified for completeness; front-loads purpose but lacks detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and lack of output schema, the description should clarify prerequisites (e.g., incident must be muted) and related operations; it is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are documented; description adds no extra meaning beyond what schema provides, meeting baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Unmute' and the resource 'security incident', distinguishing it from the sibling 'mute_incident' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'mute_incident' or other incident tools; usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct aspect of incident management (e.g., close, comment, get details, mute) with no overlap. Even similar tools like get_incident_details and get_incident_context are clearly differentiated.
All tools follow the verb_noun pattern in snake_case (e.g., close_incident, get_open_incidents). health_check is a slight deviation but is a standard term and fits naturally.
14 tools cover the full range of incident operations without being excessive. Each tool serves a clear purpose, and the count is well-suited for a security incident management server.
The set covers retrieval, query by status, muting, closing, commenting, and health checks. Missing an explicit reopen or update incident details tool, but core workflow is complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
Unified MCP Server is a remote MCP connector for AI agents and vertical AI products that provides access to 22,000+ authorized SaaS tools across 400+ integrations and 24 categories directly inside LLMs (Claude, GPT, Gemini, Cohere). Tools operate only on explicitly authorized customer connections, enabling agents to safely read and write against live third-party systems.
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP server that provides persistent memory capabilities for Claude, offering tiered memory architecture with semantic search, memory consolidation, and integration with the Claude desktop application.3869MIT
- FlicenseNot gradedqualityFmaintenanceAn MCP server that integrates various penetration testing tools, enabling security professionals to perform reconnaissance, vulnerability scanning, and API testing through natural language commands in compatible LLM clients like Claude Desktop.7
- FlicenseBqualityDmaintenanceAn MCP server that enables Claude Desktop to communicate with A2A protocol agents, allowing Claude to access extended capabilities through agent interactions.321
- FlicenseBqualityNot gradedmaintenanceAn MCP server that enables Claude Desktop to access and analyze financial data through Yahoo Finance integration.1
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/lumutech/lumu-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server