elmah.io integration
elmah.io is an error logging and uptime monitoring service for .NET and web applications. Through its REST API an agent can list, search, read, create, hide, fix and delete log messages (errors, warnings and information entries), create, enable, disable and delete logs, record and manage deployments so messages are tagged with a version, and post heartbeats for scheduled jobs. Source map uploads (multipart files), installation tracking, the log diagnose helper and the closed-beta uptime checks listing are not exposed. Authentication is an elmah.io API key, created on the organization settings page, sent as the api_key query parameter; each route needs its matching key permission (for example messages_read). The API allows at most 500 requests per minute and 3600 per hour.
Say what should happen.
The workflow builds itself.
What you can do with elmah.io
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Message, 9 operations
create_messageCreate messagePOSTLogs one message (error, warning or information entry) to a log: title, severity, detail such as a stack trace, type, source, URL, user, version and key/value data. Returns the location of the new message. Needs messages_write.create_messages_bulkCreate messages bulkPOSTLogs several messages to a log in one call. Returns one result per message: status code 201 with a location when created, 200 with an empty location when ignored. Needs the messages_write key permission.delete_messageDelete messageDELETEDeletes one message by its ID (as returned by list_messages). Irreversible. Needs a key with the delete permission for messages.delete_messagesDelete messagesDELETEDeletes every message of a log that matches a Lucene query and an optional from/to window. Irreversible. Needs a key with the delete permission for messages.fix_messageFix messagePOSTMarks one message as fixed by its ID (as returned by list_messages); set markAllAsFixed to true to mark every instance of that message as fixed. Needs the messages_write key permission.fix_messagesFix messagesPOSTMarks as fixed every message of a log that matches a Lucene query and an optional from/to window. Use fix_message for a single message. Needs the messages_write key permission.get_messageGet messageGETGets one message by its ID (as returned by list_messages): title, severity, detail, type, source, status code, URL, user, version, correlation id, and its cookies, form, query string, server variables, data and breadcrumbs.hide_messageHide messagePOSTHides one message by its ID (as returned by list_messages). Needs the messages_write key permission.list_messagesList messagesGETSearches the messages of a log with an optional full-text or Lucene query and a from/to time window. Pages of up to 100 (15 by default); past 10,000 results, pass the returned searchAfter. Needs messages_read.
Log, 6 operations
create_logCreate logPOSTCreates a new log. Only name is required; color (green when missing or unknown), environment name and a disabled flag are optional. Returns the location of the created log. Needs the logs_write key permission.delete_logDelete logDELETEDeletes a log by its ID. Only an empty log can be deleted: delete all its messages first (hidden ones included, see delete_messages). Needs a key with the delete permission for logs.disable_logDisable logPOSTDisables a log by its ID (as returned by list_logs); undo with enable_log. Needs the logs_write key permission.enable_logEnable logPOSTEnables a log that was disabled, by its ID (as returned by list_logs); the reverse of disable_log. Needs the logs_write key permission.get_logGet logGETGets one log by its ID (as returned by list_logs): name, color, environment name and whether it is disabled. Needs the logs_read key permission.list_logsList logsGETLists the logs the API key can access: id, name, color, environment name and whether the log is disabled. Use an id from here as logId in the message and heartbeat tools. Needs the logs_read key permission.
Deployment, 4 operations
create_deploymentCreate deploymentPOSTRecords a new deployment (a version) so later messages are tagged with it. Only version is required; set logId to attach it to one log instead of all logs. Returns the location of the created deployment. Needs deployments_write.delete_deploymentDelete deploymentDELETEDeletes a deployment by its ID (as returned by list_deployments). Messages already annotated with this deployment's version keep that version number. Needs a key with the delete permission for deployments.get_deploymentGet deploymentGETGets one deployment by its ID (as returned by list_deployments): version, created time, description, user name and email, and the log it is attached to. Needs the deployments_read key permission.list_deploymentsList deploymentsGETLists the deployments of the organization: id, version, created time, description, the user who deployed and the log it is attached to (null means all logs). Needs the deployments_read key permission.
Heartbeat, 1 operation
create_heartbeatCreate heartbeatPOSTPosts a heartbeat for a heartbeat check set up on a log, to report that a scheduled job ran. result is Healthy (the default), Degraded or Unhealthy, with an optional reason, duration in ms and sub-checks. Needs heartbeats_write.
Use elmah.io from Claude Code, Cursor or Codex
Connect elmah.io in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its elmah.io operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect elmah.io
- Create your workspace
Sign up free. Nothing to install.
- Connect elmah.io once
Add your elmah.io connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
elmah.io integration FAQ
What can you do with the elmah.io integration?
LiveContext exposes 20 operations on elmah.io, covering message, log, deployment and heartbeat.
