Arguslog
Error tracking platform with first-class Web3 support (viem / ethers v6 / @solana/web3.js / Anchor / wagmi / WalletConnect) and AI-agent integration via MCP.
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
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- 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
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- 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:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - 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_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} |
| get_alert_rule_1 | GET /api/v1/projects/{projectId}/alert-rules/{id} Method: GET /api/v1/projects/{projectId}/alert-rules/{id} |
| update_alert_rule_1 | PUT /api/v1/projects/{projectId}/alert-rules/{id} Method: PUT /api/v1/projects/{projectId}/alert-rules/{id} |
| delete_alert_rule_1 | DELETE /api/v1/projects/{projectId}/alert-rules/{id} Method: DELETE /api/v1/projects/{projectId}/alert-rules/{id} |
| get_alert_destination_2 | GET /api/v1/orgs/{orgId}/alert-destinations/{id} Method: GET /api/v1/orgs/{orgId}/alert-destinations/{id} |
| update_alert_destination_2 | PUT /api/v1/orgs/{orgId}/alert-destinations/{id} Method: PUT /api/v1/orgs/{orgId}/alert-destinations/{id} |
| delete_alert_destination_2 | DELETE /api/v1/orgs/{orgId}/alert-destinations/{id} Method: DELETE /api/v1/orgs/{orgId}/alert-destinations/{id} |
| stripe_webhook_receive | POST /api/v1/webhooks/stripe Method: POST /api/v1/webhooks/stripe |
| now_payments_webhook_receive_1 | POST /api/v1/webhooks/nowpayments Method: POST /api/v1/webhooks/nowpayments |
| list_release | GET /api/v1/projects/{projectId}/releases Method: GET /api/v1/projects/{projectId}/releases |
| list_source_map_artifact_1 | GET /api/v1/projects/{projectId}/releases/{releaseId}/sourcemaps Method: GET /api/v1/projects/{projectId}/releases/{releaseId}/sourcemaps |
| create_source_map_artifact_1 | POST /api/v1/projects/{projectId}/releases/{releaseId}/sourcemaps Method: POST /api/v1/projects/{projectId}/releases/{releaseId}/sourcemaps |
| create_dsn_2 | POST /api/v1/projects/{projectId}/keys Method: POST /api/v1/projects/{projectId}/keys |
| create_alert_rule_3 | POST /api/v1/projects/{projectId}/alert-rules Method: POST /api/v1/projects/{projectId}/alert-rules |
| create_org_4 | POST /api/v1/orgs Method: POST /api/v1/orgs |
| checkout_portal | POST /api/v1/orgs/{orgId}/billing/portal Method: POST /api/v1/orgs/{orgId}/billing/portal |
| crypto_checkout_start | POST /api/v1/orgs/{orgId}/billing/crypto-invoice Method: POST /api/v1/orgs/{orgId}/billing/crypto-invoice |
| checkout_start_1 | POST /api/v1/orgs/{orgId}/billing/checkout-session Method: POST /api/v1/orgs/{orgId}/billing/checkout-session |
| create_alert_destination_6 | POST /api/v1/orgs/{orgId}/alert-destinations Method: POST /api/v1/orgs/{orgId}/alert-destinations |
| list_me_tokens_7 | GET /api/v1/me/tokens Method: GET /api/v1/me/tokens |
| create_me_tokens_7 | POST /api/v1/me/tokens Method: POST /api/v1/me/tokens |
| revoke_admin | DELETE /api/v1/admin/orgs/{orgId}/grant Method: DELETE /api/v1/admin/orgs/{orgId}/grant |
| remove_member | DELETE /api/v1/orgs/{orgId}/members/{userId} Method: DELETE /api/v1/orgs/{orgId}/members/{userId} |
| member_change_role | PATCH /api/v1/orgs/{orgId}/members/{userId} Method: PATCH /api/v1/orgs/{orgId}/members/{userId} |
| list_platform_9 | GET /api/v1/platforms Method: GET /api/v1/platforms |
| get_project_3 | GET /api/v1/orgs/{orgId}/projects/{projectId} Method: GET /api/v1/orgs/{orgId}/projects/{projectId} |
| archive_project | DELETE /api/v1/orgs/{orgId}/projects/{projectId} Method: DELETE /api/v1/orgs/{orgId}/projects/{projectId} |
| me_me | GET /api/v1/me Method: GET /api/v1/me |
| info_health_info | GET /api/v1/info Method: GET /api/v1/info |
| admin_users | GET /api/v1/admin/users Method: GET /api/v1/admin/users |
| admin_stats | GET /api/v1/admin/stats Method: GET /api/v1/admin/stats |
| admin_orgs | GET /api/v1/admin/orgs Method: GET /api/v1/admin/orgs |
| admin_org | GET /api/v1/admin/orgs/{orgId} Method: GET /api/v1/admin/orgs/{orgId} |
| admin_audit | GET /api/v1/admin/audit Method: GET /api/v1/admin/audit |
| revoke_dsn_1 | DELETE /api/v1/projects/{projectId}/keys/{keyId} Method: DELETE /api/v1/projects/{projectId}/keys/{keyId} |
| delete_org_3 | DELETE /api/v1/orgs/{orgId} Method: DELETE /api/v1/orgs/{orgId} |
| delete_me_tokens_4 | DELETE /api/v1/me/tokens/{id} Method: DELETE /api/v1/me/tokens/{id} |
| list_my_orgs | List 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_projects | List 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_issues | List 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_issue | Fetch 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_events | List 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_usage | Current-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_project | Create 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_release | Register 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_rules | List 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_destinations | List 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_members | List members of an org with their roles (owner / admin / member) and join dates. Method: GET /api/v1/orgs/{orgId}/members |
| invite_member | Invite 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_dsns | List 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_plans | Public 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" } }` |