Arguslog

Error tracking platform with first-class Web3 support (viem / ethers v6 / @solana/web3.js / Anchor / wagmi / WalletConnect) and AI-agent integration via MCP.

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeRead-only

What it can do

  • Get Release: GET /api/v1/projects/{projectId}/releases/{id} Method: GET /api/v1/projects/{projectId}/releases/{id}
  • Update Release: PUT /api/v1/projects/{projectId}/releases/{id} Method: PUT /api/v1/projects/{projectId}/releases/{id}
  • Delete Release: DELETE /api/v1/projects/{projectId}/releases/{id} Method: DELETE /api/v1/projects/{projectId}/releases/{id}

What data it sees

Do you need an account

An API key from the service settings is required

Error tracking platform with first-class Web3 support (viem / ethers v6 / @solana/web3.js / Anchor / wagmi / WalletConnect) and AI-agent integration via MCP. Exposes the entire Arguslog REST API as 54 MCP tools — issues, events, breadcrumbs, projects, organizations, alert rules, releases, billing, and platform admin operations. Sign up free at https://arguslog.org — 5,000 events/month, no credit card. Auth via Personal Access Token from the dashboard.

How to connect

How to connect Arguslog to Claude

The server address to paste into Claude settings:

https://arguslog--petarnenovpetrov.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Arguslog to ChatGPT

The server address to paste into ChatGPT settings:

https://arguslog--petarnenovpetrov.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Arguslog to Cursor

The server address to paste into Cursor settings:

https://arguslog--petarnenovpetrov.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (54)

Raw names from tools/list. Only developers need these.

get_releaseGET /api/v1/projects/{projectId}/releases/{id} Method: GET /api/v1/projects/{projectId}/releases/{id}
update_releasePUT /api/v1/projects/{projectId}/releases/{id} Method: PUT /api/v1/projects/{projectId}/releases/{id}
delete_releaseDELETE /api/v1/projects/{projectId}/releases/{id} Method: DELETE /api/v1/projects/{projectId}/releases/{id}
get_alert_rule_1GET /api/v1/projects/{projectId}/alert-rules/{id} Method: GET /api/v1/projects/{projectId}/alert-rules/{id}
update_alert_rule_1PUT /api/v1/projects/{projectId}/alert-rules/{id} Method: PUT /api/v1/projects/{projectId}/alert-rules/{id}
delete_alert_rule_1DELETE /api/v1/projects/{projectId}/alert-rules/{id} Method: DELETE /api/v1/projects/{projectId}/alert-rules/{id}
get_alert_destination_2GET /api/v1/orgs/{orgId}/alert-destinations/{id} Method: GET /api/v1/orgs/{orgId}/alert-destinations/{id}
update_alert_destination_2PUT /api/v1/orgs/{orgId}/alert-destinations/{id} Method: PUT /api/v1/orgs/{orgId}/alert-destinations/{id}
delete_alert_destination_2DELETE /api/v1/orgs/{orgId}/alert-destinations/{id} Method: DELETE /api/v1/orgs/{orgId}/alert-destinations/{id}
stripe_webhook_receivePOST /api/v1/webhooks/stripe Method: POST /api/v1/webhooks/stripe
now_payments_webhook_receive_1POST /api/v1/webhooks/nowpayments Method: POST /api/v1/webhooks/nowpayments
list_releaseGET /api/v1/projects/{projectId}/releases Method: GET /api/v1/projects/{projectId}/releases
list_source_map_artifact_1GET /api/v1/projects/{projectId}/releases/{releaseId}/sourcemaps Method: GET /api/v1/projects/{projectId}/releases/{releaseId}/sourcemaps
create_source_map_artifact_1POST /api/v1/projects/{projectId}/releases/{releaseId}/sourcemaps Method: POST /api/v1/projects/{projectId}/releases/{releaseId}/sourcemaps
create_dsn_2POST /api/v1/projects/{projectId}/keys Method: POST /api/v1/projects/{projectId}/keys
create_alert_rule_3POST /api/v1/projects/{projectId}/alert-rules Method: POST /api/v1/projects/{projectId}/alert-rules
create_org_4POST /api/v1/orgs Method: POST /api/v1/orgs
checkout_portalPOST /api/v1/orgs/{orgId}/billing/portal Method: POST /api/v1/orgs/{orgId}/billing/portal
crypto_checkout_startPOST /api/v1/orgs/{orgId}/billing/crypto-invoice Method: POST /api/v1/orgs/{orgId}/billing/crypto-invoice
checkout_start_1POST /api/v1/orgs/{orgId}/billing/checkout-session Method: POST /api/v1/orgs/{orgId}/billing/checkout-session
create_alert_destination_6POST /api/v1/orgs/{orgId}/alert-destinations Method: POST /api/v1/orgs/{orgId}/alert-destinations
list_me_tokens_7GET /api/v1/me/tokens Method: GET /api/v1/me/tokens
create_me_tokens_7POST /api/v1/me/tokens Method: POST /api/v1/me/tokens
revoke_adminDELETE /api/v1/admin/orgs/{orgId}/grant Method: DELETE /api/v1/admin/orgs/{orgId}/grant
remove_memberDELETE /api/v1/orgs/{orgId}/members/{userId} Method: DELETE /api/v1/orgs/{orgId}/members/{userId}
member_change_rolePATCH /api/v1/orgs/{orgId}/members/{userId} Method: PATCH /api/v1/orgs/{orgId}/members/{userId}
list_platform_9GET /api/v1/platforms Method: GET /api/v1/platforms
get_project_3GET /api/v1/orgs/{orgId}/projects/{projectId} Method: GET /api/v1/orgs/{orgId}/projects/{projectId}
archive_projectDELETE /api/v1/orgs/{orgId}/projects/{projectId} Method: DELETE /api/v1/orgs/{orgId}/projects/{projectId}
me_meGET /api/v1/me Method: GET /api/v1/me
info_health_infoGET /api/v1/info Method: GET /api/v1/info
admin_usersGET /api/v1/admin/users Method: GET /api/v1/admin/users
admin_statsGET /api/v1/admin/stats Method: GET /api/v1/admin/stats
admin_orgsGET /api/v1/admin/orgs Method: GET /api/v1/admin/orgs
admin_orgGET /api/v1/admin/orgs/{orgId} Method: GET /api/v1/admin/orgs/{orgId}
admin_auditGET /api/v1/admin/audit Method: GET /api/v1/admin/audit
revoke_dsn_1DELETE /api/v1/projects/{projectId}/keys/{keyId} Method: DELETE /api/v1/projects/{projectId}/keys/{keyId}
delete_org_3DELETE /api/v1/orgs/{orgId} Method: DELETE /api/v1/orgs/{orgId}
delete_me_tokens_4DELETE /api/v1/me/tokens/{id} Method: DELETE /api/v1/me/tokens/{id}
list_my_orgsList the organizations the authenticated user is a member of. Always start here. Most other tools need an `orgId` from this list. Returns one row per org with `id`, `slug`, `name`, `plan`, and `createdAt`. The `plan` field is one of: free, starter, pro, business, enterprise. Method: GET /api/v1/orgs No arguments. Example: call this tool first to discover the user's orgs, pick the right one by `name` or `slug`, then pass its `id` to other tools.
list_projectsList projects belonging to an organization. Returns rows with `id`, `slug`, `name`, `platform`, `createdAt`. Archived projects are excluded by default. Use the `id` from this list as `projectId` for issues / events / release tools. Method: GET /api/v1/orgs/{orgId}/projects Required: `orgId` (number). Example: `{ "orgId": 42 }`.
list_issuesList unresolved issues for a project, most-recent first. This is the agent's main lookup tool when the user says "what broke today" or "show me the top errors". Use `statuses=unresolved` (the default) for the live error wall; pass `statuses=resolved,ignored` to audit silenced groups. Pagination uses `afterId` from the last row of the previous page. Method: GET /api/v1/projects/{projectId}/issues Required: `projectId` (number). Optional: `statuses` (csv: `unresolved,resolved,ignored`), `levels` (csv: `fatal,error,warning,info,debug`), `q` (free-text search), `afterId`, `limit` (default 50, max 200). Example: `{ "projectId": 7, "statuses": "unresolved", "levels": "error,fatal", "limit": 25 }`
get_issueFetch full details of a single issue, including its first / last seen timestamps, total occurrences, fingerprint, and current status. Method: GET /api/v1/projects/{projectId}/issues/{issueId} Required: `projectId` (number), `issueId` (number). Example: `{ "projectId": 7, "issueId": 123 }`
list_issue_eventsList recent events for an issue, ordered by time descending. Each event has the full payload (stack trace, breadcrumbs, contexts, request, web3 fields if present). Use this after `get_issue` to see actual exception details — the issue row only has aggregate stats, not the per-occurrence payloads. Method: GET /api/v1/projects/{projectId}/issues/{issueId}/events Required: `projectId`, `issueId`. Optional: `afterId`, `limit` (default 50, max 200).
get_org_usageCurrent-month event usage + plan caps for an organization. Use to answer "are we close to our event cap?" or "what plan are we on?". Returns `eventsUsed`, `eventCap`, `projectCap`, `retentionDays`, `plan`, `ratio` (0..1+), `exceeded`, `bonus` (when an admin has comp'd a paid plan). Method: GET /api/v1/orgs/{orgId}/usage
create_projectCreate a new project under an org. The project gets an auto-generated DSN; call `list_dsns` afterwards to fetch it (the response of this tool returns the project metadata only). Method: POST /api/v1/orgs/{orgId}/projects Required: `orgId`, `body.name` (2-100 chars), `body.platform` (one of: javascript, react, vue, angular, nextjs, react-native, node, java-spring, python). Example: `{ "orgId": 42, "body": { "name": "Marketing Web", "platform": "react" } }`
create_releaseRegister a release for a project. Source maps uploaded later via the artifact endpoints attach to this release so symbolication can resolve minified frames back to original files. Method: POST /api/v1/projects/{projectId}/releases Required: `projectId`, `body.version` (semver or commit sha). Optional: `body.environment` (`production`, `staging`, …), `body.commit`. Example: `{ "projectId": 7, "body": { "version": "1.4.2", "environment": "production", "commit": "abc123" } }`
list_alert_rulesList alert rules for a project. Each rule has a name, enabled flag, level filter (`fatal | error | warning | info | debug`), tag filters, throttle window, and the destinations it fires to. Method: GET /api/v1/projects/{projectId}/alert-rules
list_alert_destinationsList the alert destinations configured on an org (Telegram, Slack, email, generic webhook). Destination IDs are referenced from alert rules. Method: GET /api/v1/orgs/{orgId}/alert-destinations
list_membersList members of an org with their roles (owner / admin / member) and join dates. Method: GET /api/v1/orgs/{orgId}/members
invite_memberInvite a new member to an org. The server emails the invitee a magic link and also inserts a pending membership row. Required scope on the PAT: `orgs:write`. Method: POST /api/v1/orgs/{orgId}/members Required: `orgId`, `body.email`, `body.role` (`admin` | `member`). Example: `{ "orgId": 42, "body": { "email": "alice@example.com", "role": "member" } }`
list_dsnsList active DSN keys for a project. The DSN is the SDK ingest credential — SDKs authenticate to ingest with this. Returns the public part of the DSN; the secret half is shown only at creation time. Method: GET /api/v1/projects/{projectId}/keys
list_billing_plansPublic catalog of all paid plans with caps + duration ladder (-17/-25/-33% discount for 3/6/12 months). No org context needed. Use to answer "what's the price of Pro for 6 months" or "how many events does Business include". Method: GET /api/v1/billing/plans
grant_bonus_plan[Platform admin only] Comp a paid plan to a specific organization. The plan column is updated to the new tier and `bonus_until` is set to now + months × 30 days. An audit-log entry is written. Required: `orgId`, `body.tier` (`starter` | `pro` | `business`), `body.months` (1, 3, 6, or 12), `body.reason` (free text shown to the customer). Method: POST /api/v1/admin/orgs/{orgId}/grant Example: `{ "orgId": 42, "body": { "tier": "pro", "months": 3, "reason": "Beta tester" } }`