eSentire Atlas MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_AUTH | No | none | bearer | oauth/azure | github | none |
| MCP_HOST | No | Bind address | 0.0.0.0 |
| MCP_PORT | No | Bind port | 3000 |
| LOG_LEVEL | No | Logging level | info |
| TI_CACHE_TTL | No | Seconds. Matches the feed's hourly refresh | 3600 |
| MCP_TRANSPORT | No | http or stdio | http |
| MCP_PUBLIC_URL | No | External URL; required for OAuth | |
| ATLAS_API_TOKEN | No | Atlas credential (Findings / Ticketing / MVS) | |
| AZURE_CLIENT_ID | No | Entra app client ID for MCP_AUTH=oauth | |
| AZURE_TENANT_ID | No | Entra app tenant ID for MCP_AUTH=oauth | |
| MCP_BEARER_TOKEN | No | Shared secret when MCP_AUTH=bearer | |
| ESENTIRE_API_BASE | No | API root | https://api.esentire.com |
| ESENTIRE_TI_TOKEN | No | Threat Intelligence credential | |
| ESENTIRE_READ_ONLY | No | 1 refuses every mutating call at the door | false |
| MAX_RESPONSE_CHARS | No | Per-tool response ceiling | 40000 |
| AZURE_CLIENT_SECRET | No | Entra app client secret for MCP_AUTH=oauth | |
| ESENTIRE_CUSTOMER_CODE | No | Default tenant code, so callers can omit it | |
| ESENTIRE_ENABLED_SURFACES | No | Comma list; drop mvs if not licensed | findings,tickets,ti,mvs |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| findings_searchC | Search eSentire Findings (detections/alerts) for a date range. This is the API behind the Findings table in the Atlas platform. |
| findings_search_advancedA | POST variant of the Findings search, for filter payloads too large for a query string. |
| finding_updateC | Update an existing Finding (WRITE). |
| tickets_case_type_configsA | List the valid case_type / case_subtype / service combinations. Always call this before creating a case. The taxonomy is server-driven and changes without notice, so hardcoding subtypes leads to rejected creates. |
| tickets_list_casesB | List cases from eSentire's ticketing system. |
| tickets_get_caseA | Get one case in full. |
| tickets_create_caseA | Create a new case in eSentire's ticketing system (WRITE -- reaches the real SOC). This opens a genuine support case with eSentire. Confirm intent with a human before calling it. Validate case_type/case_subtype/service against tickets_case_type_configs first; invalid combinations are rejected. |
| tickets_update_caseA | Update a case: add comments, set customer fields, or resolve it (WRITE). Resolving is reversible; closing is not. Prefer resolve. |
| tickets_list_commentsA | List all comments on a case. The case object itself only carries the latest 5 comments; use this for the rest. |
| tickets_list_emailsB | List the email correspondence attached to a case. |
| tickets_list_attachmentsB | List the file attachments on a case. |
| tickets_get_attachment_linkA | Fetch metadata or a download link for an attachment. Atlas splits behaviour by size: files <= 5MB can come back inline, while files over 5MB return a link to secure cloud storage. This tool always requests JSON so you get metadata or a link rather than raw bytes -- binary content is not useful over MCP. |
| tickets_upload_attachmentA | Attach a file to a case (WRITE). Only handles the inline path, i.e. files <= 5MB. For anything larger, Atlas requires a two-step presigned upload that has to be driven from a real filesystem, not through an MCP tool call. |
| tickets_delete_attachmentA | Delete an attachment from a case (WRITE -- not reversible). |
| tickets_list_contactsA | List authorised contacts for your account. Use this to get an exact contact value for tickets_create_case, since an unresolvable contact is silently dropped rather than rejected. |
| tickets_list_locationsA | List locations registered for your account. Same rationale as contacts: an unresolvable location is silently dropped. |
| ti_ipwatchA | Fetch the eSentire IP Watch blocklist. Returns a newline-delimited list of malicious IP addresses, suitable for pushing into a firewall or WAF blocklist. |
| ti_check_ipA | Check whether a specific IP address is on the eSentire IP Watch blocklist. |
| ti_indicatorsA | Fetch the most recent Indicator Bundles from the Threat Intelligence feed. Covers IPs, domains, URLs, file hashes and email addresses curated by eSentire's Threat Response Unit. Upstream refreshes hourly, and results are cached for that long, so calling this repeatedly inside an hour returns identical data. |
| ti_indicators_pagedA | Page through Indicator Bundles from the Threat Intelligence feed. Use this instead of ti_indicators when you need to walk the whole feed without blowing the response ceiling. |
| ti_indicators_mispB | Fetch a MISP-format indicator file from the Threat Intelligence feed. |
| mvs_list_assetsB | List discovered assets and their vulnerability counts. Asset records use UPPERCASE field names (ASSET_ID, HOSTNAME, THREAT_RATING, VULN_CRITICAL_COUNT, ...). Note there are two parallel count families: SOFTWARE_VULN_*COUNT and VULN*_COUNT. |
| mvs_get_assetA | Get full detail for one asset. |
| mvs_asset_detailsB | List a sub-resource of one asset. |
| mvs_get_asset_vulnerabilityA | Get one vulnerability as it applies to one specific asset. |
| mvs_list_vulnerabilitiesA | List the vulnerability catalogue across the whole estate. |
| mvs_get_vulnerabilityA | Get details for one vulnerability, by internal id or by CVE. |
| mvs_list_missing_patchesA | List missing patches across the whole estate. |
| mvs_assets_affected_byA | Find every asset affected by a given CVE, vulnerability, or missing patch. This is the blast-radius question: given one finding, what is exposed? Supply exactly one of cve_id, vulnerability_id, or the patch_name/patch_type pair. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/omichelbraga/esentire-atlas-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server