Skip to main content
Glama
732,828 tools. Updated 2026-11-01 18:47

"MCP server for Cursor that monitors terminal logs and suggests fixes" matching MCP tools:

  • Your FIRST step when debugging any runtime problem — a 500, a failed request, a blank page, or 'it doesn't work' from the user. Call this before theorizing from an error message alone. Reads the project's runtime logs. source 'server' (default): the dev backend's request logs from the last hour — method, URL, status, duration, and per-request server log lines (pass log_reference_id from a previous listing for one request's full logs); includes background jobs (queueTask/scheduled/failure). source 'browser': console output AND client-side network requests (each fetch as `⇄ METHOD url → status`, with the error body for failed/4xx/5xx ones — the client-side view server logs miss, e.g. CORS/timeouts/third-party calls) captured from the user's open editor session. A browser network line's `ref=<id>` is a log_reference_id you can pass back with source 'server' for that request's full server logs. Empty if no editor is open. source 'background': not log lines but the live state of background work, for the preview AND the published app — the schedules actually deployed (scheduled jobs, recurring and delayed queueTask) with their next run, the runs in progress right now, and the runs that were long or cut off at the 15-minute limit in the last 7 days. Use it to answer 'is that job still running?', 'did it time out?' and 'can anything start it again?' (limit and log_reference_id are ignored). Sources 'server' and 'browser' are NOT CloudWatch: entries live ~1 hour and cover the dev backend + live session only — for the PUBLISHED app's logs, use run_code_in_vm's `_floot.getProdBackendLogs` (details: get_guides('prod-backend-logs')).
    ConnectorOAuth
  • Resume up to 100 paused monitors in one call, all or nothing; each goes back to PENDING and is checked on the next tick. For one monitor use resume_monitor; to run a check right away on a monitor that is already running, use check_now. Requires a key with the write scope. Resuming more monitors than the plan's active limit allows is a 403 and nothing changes (see get_plan_usage). A monitor already running is left as it is. Returns monitors: the list_monitors rows after the change, in request order. Example: {"monitor_ids": ["<id from list_monitors>", "<id from list_monitors>"]}
    ConnectorOAuth
  • Find logs matching filter criteria within a time range. Use this as your default starting point for log queries. Returns logs sorted by (timestamp, logId) descending (newest first). When investigating an error or a failure, call list_issues first: Fixter has often grouped it already into an issue with its count, first and last seen and a traceId to search from. Returns the log's main fields by default; pass verbose=true to include its attributes (http/url/… flattened in, plus a `resource` object). Long string values are capped (maxStringChars). For raw columns or custom selection use run_sql. For one row with every attribute, use get_log; a cut value's marker carries the "more" call that reads the rest. Defaults: from: 1 hour before to (or before now) when omitted; set it to read further back to: now when omitted limit: 100 (max 1000) service/level: any Common patterns: - Errors in the last hour: level="ERROR", from=<1h ago> - Logs for a trace: traceId="abc123..." - Whole-token search (case-insensitive): messageContains="timeout" - Substring or regex search: not supported here; use run_sql Returns: logs: array of log objects (lean unless verbose=true) nextCursor: opaque token (null on the last page); pass back as cursor to fetch the next page truncationHint: present when the page was cut to fit the response; nextCursor then reads on from the last log shown explorerUrl: shareable Fixter UI link opening this query in the log explorer — when the user asks to see or browse these logs, send them there rather than reproducing the listing; attach it when citing these logs as evidence (covers the service/level/traceId filters and the window; timestamps display in the viewer's browser timezone) queryStats: rowsReturned, elapsedMs
    ConnectorAPI key
  • Searches inside one subreddit and returns matching posts with a cursor token to page. Posts carry title, author, selftext, score, ups, upvote_ratio, num_comments, created_utc, created_at_iso, url, permalink and is_video. Despite what sort suggests, every sort value returns posts and only posts: comments and media were confirmed absent from all five. Measured at about 5 KB and 2 seconds, faster than get_reddit_search, which searches all of Reddit and pages with after instead of cursor. For the replies under a result, pass its url to get_reddit_post_comments. <!-- aisa-pricing:start --> Usage-based billing; Default request estimate: $0.00188 USD (not a fixed price). Account-specific pricing and final settlement may differ. <!-- aisa-pricing:end -->
    ConnectorOAuth
  • Read a job's status, progress and compact terminal summary with persisted record IDs. Status is pending, running, paused, completed, failed or cancelled. Relay pause questions with answer_job_question; answer a delegated job's llm_requests with answer_llm_request. include_result=true returns full terminal details; batch summaries count entities and database outcomes. A failed job is not usable output; inspect individual records for partial recovery. Unknown IDs may be invalid, expired or lost after restart: look for persisted outputs with list_records(job_id=...), without assuming success. events_after=<seq> adds the job's event log past that cursor (per-model completions, scoring progress, pauses) — the poll equivalent of the SSE stream; pass the returned last_seq next time. On a delegated job, llm_requests lists the pending model calls: the first complete, the rest as envelopes; llm_request_id=<id> returns that one complete. No LLM call. Polling, failure and recovery guidance: enricher://docs/enrichment-and-fusion.
    ConnectorOAuth
  • Uptime of every monitor of the project over a period, worst first, in one call: per monitor uptime_pct, downtime (seconds + text), outage count, longest outage and MTTR (mean time to resolve, resolved outages only), plus project totals (average uptime, total downtime and outages, MTTR, monitors currently down). Period from/to: default the last 30 days, at most 366. Filter by name, protocol or group. Active monitors only unless include_paused. Use it for "which monitors had the worst uptime" or an SLA overview; get_monitor_uptime gives a per-day/week series, list_outages the outages themselves. Healthchecks and servers are not included.
    ConnectorNo auth

Matching MCP Servers

Matching MCP Connectors

  • Monitores, incidentes, jornadas e páginas de status

  • Dated ETF, stock and calendar data, plus tax-loss, withholding and fee math on your holdings.

  • FIND EVENT LOGS on one BSC (bsc, BNB, BNB Chain, Binance Smart Chain) contract by event name — e.g. every "Transfer", or a rare custom event. `contract` matches logs that contract EMITTED ITSELF (a proxy token is found by its public address), plus — when it is a proxy's implementation — the logs its code emitted for that proxy. Logs emitted by OTHER contracts it calls are NOT included: a DEX router's swaps are logged by the pair/pool it calls, not by the router, so contract=<router> with event=Swap returns NOTHING even when the router executed thousands of swaps. An empty result for a router, aggregator or smart wallet does NOT mean there was no activity. To get those logs, pass the pair/pool (or token) address as `contract`; if it is unknown, list the router's transactions with bsc_find_calls (contract=<router>) and pass their Tx hashes (up to 50, "|"-separated) to bsc_tx_events with event=Swap — its CallPath shows which call produced each log. Narrow matched rows to one emitting contract with `emitter`. Match by event name or full signature (case-insensitive). Searches the last 7 days by default — set after_time to reach further back. Page back through history with cursor: pass the Cursor value of the LAST row of a page to get the next one (each page covers the days window ending at that cursor) — unlike before_time it never skips rows that share a timestamp. Then inspect a transaction's fund movements with bsc_tx_transfers. For finding the CALLS themselves (method, selector, revert info) use bsc_find_calls. Each row carries the log's decoded Arguments (Name, Type, Value, Indexed; integers are decimal strings in raw units, NOT divided by token decimals; addresses as 0x-hex) - at most 32 per row: ArgumentCount is the full number and ArgumentsTruncated=1 marks a cut list (every array element counts as one). Parsed=0 rows have no Arguments. Argument NAMES come from one known ABI for the Signature: a contract that emits the same Signature with other parameter names gets those names too, so a Name can be wrong for this contract - identify an argument by its position and Type, and check a doubtful one against the raw Topics/Data. For raw Topics/Data, or the rest of a cut list, pass the Tx to bsc_tx_events. Unrecognized events can be found here by `topic0`. ONE ROW = ONE EVENT LOG. A contract can be called many times inside a single transaction and each of those internal calls can emit its own logs, so the same event name legitimately repeats within one transaction - that is NOT duplication. Rows are told apart by CallIndex (which internal call emitted the log) together with LogInCall (the log's position inside that call); that pair is unique within a transaction. To COUNT events, count the returned rows - never de-duplicate on Tx/Event/Emitter, which would merge genuinely different logs into one. SCAN COST scales with the window, not with the limit: on a very high-traffic contract set days=1 and page back with cursor - several times cheaper than a 7-day window for the same page. Widen days for quiet contracts or rare matches. Rows inside one transaction come back in no particular order - sort them by CallIndex then LogInCall if you need emission order.
    ConnectorOAuth
  • FIND EVENT LOGS on one Polygon (matic, POL, MATIC, PoS) contract by event name — e.g. every "Transfer", or a rare custom event. `contract` matches logs that contract EMITTED ITSELF (tokens behind a proxy are found by their public address), plus — when it is a proxy's implementation — the logs its code emitted for that proxy. Logs emitted by OTHER contracts it calls are NOT included: a DEX router's swaps are logged by the pair/pool it calls, not by the router, so contract=<router> with event=Swap returns NOTHING even when the router executed thousands of swaps. An empty result for a router, aggregator or smart wallet does NOT mean there was no activity. To get those logs, pass the pair/pool (or token) address as `contract`; if it is unknown, list the router's transactions with matic_find_calls (contract=<router>) and pass their Tx hashes (up to 50, "|"-separated) to matic_tx_events with event=Swap — its CallPath shows which call produced each log. Match by event name or full signature (case-insensitive); narrow matched rows to one emitter with `emitter`. Searches the last 7 days by default — set after_time to reach further back, or page back with cursor: pass the Cursor value of the LAST row of a page to get the next one, and each page covers the days-sized window before it. Unlike before_time, a cursor never skips rows that share a timestamp. Then inspect a transaction's fund movements with matic_tx_transfers. For finding the CALLS themselves (method, selector, revert info) use matic_find_calls. Each row carries the log's decoded Arguments (Name, Type, Value, Indexed; integers are decimal strings in raw units, NOT divided by token decimals; addresses as 0x-hex) - at most 32 per row: ArgumentCount is the full number and ArgumentsTruncated=1 marks a cut list (every array element counts as one). Parsed=0 rows have no Arguments. Argument NAMES come from one known ABI for the Signature: a contract that emits the same Signature with other parameter names gets those names too, so a Name can be wrong for this contract - identify an argument by its position and Type, and check a doubtful one against the raw Topics/Data. For raw Topics/Data, or the rest of a cut list, pass the Tx to matic_tx_events. Unrecognized events can be found here by `topic0`. ONE ROW = ONE EVENT LOG. A contract can be called many times inside a single transaction and each of those internal calls can emit its own logs, so the same event name legitimately repeats within one transaction - that is NOT duplication. Rows are told apart by CallIndex (which internal call emitted the log) together with LogInCall (the log's position inside that call); that pair is unique within a transaction. To COUNT events, count the returned rows - never de-duplicate on Tx/Event/Emitter, which would merge genuinely different logs into one. SCAN COST scales with the window, not with the limit: on a very high-traffic contract set days=1 and page back with cursor - several times cheaper than a 7-day window for the same page. Widen days for quiet contracts or rare matches. Rows inside one transaction come back in no particular order - sort them by CallIndex then LogInCall if you need emission order.
    ConnectorOAuth
  • Create 1 to 100 monitors in one call, all or nothing; for a single monitor use create_monitor. Requires a key with the write scope. An invalid item, or a batch that would exceed the plan, rejects the whole call and creates nothing: call get_plan_usage first to check the batch fits. Errors name the failing item. A field that fails validation is named by its path, such as monitors.3.target (index 3 is the fourth item; all such errors are reported at once). Any other item error keeps the status create_monitor would give (403 when its interval or regions break the plan or name an unknown region, 404 for an unknown channel id, 422 for its config or its type's region rules) and its reason starts with monitors[3] ("<item name>"): — only the first such item is reported. Read the index only from that leading monitors[N] (the pattern ^monitors\[(\d+)\] after any lead-in such as "Forbidden: " or "Invalid request: "), never from the name, which may itself contain quotes or brackets. A plan-limit 403 without that prefix is about the batch as a whole: together the items would exceed the plan's monitor count or its quota of monitors below 60 seconds. Fix the item or shrink the batch and send the whole call again. Returns monitors: one list_monitors row per created monitor, in request order. The example is a port-list TCP monitor, which takes exactly one region and an interval of at least 300 seconds. Example: {"monitors": [{"name": "db.example.com exposed ports", "type": "TCP", "target": "db.example.com", "interval_seconds": 3600, "timeout_seconds": 10, "regions": ["eu-central"], "config": {"ports": [5432, 6379, 27017], "expected_state": "closed"}}]}
    ConnectorOAuth
  • Set the same interval, timeout, regions, channels, threshold or cooldown on up to 100 monitors in one call, all or nothing. For example, move twenty PING monitors to other regions. Not for config or name (use update_monitor, one monitor at a time) or tags (use bulk_update_monitor_tags). Requires a key with the write scope. The plan's rules apply to the result: an interval below the plan minimum, too many fast monitors, too many regions or an unknown region is a 403. A value one monitor cannot take (several regions on an SSL, DNS or port-list TCP monitor, or an interval under 300 on a port-list one) is a 422 that starts with monitors[<i>] ("<name>"). Returns monitors: list_monitors rows, which show the interval but not the other settings; read those with get_monitor. Example: {"monitor_ids": ["<id from list_monitors>", "<id from list_monitors>"], "changes": {"regions": ["eu-central", "us-east"], "interval_seconds": 300}}
    ConnectorOAuth
  • Loads a public landing page in a real browser (desktop and mobile), and returns a conversion score from 0 to 100, seven sub-scores (clarity, value proposition, CTA, trust, design, mobile, SEO basics), the top 3 issues with concrete fixes, what already works, a short AI-readiness score, and fix_prompt: a Markdown prompt that hands the fixes to a coding agent such as Claude Code or Cursor. Use it when someone wants feedback on why a homepage, landing page or pricing page does not convert, wants a second opinion before a launch, or wants to compare their page with a competitor's. Do not use it for pages behind a login, for non-HTML files, or for general SEO keyword research. It takes 30 to 90 seconds; if it returns status "running", call get_audit_result with the audit_id. The free result is complete on its own. The full report (every other issue ranked by the points it costs, the 36-check list, 3 headline and 3 CTA rewrites, 5 quick wins, mobile review, full AI-readiness fixes) costs $5 USD one-time, paid by a human at report_url. Set language to "pt" for a report in Brazilian Portuguese. A URL audited through the API in the last 24 hours (in the same language) returns that same result. Limit: 5 new audits per hour per client, 20 with an API key. With an API key that has credits (Authorization: Bearer header; 10 full reports for $29, see https://pagecritic.app/developers), the result includes the full report.
    ConnectorNo auth
  • Use this after you have processed a page from cooper_poll_events. Requires auth and message_read. Inputs: client_id (the consumer id or client_id) and cursor (the commit_cursor you received, an evc1 cursor). Returns the consumer. cursor on the response is the committed position. An older cursor is a no-op and the current position is returned. A value that is not an evc1 cursor is HTTP 400 invalid_cursor. Another account's consumer is HTTP 404 consumer_not_found.
    ConnectorNo auth
  • Deletes WebinarIgnition's own diagnostic log files. Side effect: the logs are gone and cannot be restored; the campaign, its registrants and its emails are NOT touched. Needs `session_id` and a clear yes (`confirm` true); with `webinar_id` only that campaign's logs go, without it the logs of ALL campaigns on the install are cleared, so pass the id whenever the host named a webinar and say which of the two it is. Use it when the host wants a clean slate for diagnostics, for example before reproducing a problem, then read the state with wi_get_connector_status.
    Connector
    Destructive
    No auth
  • Video comments. Top-level comments on a video, about 20 per page. Pass `pagination.cursor` back as `cursor` for the next page. Each item that has replies also appears in `replyCursors`; feed that cursor to `/v1/youtube/video/comment-replies`. Use `order=newest` when polling for new comments, since `top` is re-ranked by YouTube and will churn. Costs 1 credit.
    ConnectorNo auth
  • Read the new videos the account's monitors have found, newest first: titles, links and publish times, with their transcripts for monitors that deliver them. Leave monitor_id out for every monitor. To ask again later, pass this answer's lastEventId as since and only videos found after it come back. Monitors find videos when they check, on their own schedule (check_monitor_now checks at once). Found videos are kept for 30 days. Free.
    ConnectorAPI key
  • Dump the user's monitors as a JSON structure suitable for backup, migration, or infrastructure-as-code workflows. Tokens and PII are NEVER included - only domain configuration.
    ConnectorNo auth
  • List the alert policies of a project with their rules. Set includeAssignments to also get which environments, specs and monitors each policy is attached to — that is where the assignmentId for unassigning comes from. Use this to browse policies or find an id; to create or change one use manage_alert_policy. Requires project context.
    ConnectorAPI key
  • FIND EVENT LOGS of ONE Arc (arc, ARC, Arc Network, Circle Arc) contract — match by event NAME (e.g. "Transfer") or full SIGNATURE (e.g. "Transfer(address,address,uint256)"), case-insensitive. `contract` matches logs that contract EMITTED ITSELF (a proxy token is found by its public address), plus — when it is a proxy's implementation — the logs its code emitted for that proxy. Logs emitted by OTHER contracts it calls are NOT included: a DEX router's swaps are logged by the pair/pool it calls, not by the router, so contract=<router> with event=Swap returns NOTHING even when the router executed thousands of swaps. An empty result for a router, aggregator or smart wallet does NOT mean there was no activity. To get those logs, pass the pair/pool (or token) address as `contract`; if it is unknown, list the router's transactions with arc_find_calls (contract=<router>) and pass their Tx hashes (up to 50, "|"-separated) to arc_tx_events with event=Swap — its CallPath shows which call produced each log. Narrow matched rows with `emitter`. Returns tx, emitter, event name/signature, log index, tx sender. Searches a recent window — defaults to the last 7 days (ending at the cursor's time, before_time, or now); widen with after_time (wider = slower). Page back through history with cursor: pass the Cursor value of the LAST row of a page to get the next one — unlike before_time it never skips rows that share a timestamp, and a busy contract emits hundreds of logs in one second. For the calls themselves use arc_find_calls; for token transfers use arc_transfers_out/in. Each row carries the log's decoded Arguments (Name, Type, Value, Indexed; integers are decimal strings in raw units, NOT divided by token decimals; addresses as 0x-hex) - at most 32 per row: ArgumentCount is the full number and ArgumentsTruncated=1 marks a cut list (every array element counts as one). Parsed=0 rows have no Arguments. Argument NAMES come from one known ABI for the Signature: a contract that emits the same Signature with other parameter names gets those names too, so a Name can be wrong for this contract - identify an argument by its position and Type, and check a doubtful one against the raw Topics/Data. For raw Topics/Data, or the rest of a cut list, pass the Tx to arc_tx_events. Unrecognized events can be found here by `topic0`. ONE ROW = ONE EVENT LOG. A contract can be called many times inside a single transaction and each of those internal calls can emit its own logs, so the same event name legitimately repeats within one transaction - that is NOT duplication. Rows are told apart by CallIndex (which internal call emitted the log) together with LogInCall (the log's position inside that call); that pair is unique within a transaction. To COUNT events, count the returned rows - never de-duplicate on Tx/Event/Emitter, which would merge genuinely different logs into one. SCAN COST scales with the window, not with the limit: on a very high-traffic contract set days=1 and page back with cursor - several times cheaper than a 7-day window for the same page. Widen days for quiet contracts or rare matches. Rows inside one transaction come back in no particular order - sort them by CallIndex then LogInCall if you need emission order.
    ConnectorOAuth
  • FIND EVENT LOGS on one Tron (trx, TRX, TRON) contract by event name — e.g. all "Transfer" events or a rare custom event, in one filtered query. Match by event name or full signature ("Transfer(address,address,uint256)"), case-insensitive. Without after_time the search covers the most recent 7 days (ending at the cursor's time, or at before_time, if set) — set after_time to search further back. Page back through history with cursor: pass the Cursor value of the LAST row of a page to get the next one — unlike before_time it never skips rows that share a timestamp. `contract` matches logs that contract EMITTED ITSELF (a proxy token is found by its public address), plus — when it is a proxy's implementation — the logs its code emitted for that proxy. Logs emitted by OTHER contracts it calls are NOT included: a DEX router's swaps are logged by the pair/pool it calls, not by the router, so contract=<router> with event=Swap returns NOTHING even when the router executed thousands of swaps. An empty result for a router, aggregator or smart wallet does NOT mean there was no activity. To get those logs, pass the pair/pool (or token) address as `contract`; if it is unknown, list the router's transactions with tron_find_calls (contract=<router>) and pass their Tx hashes (up to 50, "|"-separated) to tron_tx_events with event=Swap — its CallPath shows which call produced each log. Inspect a found tx's token movements with tron_tx_transfers; for calls use tron_find_calls. Each row carries the log's decoded Arguments (Name, Type, Value, Indexed; integers are decimal strings in raw units, NOT divided by token decimals; addresses in base58) - at most 32 per row: ArgumentCount is the full number and ArgumentsTruncated=1 marks a cut list (every array element counts as one). Parsed=0 rows have no Arguments. Argument NAMES come from one known ABI for the Signature: a contract that emits the same Signature with other parameter names gets those names too, so a Name can be wrong for this contract - identify an argument by its position and Type, and check a doubtful one against the raw Topics/Data. For raw Topics/Data, or the rest of a cut list, pass the Tx to tron_tx_events. Unrecognized events can be found here by `topic0`. ONE ROW = ONE EVENT LOG. A contract can be called many times inside a single transaction and each of those internal calls can emit its own logs, so the same event name legitimately repeats within one transaction - that is NOT duplication. Rows are told apart by CallIndex (which internal call emitted the log) together with LogInCall (the log's position inside that call); that pair is unique within a transaction. To COUNT events, count the returned rows - never de-duplicate on Tx/Event/Emitter, which would merge genuinely different logs into one. LogIndex is the log's position within the whole transaction. SCAN COST scales with the window, not with the limit: on a very high-traffic contract set days=1 and page back with cursor - several times cheaper than a 7-day window for the same page. Widen days for quiet contracts or rare matches. Rows inside one transaction come back in no particular order - sort them by CallIndex then LogInCall if you need emission order.
    ConnectorOAuth
  • Creates a one-time upload link for a local image file (valid 10 minutes). Upload the file with the returned curl command, then pass upload_id to vectorize. Only for agents whose terminal can reach shapesoda.com (Claude Code, Cursor and similar); in Claude.ai and other chat apps the sandbox cannot upload there, so call open_editor instead.
    ConnectorNo auth
  • Sync records whose verified_at is later than cursor (exclusive) across library sources, articles, datasets, bots, and support notes. Output is { cursor, count, entries }. cursor is the YYYY-MM-DD that was applied. count is the number of rows in that window. Each entry has kind (article, library, support, dataset, or bot), id, title, url, and verified_at. Some rows also include md_url, category, date_published, or note. Omit cursor to apply an exclusive cursor of UTC today minus 30 days; the response cursor is that date. Pass a YYYY-MM-DD cursor to sync from a stored date. There is no text filter, no limit, and no offset, so an old cursor can return the whole catalog (over 100 entries, about 43 KB). A cursor that is not YYYY-MM-DD returns isError with text cursor must be YYYY-MM-DD. A failed read returns isError whose text is the Error message. This free list is the raw changelog: it is not grouped by protocol and it is not Markdown, and it does not return source cards. Use search_sources instead when you want to browse or filter the library, including newest-first and updated_since (limit 1-50, no offset). Use list_categories, list_articles, list_datasets, list_bots, or get_support_info instead when you want the current full document rather than changelog rows. Use get_trust_checklist instead for the trust checklist. For one record, strip article: before get_article, dataset: before get_dataset, and bot: before get_bot. Library ids have no prefix; use get_source. Support rows have no per-id getter; use get_support_info or get_trust_checklist. Paid GET https://api.agentpaywire.com/v1/changes returns library source cards only, for an inclusive verified_at window, with protocol, category, and new-or-updated filters, as JSON or Markdown. Each client gets 5 unpaid calls per rolling 24 hours. A response in that allowance is HTTP 200 with X-Trial-Remaining and does not spend a credit. After that, the unpaid call is HTTP 402 via x402 or L402. A valid paid call spends one credit and does not use the allowance. Free, no auth.
    ConnectorNo auth