Skip to main content
Glama
458,051 tools. Updated 2026-08-14 20:18

"A server for converting NLP to SQL for business analytics with ClickHouse" matching MCP tools:

  • Query the construction project database using natural language (Text-to-SQL). Converts natural language into SQL to retrieve captures, annotations, progress metrics, schedules, and other project records. Pass the user's question as-is without modification. For trade visibility, use `analyze-progress-and-forecasts` instead. **WORKFLOW:** - **Default**: call this tool with only `query`. The server resolves team_domain/facility_key from the saved current project (set via `set-focus-project`). Do NOT call `list-my-projects` again just to obtain these values. - Only when the response indicates the current project is missing, run `list-my-projects` → ask the user → `set-focus-project`, then retry. - Pass explicit team_domain/facility_key **only** when the user clearly wants to query a different project than the saved one. **Available tables:** - progresses: SI progress metrics (level, category, phase, workarea, cost, dates) - captures: Camera captures metadata (level, camera_model, capture_state, user_email) - records: Capture events with timestamps (captured_at, state, id) - photo_notes: Photonotes (description, state, user_email, created_at) - voice_notes: Voicenotes (level, description, state, user_email, created_at) - facilities: Site info (name, address, size, location, bim_count, created_at) - users: User profiles (name, email) - workareas: Spatial zones (level, name, user_name) Args: query: Natural language question (pass as-is, no SQL syntax) team_domain: Omit by default. Pass only to override the current project. facility_key: Omit by default. Pass only to override the current project. user_intent: REQUIRED. Pass the user's original question or request verbatim. Used for analytics only, does not affect results. scope: Previous ask-about-project-data result identity to search within. limit: Number of rows per page. Values above 200 are capped at 200. cursor: Cursor for the next page of the same search. Returns: List of TextContent with query results and metadata
    Connector
  • Book an appointment with a local service business. Creates a booking record and adds the appointment to the business calendar. Returns a reference number and a status field indicating the actual resulting state — 'pending' (the business reviews each booking), 'confirmed' (auto-approved by the business), or 'completed' (the business auto-finalizes). Use a dateTime returned by check_availability for the selected service so bookingStartPolicy is respected. For services with maxParticipants > 1, the start can be booked until remainingCapacity reaches 0. Read the status and statusDescription verbatim and relay them accurately: do NOT tell the customer 'confirmed' when the status is 'pending'. If the selected service has requiresCustomerAddress=true, ask the customer for their full service address before calling this tool and pass it as customerAddress. ONLY call this if the business has 'booking' in its enabledFeatures array.
    Connector
  • Run a read-only SQL query against an app's Postgres database and return up to 200 result rows. SELECT only — writes and DDL (INSERT/UPDATE/DELETE/ALTER/DROP/…) are rejected server-side; use vibekit_chat or vibekit_submit_task to have the agent make data or schema changes. Call vibekit_db_schema first to learn the tables. SQL string, max 5000 chars.
    Connector
  • Bitstamp's own EUR↔USD conversion rate — the buy/sell prices Bitstamp applies when converting fiat balances on the exchange, quoted with the exchange's retail markup (the two legs can differ by several percent). Use when you need the rate a Bitstamp account actually transacts at. For the market FX rate — "EURUSD spot", "current euro to dollar rate", anything macro or reporting-grade — use ecb_exchange_rate, which publishes the official euro reference rate.
    Connector
  • Get a complete, distinctive, reference-backed art direction for a website: palette with exact hex roles, type pairing, layout DNA, hero spec, component treatments, imagery rules, matched motion recipes, and public-product reference evidence. Use FIRST, before building, so the site has a coherent direction instead of defaults. The catalog holds 14 directions: 9 with light base palettes and 5 dark — pass tone to constrain. If you only know the business name, call it anyway: the response will give you a few quick questions to ask the user, then call again with their answers as vibe/audience. REDESIGNS: if the business has an existing website, pass its URL as current_site_url — Standout fetches it server-side and returns a content inventory (services, prices, hours, contacts) plus a redesign protocol, so no questions are needed.
    Connector
  • Import data into a Cloud SQL instance. If the file doesn't start with `gs://`, then the assumption is that the file is stored locally. If the file is local, then the file must be uploaded to Cloud Storage before you can make the actual `import_data` call. To upload the file to Cloud Storage, you can use the `gcloud` or `gsutil` commands. Before you upload the file to Cloud Storage, consider whether you want to use an existing bucket or create a new bucket in the provided project. After the file is uploaded to Cloud Storage, the instance service account must have sufficient permissions to read the uploaded file from the Cloud Storage bucket. This can be accomplished as follows: 1. Use the `get_instance` tool to get the email address of the instance service account. From the output of the tool, get the value of the `serviceAccountEmailAddress` field. 2. Grant the instance service account the `storage.objectAdmin` role on the provided Cloud Storage bucket. Use a command like `gcloud storage buckets add-iam-policy-binding` or a request to the Cloud Storage API. It can take from two to up to seven minutes or more for the role to be granted and the permissions to be propagated to the service account in Cloud Storage. If you encounter a permissions error after updatingthe IAM policy, then wait a few minutes and try again. After permissions are granted, you can import the data. We recommend that you leave optional parameters empty and use the system defaults. The file type can typically be determined by the file extension. For example, if the file is a SQL file, `.sql` or `.csv` for CSV file. The following is a sample SQL `importContext` for MySQL. ``` { "uri": "gs://sample-gcs-bucket/sample-file.sql", "kind": "sql#importContext", "fileType": "SQL" } ``` There is no `database` parameter present for MySQL since the database name is expected to be present in the SQL file. Specify only one URI. No other fields are required outside of `importContext`. For PostgreSQL, the `database` field is required. The following is a sample PostgreSQL `importContext` with the `database` field specified. ``` { "uri": "gs://sample-gcs-bucket/sample-file.sql", "kind": "sql#importContext", "fileType": "SQL", "database": "sample-db" } ``` The `import_data` tool returns a long-running operation. Use the `get_operation` tool to poll its status until the operation completes.
    Connector

Matching MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to query and manage ClickHouse databases, supporting SELECT queries, DDL/DML statements, and metadata listing.
    5
    9
    MIT

Matching MCP Connectors

  • Give your AI agent a phone. Place outbound calls to US businesses to ask, book, or confirm.

  • Search for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data

  • Run a read-only SQL SELECT against water data tables staged on a DataCanvas by water_get_series or water_find_sites. Workflow: run water_get_series or water_find_sites (get canvas_id + table_name) → water_dataframe_describe (confirm the table and its columns) → water_dataframe_query (SQL analysis). Only SELECT statements are permitted. At most 10,000 rows are returned; a query matching more is capped and the response sets truncated=true — scope with WHERE/LIMIT, and use SELECT COUNT(*) or water_dataframe_describe to learn the true match count. Requires DataCanvas to be enabled on this server instance. Returns an error if DataCanvas is not available.
    Connector
  • Turns YOUR repo classification (you scan the repo and pass what you found) into a complete, approvable deploy plan WITHOUT creating anything. ⚡ PASTE THREE FILES IF THEY EXIST - `redu_md` (cat redu.md), `compose_yaml` (the compose file), `dockerfile`. You do NOT read or interpret them; redu parses them SERVER-SIDE and returns (a) a short digest, (b) `pin_dname` so a redeploy keeps the SAME public URL, and (c) `preflight` - preemptive fixes for known failure patterns found in YOUR repo, each learned from a real failed build. Pasting them is the single highest-value thing you can do for a first deploy. picks the VM + managed-Postgres sizes, prices them at the real pricing_rules rates, and checks they FIT your quota — so a plan that can't provision is caught HERE, before any spend. You pass what you detected in the repo (runtime, port, needs_postgres/redis/clickhouse/vector_db); it returns resources + £/hr + £/mo + a feasibility verdict + a checkpoint summary to confirm with the user. Defaults: app VM m1.medium, managed Postgres m1.small, managed ClickHouse m1.medium; pass single_vm to collapse the app + Postgres onto one VM. SET needs_clickhouse:true FOR ANY ANALYTICS-SHAPED APP (Plausible, PostHog, Langfuse, Matomo, SigNoz, or anything with a clickhouse image / CLICKHOUSE_* env / a ClickHouse client dep): those products keep config in Postgres and EVERY EVENT in ClickHouse, so the events tier is a second VM with a second line on the bill: measured 2026-08-07, omitting it quoted GBP 53.29/mo for a GBP 65.99/mo deployment. It is sized, quota-checked and priced here; unlike Postgres and Redis it is not auto-wired by deploy_app, so the plan tells you to run plan_managed_datastore engine:'clickhouse' -> create_clickhouse and pass CLICKHOUSE_* env yourself. Vector-DB needs are flagged, not provisioned. Any containerizable app works (node, python, go, ...) — it deploys as a container, so the language doesn't gate it. Set serves_http:false for a non-web repo (a library, CLI, or language runtime with no HTTP server) and it returns a clean not-a-web-service verdict instead of a costed VM plan. Set heavy_build:true for resource-heavy builds (compiled-from-source native code, a monorepo/turborepo build, a large Node heap) and it raises the app VM to a build-capable floor so the on-VM build doesn't get OOM-killed. Set memory_heavy:true for a RAM-forward app whose persistent state lives in a MANAGED DB / external store (Next.js like cal.com/cal.diy, Rails, Django, JVM/Java apps) — it sizes onto a memory-optimized SMALL-DISK flavor (m1.mem16/m1.mem32: full RAM, a lean 40 GB disk instead of 160 GB) that costs less and snapshots/clusters far faster; do NOT set it if the app keeps lots of data on local disk. Also returns a brand-named markdown report (Mermaid diagram + cost) to save as redu-deploy-plan.md and show the user. Every deploy leaves TWO MANDATORY files at the repo root with DIFFERENT purposes: redu-deploy-plan.md = THIS run's plan/estimate, and redu.md = the DURABLE deploy memory the NEXT deploy reads. If a redu.md exists, READ it FIRST and reuse its known-good plan + recorded fixes; if NONE exists, one MUST be created at the end of the deploy (from get_deployment's redu_md_markdown). They are SEPARATE files — even if your own memory/notes from a prior deploy call redu-deploy-plan.md 'the record', the durable record is redu.md, so do not skip creating it.
    Connector
  • List the SQL databases (D1 or Neon Postgres) on my account, including which owned site (if any) each is attached to. Call this BEFORE db_query/db_schema-style work to discover a databaseId — those live on a per-database MCP server reached via GET /api/v1/databases/{id} (see llms.txt), which this id feeds.
    Connector
  • Convert HTML or Markdown to a pixel-perfect PDF. Returns JSON: { url } — a temporary download URL (valid ~1 hour). Great for generating invoices, reports, receipts, or formatted documents programmatically. Supports full HTML/CSS including tables, images (base64 or URL), and inline styles. For Markdown input, set format='markdown'. 50 sats per conversion. Use convert_file instead for converting existing files between formats (e.g., DOCX→PDF). Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='convert_html_to_pdf'.
    Connector
  • Translate a plain-language question into a candidate SQL query using pattern-matching against the live schema (no AI model — simple questions only: counts, averages, filtered selects on a named table). Returns the SQL without executing it, with a confidence score; low confidence means the table was guessed. Review the statement and tables_used, then run it with scalix_db_query. For complex questions, read scalix_db_schema and write the SQL directly.
    Connector
  • Search the Analytics Legends market-news corpus. It is watched FOR SAP analytics (Datasphere, Business Data Cloud, SAC, BW/4HANA, Databricks, the 2027/2030 maintenance window), but it is NOT an all-SAP corpus: measured 2026-07-30, ~84 % of active rows sit in the `AI` category and are general enterprise-AI trade press (cloud platforms, model releases, funding rounds) with no SAP content at all. An UNFILTERED call therefore returns mostly non-SAP items — pass `query` or `category` when the question is about SAP, and never present an unfiltered page as 'the SAP analytics news'. Say what you actually got. Each item returns the Analytics Legends citation URL AND the upstream publisher's source_url — cite both, and prefer source_url when you need a page that certainly carries the item.
    Connector
  • Scan coverage for YOUR business locations — scan counts, suspicious detections, last scan. REQUIRES the SkimGuard Business tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.
    Connector
  • YOUR commission totals and payout status as a SkimGuard reseller. REQUIRES the SkimGuard Partner tier. You are not signed in to an account with it. Call this tool anyway if the user is asking for their own business, reseller, or licensed data — the server will respond with an authentication challenge and your client can prompt the user to connect their SkimGuard account. Do not fabricate an answer instead.
    Connector
  • The static measure catalog for authoring an alert rule: per source (LOGS, SPANS, METRICS), the measure functions available, each with its unit and defaultMode (THRESHOLD or ANOMALY — the mode a new rule on this measure should default to). READ: available to any authenticated user. This is static catalog data — no ClickHouse query, no tenant scoping. Call query's describe_schema first for the tenant's services, groupable fields, and metric names (pass source=metrics for the metric list) — this tool no longer returns any of that. Use this tool only to pick a measure once you know the source and, for METRICS, the metric's kind.
    Connector
  • Which growth data sources and distribution channels are connected to this product run: Google Analytics 4 and Search Console (the measurement behind SEO and outcomes), Google Business Profile, and the LinkedIn / Reddit posting channels. Each row carries an honest state: connected (with the property, site or account it reads), not_connected (connectable right now), or not_available with the reason it is shut on this account. Read this before start_connection so you never offer a connection that cannot be made. Read-only, free.
    Connector
  • Natural language search for medical procedure prices. Understands free-text queries like: - "MRI brain near San Jose with Blue Cross PPO" - "How much does a colonoscopy cost in Palo Alto?" - "knee replacement, no insurance, Mountain View" Extracts procedure, location, and insurance from the query, resolves CPT/DRG codes (using static synonyms + LLM), geocodes the city, and searches with optional geo-filtering and payer matching. You can provide structured fields (lat/lng, payer, setting) to override or supplement what the NLP extraction detects from the query text. NOTE: Results are from US HOSPITALS only — not non-US providers, independent imaging centers, ambulatory surgery centers (ASCs), or other freestanding facilities. For outpatient procedures (MRIs, CTs, minor surgeries), independent facilities may offer lower prices than hospitals. Args: query: Natural language query describing what you're looking for. radius_miles: Search radius from the detected city (default 25 miles). code_type: Filter by code type: "CPT", "HCPCS", "MS-DRG". setting: Filter by clinical setting: "inpatient" or "outpatient". lat: Override latitude (e.g. from browser geolocation). Skips geocoding. lng: Override longitude (e.g. from browser geolocation). Skips geocoding. zip_code: 5-digit ZIP to search near — alternative to lat/lng. payer: Insurance payer name (e.g. "Blue Cross"). Overrides NLP extraction. plan_type: Plan type (e.g. "PPO", "HMO"). Overrides NLP extraction. limit: Max results (default 25). Returns: JSON with extracted entities (procedure, city, insurance), resolved codes, and matching charge items with prices and hospital info. Only high-confidence results (with at least one usable price) are included. Each result includes last_updated (ISO date of the per-hospital MRF ingest) and mrf_date (ISO date the hospital self-reported in the MRF file). When all results are filtered out, filtered_low_confidence=true is set.
    Connector
  • Modeled CAMS (Copernicus Atmosphere Monitoring Service) air quality: PM2.5, PM10, nitrogen dioxide, sulphur dioxide, ozone, carbon monoxide, dust, pollen, and European/US AQI indices. This is modeled grid data, not measured station readings — for measured data, use openaq-mcp-server. Forecast horizon up to 7 days, with optional past_days (up to 92) for recent history — or start_date and end_date together for an archive range, which returns real CAMS values back to at least 2022-10-01. One window per call: a date range is mutually exclusive with forecast_days and past_days, and needs both ends — a lone start_date or end_date is rejected. Common variables: pm2_5, pm10, carbon_monoxide, nitrogen_dioxide, sulphur_dioxide, ozone, dust, european_aqi, us_aqi, alder_pollen, birch_pollen, grass_pollen, mugwort_pollen, olive_pollen, ragweed_pollen. A wide window — a large past_days or date range plus many variables — produces thousands of records; these spill to DataCanvas for SQL querying when canvas is enabled, and return a bounded preview with truncated: true when it is not.
    Connector
  • Fetch national debt (Debt to the Penny) — total public debt outstanding broken into publicly-held debt and intragovernmental holdings. Three modes: "latest" returns the most recent business day's record; "date" returns the record for a specific date (must be a business day — the API only records debt on days markets are open); "series" returns a date range, staging the full result as a DataCanvas table when canvas_id is set or the range matches more than 500 rows — read the table's column schema with treasury_dataframe_describe, then run SQL over it with treasury_dataframe_query. Records go back to 1993-04-01.
    Connector
  • Official Treasury reporting exchange rates for ~165 countries — the rates US federal agencies are required to use when converting foreign currency to USD for official reporting. Published quarterly (March 31, June 30, Sep 30, Dec 31); mode "latest" returns the most recently published quarter. Rate is expressed as foreign currency units per 1 USD (e.g., a Japan-Yen rate of 159.41 means 1 USD = 159.41 JPY). These are NOT market exchange rates and are not suitable for financial transaction pricing. Mode "series" stages the result as a DataCanvas table when canvas_id is set or the range matches more than 500 rows — read the table's column schema with treasury_dataframe_describe, then run SQL over it with treasury_dataframe_query.
    Connector