Skip to main content
Glama
442,443 tools. Updated 2026-08-11 09:24

"How to run Docker and view logs" matching MCP tools:

  • PERMANENTLY delete a board AND EVERY PIN ON IT. This is the heaviest thing that can be done to a Pinterest account and there is no undelete. Call it WITHOUT confirm first: nothing is deleted, and it answers with the board’s real name, how many Pins are on it, how many people FOLLOW it and how many collaborators lose access — all read back from Pinterest. Show the user that, then call again with confirm:true plus confirmName (its exact name) and confirmChildren (the Pin count it reported); those echoes exist because a caller who has not looked at the board cannot supply them, and confirming intent alone does not prove aim. IF THEY ONLY WANT IT OUT OF PUBLIC VIEW, update_pinterest_board(privacy:"SECRET") hides the board and every Pin on it and is REVERSIBLE — offer that first. 0 credits. Needs Pinterest connected.
    Connector
  • Execute a read-only QuerySQL SELECT against the observability data. QuerySQL is standard SQL (MySQL-compatible syntax, backtick-quoted identifiers) with automatic tenant isolation. Write normal SQL — most standard features work: WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, DISTINCT, CASE WHEN, LIKE, ILIKE, BETWEEN, IN, !=, <>, IS NULL, IS NOT NULL, NOT, OR, AND, subqueries, derived tables, JOINs, aliases, COALESCE, IF. Also =~ 'pattern' (case-insensitive match, * wildcard); = / != with a *-wildcard string value behave as ILIKE / NOT ILIKE. Free-text search: matches('text') in WHERE searches the message, all attributes, and service case-insensitively (substring match; trace/span ids by exact match), e.g. SELECT * FROM logs WHERE matches('connection refused'). Call describe_schema first to discover available fields and dynamic attributes for your data. Sources: logs, spans, metrics. Dynamic attributes are queryable directly by name, dots included: http.request.method. Resource attributes need the resource. prefix: resource.service.name (logs and spans only; metrics does not expose resource attributes). Missing attributes read as NULL. Common fields per source: logs: timestamp, service, level, message, trace_id, span_id, parent_span_id, source_instance_id, log_id spans: timestamp, service, name, kind, status_code, status_message, trace_id, span_id, parent_span_id, source_instance_id, duration_ms metrics: metric_name, service, source_instance_id, timestamp, value Custom functions: count(), count_distinct(field), countIf(condition), sum(field), avg(field), min(field), max(field), p50(field), p95(field), p99(field), contains(field, 'token'), error_rate() (percentage, 0-100), request_count(), error_burn_rate(budget), latency_burn_rate(field, threshold, budget), rate(field), value(field), bucket(field, 'interval'), now(), regexp_extract(field, 'pattern' [, group]). bucket(timestamp, '5m') groups by time. Intervals: <number><unit> with unit m, h, or d (e.g. 1m, 5m, 30m, 1h, 6h, 1d). For a query that selects a single aliased bucket, groups by it alone, orders by it, and has no LIMIT, interior gaps between the first and last returned bucket are zero-filled in the response (numeric columns 0, others null). Buckets outside the data range are not invented; other query shapes still return only non-empty buckets. count(DISTINCT field) is accepted and is the same as count_distinct(field). DISTINCT inside any other aggregate (sum, avg, p95, ...) is rejected with an error rather than ignored. regexp_extract returns the first regex match (or capture group if specified). Returns null on no match. Example: regexp_extract(message, 'status=(\d+)', 1). Burn-rate rules (declared SLO): error_burn_rate(budget) is the error share divided by your budget (0.001 = 99.9% SLO); latency_burn_rate(duration_ms, 500, 0.03) is the share of requests over 500ms divided by a 3% budget. Alert when the result exceeds a burn multiple (e.g. GT 6 over a 60-minute window). Limitations: - Read-only SELECT only (no INSERT/UPDATE/DELETE/UNION). - No CROSS JOIN (use explicit JOIN ... ON). - No SYMMETRIC BETWEEN (order the bounds and use plain BETWEEN). - JOINs require qualified field references (e.g. l.service, s.name). - contains(field, 'token') matches whole alphanumeric tokens only (inverted index); it raises an error on non-string fields. Prefer purpose-built tools when they fit: use correlate when you have a trace id (returns spans, logs, and metric exemplars in one call), get_trace for the span tree alone, and aggregate_spans to find where errors or latency are concentrated before drilling in. Use run_sql for ad-hoc analysis that the other tools don't cover. Examples: SELECT service, count(*) FROM logs WHERE level = 'ERROR' GROUP BY service SELECT service, p95(duration_ms) FROM spans GROUP BY service SELECT bucket(timestamp, '5m') AS t, count(*) FROM logs GROUP BY t ORDER BY t SELECT http_method, count(*) FROM logs GROUP BY http_method SELECT http.response.status_code, count(*) FROM logs GROUP BY http.response.status_code SELECT s.name, l.message FROM spans s JOIN logs l ON s.trace_id = l.trace_id SELECT service FROM logs WHERE service IN (SELECT DISTINCT service FROM spans) SELECT error_burn_rate(0.001) AS value FROM spans WHERE service = 'my-svc' Each successful logs-only query also returns an explorerUrl opening the same query in the Fixter logs explorer (grid view; trace_id/span_id cells link to the trace waterfall). Attach it when citing rows as evidence to the user. The link's time window is derived from the returned rows' timestamps (or defaults to the last 30 days). explorerUrl is absent when the query errored, referenced spans or metrics anywhere (the logs page renders only logs), or contained double quotes (use single quotes for string literals), or used a query shape the explorer cannot reproduce.
    Connector
  • 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). 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 the full untruncated body of one row, use get_log. Defaults: from/to: open window if omitted — beware of unbounded scans 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..." (index-accelerated) - Whole-word token search: messageContains="timeout" - Substring/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 explorerUrl: shareable Fixter UI link opening this query in the log explorer — attach it when citing these logs as evidence to the user (covers the service/level/traceId filters and the window; timestamps display in the viewer's browser timezone) queryStats: rowsReturned, elapsedMs
    Connector
  • Version history of an artifact's AI reviews (F5): every review run is a version with its score, model, cost, who/what generated it, and whether it's the current one. Read-only; returns the version list, empty when the artifact has never been reviewed. Use it to see how a feature/experiment/page's review changed over time and to pick the version_id to pass to revert_to_version. Takes the same target_id/target_type you'd pass to review_artifact.
    Connector
  • Match Spanish properties from a free-form description of what the user wants. Best for vague, conditional, or lifestyle-heavy briefs ("3-bed near a good international school, flexible on budget if there's a sea view"). Uses Gemini to translate the brief into one to three parallel structured searches across PropertyList's full MLS, then merges and ranks the results. Returns up to 9 listings with match scores and an explanation of how the brief was interpreted (and what couldn't be resolved).
    Connector
  • **Executes the task on the real websites** (the search, the price check, the availability lookup, the configurator, the booking flow) and returns what came back. Runs a script you authored against the `get_library` vocabulary, on the live sites, and returns `{ ok, result, logs, error, ms }`. Call `get_library` FIRST — it gives the exact function names, argument shapes, and return types; this description is the LANGUAGE + how-to (get_library is just the vocabulary). THE LANGUAGE — plain async JavaScript: • `bowmark` is a ready global (no import). Call capabilities off it — `await bowmark.<capability>.<method>(...)` — always `await`, they're async. • Individual sites are callable too, at `await bowmark.providers.<provider>.<fn>(...)`. Use one when you specifically want THAT site; otherwise prefer the capability, which fans out across sites and routes around failures. • Real control flow: `await`, `if`, loops, array methods (`map`/`filter`/`sort`/`slice`), and `Promise.all` for fan-out. • `return` a value to get it back (JSON-serialized). `log(...)` for progress lines. • `bowmark` is the ONLY I/O — no `fetch`, `process`, filesystem, or `import`/`require`. Write a plain async body, not a wrapping function. • Keep scripts small and deterministic — no infinite loops. Runs in a hard sandbox with CPU + memory + wall-clock limits. SENDING IT: pass the script text as `run({ script })` — `script` is the only argument (there is no `site` argument; the library exposes every capability under `bowmark`). `result` is whatever you returned; `logs` are your `log()` lines in order; on a throw/timeout `ok:false` and `error` is set. CHECK `status` BEFORE `ok`. It is `ok` | `error` | `partial` | `needs_user`. • `partial` means the script RAN and `result` is real and usable, but some of what it called never answered — so the result is narrower than what you asked for. `ok` is still `true`; this is not a failure. `incomplete.summary` says what happened in one sentence, `incomplete.failures` names each call that threw and what the site said, and `incomplete.degraded` names each call that answered while reporting its OWN results thin. You MUST say so when you present the result: name what was missed, and do not describe it as complete, exhaustive, or 'all' of anything. A `partial` you report as whole is a wrong answer, not a slightly smaller right one. • Before you conclude a `partial` is final, check `incomplete.failures[].fixable`. `fixable: true` means YOUR ARGUMENT was rejected, not the site — the error text names what that function actually takes, so re-read it in `get_library`, fix the argument and run again; that recovers the whole answer. For any other failure re-running usually returns the same thing. • `needs_user` means a site needs the USER signed in — it is NOT a failure and NOT something you can fix by editing the script. `needs` lists the sites; `meta.handoff.url` is a single-use link that expires (`meta.handoff.expiresAt`). Give the user that URL, say which sites it covers, and WAIT. When they tell you they're done, send the SAME script again unchanged. Do NOT retry before then — it will stop at the same place and cost another run. Do NOT try to log in yourself, ask them for a password, or work around it with a different site. • Logged-in runs need a Bowmark API key on the connection; if you get `needs_user` saying so, tell the user to add one rather than retrying. `trace` is the execution trace — every capability you called and the providers it fanned out to under the hood: `[{ kind:'capability', capability:'flights', method:'search', ms }, { kind:'provider', capability:'flights', provider:'google_flights', fn:'search', results, status, ms }, …]`. The script never visits websites — it calls capabilities that route to providers, and the trace is the receipt. Composition is the point — call a method MULTIPLE times and combine results. To sweep a date range, call the search per date inside `Promise.all` and sort/filter the merged array (each flight result carries its `date`, so you can tell the runs apart). See the `get_library` examples for the exact shape. SOME capabilities return their rows alongside a `warnings` array — `{ flights, warnings }`, `{ hotels, warnings }`, `{ cars, warnings }`. Others return a bare array. The signature in `get_library` tells you which; go by it rather than assuming. Where there IS a `warnings` array it names any site dropped from the fan-out, and the rows themselves look identical with or without it. Read it, and pass on anything it says rather than quoting a 'cheapest' that only ranks the sites that happened to answer. Dropping `warnings` from what you return does not hide it — the run comes back `status: 'partial'` regardless, because the runtime counts what your script CALLED, not what it chose to report.
    Connector

Matching MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    MCP server for viewing Docker container logs on a remote VPS via SSH.
    5

Matching MCP Connectors

  • SUBORDINATE / supplementary path — does NOT close an acceptance criterion. Adds a text-only note (URL to a permanent external source like CI run / GitHub commit / issue, or a description of a manual scenario) as extra context alongside the real proof. The path that actually covers an AC and closes a Grove goal is goal-attach-evidence — use that one for every criterion. Plain evidence NEVER counts toward AC coverage no matter how many you add; it is only a complement to an attached file. NOT for bytes — screenshots, logs, API responses, exports all go through goal-attach-evidence. NOT for filesystem paths — those need goal-attach-evidence with the actual file.
    Connector
  • Search a registry for packages matching q. registry=all fans out to npm, Docker Hub, and the VS Code Marketplace and merges the results. PyPI has no public search API, so registry=pypi returns 400 not_supported — look a PyPI package up by name via get_package instead. Results are normalized PackageSummary items (npm adds a relevance score; Docker adds isOfficial).
    Connector
  • One-shot cross-signal pivot for a trace id. Given a trace id, returns (all fields top-level, no nested summary object): rootOperation, spanCount, errorCount, totalDurationNanos, startTime — trace summary spans — every span in the trace (up to 1000) logs — logs tagged with that traceId (index scan, no window limit, up to 1000) exemplars — metric exemplars whose traceId matches, within the span window (up to 1000) windowFrom / windowTo — the derived scan window (earliest span - 5s / latest span end + 5s) The window is derived from the trace's spans. If the trace is unknown, spans and exemplars are empty but logs are still returned if they carry the traceId. Exemplar filtering is window-bounded because the exemplars column is unindexed; logs are not window-bounded because the trace-id column is indexed. Use this as the primary entry point when you have a trace id and want to see all correlated signals at once. Returns core fields by default; verbose=true flattens attributes in for both spans and logs (plus a `resource` object) and long string values are capped. Use run_sql for raw columns or custom selection. After reviewing the result, drill into individual signals with logs, spans, or metrics as needed. Long-lived traces (scheduler ticks, batch jobs) can produce very large verbose responses even with the caps. Prefer verbose=false first; for error triage, the logs tool with traceId + level is a cheaper, targeted alternative. Pass maxStringChars to tighten string truncation per call. Returns: traceId, traceUrl, rootOperation, spanCount, errorCount, totalDurationNanos, startTime, windowFrom, windowTo, spans[], logs[], exemplars[], queryStats. traceUrl is a shareable Fixter UI link for this trace — attach it when citing the trace as evidence to the user.
    Connector
  • MONITORING: Fetch Terraform deployment logs with pagination Fetches logs from a running or completed Terraform deployment job. For **completed jobs**: uses REST endpoint for instant retrieval (supports `tail` for server-side filtering). For **running jobs**: streams via SSE with timeout-based pagination. **PAGINATION** (running jobs only): Use `last_event_id` from the response to fetch more: 1. First call: `tflogs(session_id='...')` → get logs + `last_event_id` 2. Next call: `tflogs(session_id='...', last_event_id='...')` → get NEW logs only 3. Repeat until `complete: true` in response **RESPONSE FIELDS**: - `logs`: Array of log messages collected - `last_event_id`: Pass this back to get more logs (pagination cursor, SSE only) - `complete`: true if job finished, false if more logs may be available - `total_logs`: total log entries before tail truncation REQUIRES: session_id from convoopen response (format: sess_v2_...). OPTIONAL: job_id to target a specific deployment (use tfruns to discover IDs), timeout (default 50s, max 55s), last_event_id (for pagination), tail (return only last N entries) ⚠️ CONTEXT WARNING: Deploy logs can be hundreds of lines. Use tail: 50 for completed jobs to avoid blowing up the context window.
    Connector
  • MONITORING: Quick status check for Terraform deployments Check the current status of a Terraform deployment job. Use this tool to quickly check if a deployment is running, completed, or failed. Returns job status, job_id, and other metadata without streaming logs. Use tflogs to stream the actual deployment logs. REQUIRES: session_id from convoopen response (format: sess_v2_...). OPTIONAL: job_id to target a specific deployment (use tfruns to discover IDs). **LIVENESS**: The response carries two distinct timestamps: - `updated_at` — last semantic change (only bumped when status / drift / version actually differ). Useful for sorting deployments; NOT a per-poll heartbeat. - `last_refresh_at` — last successful Oracle decode (stamped on every poll where reliable reached Oracle, even if nothing in the row changed). Use this to confirm reliable is still actively talking to Oracle for a long-running RUNNING job. Absent on rows that haven't been refreshed since the column was added. 💡 TIP: Examine workflow.usage prompt for more context on how to properly use these tools.
    Connector
  • Fetch the full results of a completed Disco run. Returns discovered patterns (with conditions, p-values, novelty scores, citations), feature importance scores, a summary with key insights, column statistics, and suggestions for what to explore next. The response includes a `dashboard_urls` object with direct links to each page of the interactive report — use these to direct the user to the most relevant view: - **summary**: AI-generated overview with key insights, novel findings, and plain-language explanation of the most important findings - **patterns**: Full list of discovered patterns with conditions, effect sizes, p-values, novelty scores, citations, and interactive visualizations - **features**: Feature importances, feature statistics and distribution plots, and correlation matrix - **territory**: Interactive 3D map showing how patterns select different regions of the data Only call this after discovery_status returns "completed". Args: run_id: The run ID returned by discovery_analyze. api_key: Disco API key (disco_...). Optional if DISCOVERY_API_KEY env var is set.
    Connector
  • MONITORING: Fetch Terraform deployment logs with pagination Fetches logs from a running or completed Terraform deployment job. For **completed jobs**: uses REST endpoint for instant retrieval (supports `tail` for server-side filtering). For **running jobs**: streams via SSE with timeout-based pagination. **PAGINATION** (running jobs only): Use `last_event_id` from the response to fetch more: 1. First call: `tflogs(session_id='...')` → get logs + `last_event_id` 2. Next call: `tflogs(session_id='...', last_event_id='...')` → get NEW logs only 3. Repeat until `complete: true` in response **RESPONSE FIELDS**: - `logs`: Array of log messages collected - `last_event_id`: Pass this back to get more logs (pagination cursor, SSE only) - `complete`: true if job finished, false if more logs may be available - `total_logs`: total log entries before tail truncation REQUIRES: session_id from convoopen response (format: sess_v2_...). OPTIONAL: job_id to target a specific deployment (use tfruns to discover IDs), timeout (default 50s, max 55s), last_event_id (for pagination), tail (return only last N entries) ⚠️ CONTEXT WARNING: Deploy logs can be hundreds of lines. Use tail: 50 for completed jobs to avoid blowing up the context window.
    Connector
  • Built-in product help — ask a natural-language "how do I…" question about Fastio and get a grounded, product-aware answer (or a short clarifying question) back in one call. EXPLAIN-ONLY / ADVISORY: it returns GUIDANCE TEXT and performs NO platform action (it will not create shares, move files, or change anything) — read the guidance, then act with the other tools. Answers are grounded in Fastio's own how-to knowledge AND phrased in terms of these MCP tools — they name the concrete `<tool> action="…"` calls to make — so prefer this over guessing endpoints or burning exploratory calls. For Q&A over YOUR uploaded files (RAG) use the `ai` tool instead — `how-to` answers questions about Fastio ITSELF. FREE and requires only an authenticated user (no org, no plan gate, no billing). Call action='describe' for the full action/param reference.
    Connector
  • The GammaRips candidate pool for a scan date. One tool, four `view`s: * view="enriched" (DEFAULT) — the curated AI-enriched pool: news, technicals, catalyst, a delta-targeted recommended contract, and the 60-day momentum feature `mom_60`. Enrichment gate: overnight_score>=4 AND directional UOA>$500K, edge-ranked to the top ~50 BULLISH names. This is the daily candidate set your agent reasons over to its OWN contract (see get_playbook("run-your-own-tournament")). Served from a leakage-safe view (forward-outcome columns physically stripped); `summary=True` gives ~21 decision columns, `fields=[...]` a strict projection, `summary=False` full rows, `offset` pages. * view="raw" — the wide pre-curation overnight scan (where unusual options activity concentrated across the whole universe, BEFORE curation). Honors `direction`, `min_score`, `ticker`, `limit`. * view="features" — point-in-time FEATURE VECTORS from the leakage-safe allowlist view `enriched_features_v1` (identity + features + cohort metadata only; no outcome/label/telemetry column can appear). The quantitative substrate for joining against query_outcomes. Lags the live pool by ~1-2 trading days. * view="preview" — a minimal public teaser (ticker, direction, score, headline, directional UOA) for the most recent scan; no contract specifics or thesis. TIER: view="preview" is FREE (no key). The enriched / raw / features views are the paid product — they require an active pro subscription key; an anon call to them returns `subscription_required` (get_pool(view='preview') is named as the free entry point). Liquidity caveat (all views): `recommended_oi`/`recommended_volume` are scan-time snapshots, not live values; `recommended_spread_pct` is permanently NULL on the current data plan — re-check with get_liquidity. Args: view: "enriched" (default) | "raw" | "features" | "preview". scan_date: YYYY-MM-DD (default: latest available scan for the view). direction: "bull"/"bear" prefix filter (enriched / raw). ticker: exact ticker filter (enriched / raw / features). min_score: overnight_score floor (raw view only; clamped 0-10). limit: max rows (enriched/raw clamp 1-50, features 1-100, preview 1-20). summary: enriched only — True=compact columns, False=full rows. fields: enriched only — explicit strict column projection. offset: enriched only — pagination offset.
    Connector
  • Run the full email and DNS deliverability check for a domain: MX, SPF, DKIM, DMARC, DNS health, provider detection, and blacklists. Returns a letter grade (A to F), a 0 to 100 score, and every individual check with its RFC reference. Set include_smtp to also run a live SMTP probe of the mail servers: the probe is non-blocking, so when smtp_status is "pending" or "running" call this tool again (poll_after_seconds hints how long to wait) until smtp_status is "complete" and the SMTP checks appear in checks.
    Connector
  • Collect console logs, exceptions, and log entries from a Safari page on an iOS device over a time window. Enables the Runtime and Log domains, then listens for Runtime.consoleAPICalled, Runtime.exceptionThrown, and Log.entryAdded events, and returns an array of { level, text, url?, line?, source? }. This is a LIVE-WINDOW collector: it only captures events fired AFTER it attaches (plus the buffered history WebKit replays on enable), so triggering the logging from a SEPARATE tool call races the attach and is missed. To capture logs from an action, pass triggerJs (run inside the window). Default window: 5 000 ms. Maximum: 15 000 ms. Omit pageId to auto-pick the active page.
    Connector
  • Discover the queryable fields, functions, and measures for a data source. Use this before run_sql to learn what's available. Sources: logs, spans, metrics. Default: logs. Call with NO arguments to start — you get the list of services (with volumes) plus the field profile for logs. Then optionally pass service=<name> to drill into one service's fields (different services emit different dynamic attributes). Per field: type, coverage, distinct-value estimate, top values (low-cardinality), and a GROUP BY verdict (safe / with care / filter only). Dynamic attributes are the ACTUAL keys in your data — use them directly in QuerySQL (e.g. SELECT http_method FROM logs). Resource-level attributes (logs and spans only) use a resource. prefix, e.g. resource.service.name. Always returns the source's measures (fn, label, unit, defaultMode — the mode a new alert rule on this measure should default to) and the available QuerySQL functions with their argument counts. For source=metrics, the metric list is volume-ranked and bounded to a default page; metricsMatched reports the true total independent of what was returned. Pass prefix=<text> to reach past that default page into the tail, e.g. prefix="http." for HTTP metrics. Optional filter=<predicate> restricts discovery to matching rows. The predicate is QuerySQL and uses the same field names as run_sql (e.g. level = 'ERROR', http_method = 'GET'); subqueries are not allowed.
    Connector
  • Return the logs chronologically around a given logId. Designed for the "what happened right before/after this alert?" question. Returns the anchor log plus N logs strictly older and N logs strictly newer, all scoped (by default) to the same sourceInstanceId — the same pod or process — so you don't see interleaved replicas. Defaults: before: 3 after: 3 sameSource: true Set sameSource=false for cross-pod neighbour queries (e.g. "what else was the cluster doing at this moment?"). Returns: anchor: the log identified by logId before: logs older than anchor, sorted oldest-first (chronological) after: logs newer than anchor, sorted oldest-first (chronological) queryStats: rowsReturned, elapsedMs
    Connector
  • How paying for Agent402 tools works and how to manage a wallet. This hosted connector holds NO wallet: 223 pure-CPU tools run free here (or solve a proof-of-work puzzle), the rest - including search/answer and the /v1 OpenAI-compatible LLM gateway - settle in USDC via x402. Covers: the free vs paid split, how to configure a funded wallet + per-call and budget spend caps, the rails (USDC on Base, Solana, Polygon, Arbitrum, Monad, Celo, Avalanche, Sei, Optimism, Stellar, or Algorand - or USDG on Robinhood Chain), and checking a wallet's balance/transaction history via catalog.call on wallet-balances / wallet-transactions. Returns { connector, freeTier, pay, spendControls, balanceAndHistory }.
    Connector