Skip to content
viAct logo

viAct MCP server

Which MCP servers are viAct's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-09

← Back to viAct

Whose server it is
  • Addresshttps://mcp.viact.ai/mcpnot in the official registry: answered when asked

No entry in the official MCP registry names this server. It answered on viact.ai when the Atlas asked at the address servers are usually mounted on, so it is the vendor's own. Clients and catalogues that list servers from the registry do not show it.

When we asked itchecked 2026-10-27
  • Stateanswerschecked 2026-10-27
  • Tools87
  • Server calls itselfdot-ai-backend
  • Server version2.14.4
  • Protocol version2025-06-18

On 2026-10-27 the server answered initialize and tools/list without a sign-in. First answer in 298 ms.

Should an agent connect itNot proven either way yet
  • Whether its tools do the product's job has not been judged yet.
  • Checked on 1 of the 7 days it takes to judge reliability.

Once connected

  • permit-createPermitDraft, permit-updatePermit, permit-publishPermit, cpecs-createPaymentPackage, cpecs-setReviewState change data without a sign-in: anyone with the address can call them.
  • Parameters are untyped or undescribed in 69 of 87 tools: check arguments before calling.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 1, the first on 2026-10-27
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 1 so far
  • Answeredmeasuring1 of the 7 daily checks it takes to print a share
  • Median first answer684 ms
  • Space in an agent's context≈ 13,016 tokensthe definitions of all its tools (87), which an agent carries on every turn
  • Tool definitionsC · 69 of 100
  • Typed results4 of 87 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a type: in 7 of 87
  • Parameters without a description: in 69 of 87
  • Not saying whether it only reads or can destroy: 87 of 87

Worth a look

  • Tools that change data, on a server that answers without a sign-in: permit-createPermitDraft, permit-updatePermit, permit-publishPermit, cpecs-createPaymentPackage, cpecs-setReviewState

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers87 tools · read 2026-10-27
  • company-getCompany

    [Company] Executes GET /api/company/{id}

  • groupingUnit-createGroupingUnit

    [Grouping Unit] Creates a new grouping unit in the hierarchy

  • groupingUnit-getGroupingUnitTree

    [Grouping Unit] Returns the hierarchical structure of grouping units starting from the specified unit **Path Parameters:** - **unitId**: Grouping Unit ID

  • groupingUnit-getRootUnits

    [Grouping Unit] Returns all active root-level grouping units

  • groupingUnit-getGroupingLevels

    [Grouping Unit] Returns the available grouping levels ordered by hierarchy

  • groupingUnit-addCompaniesToUnit

    [Grouping Unit] Adds one or more companies to the specified grouping unit and propagates the assignment up the hierarchy **Path Parameters:** - **id**: Grouping Unit ID

  • monitor-getLists

    [Monitor] Executes GET /api/monitor

  • monitor-getMonitor

    [Monitor] Executes GET /api/monitor/{id}

  • stats-getObjectCountingStatistic

    [Stats] Get Object counting statistic

  • stats-getSmartWatchStats

    [Stats] Get Critical incident statistic

  • stats-getSWActivityStats

    [Stats] Get Smart watch activity statistic

  • stats-getGasSensorStats

    [Stats] Get gas sensor statistic

  • stats-getAlertsTrendSummary

    [Stats] Get trend change alerts

  • stats-getAllAlertsTrendSummary

    [Stats] Get trend change alerts

  • stats-getAlertTrendByRange

    [Stats] Get alert trends summary by range and duration

  • stats-getAlertSummaryByLatLng

    [Stats] Get alerts summary by lat and long

  • stats-getAllAlertTrends

    [Stats] Get trend change alerts

  • detection-getAllDetections

    [Detection] Executes GET /api/detection

  • engines-searchEngines

    [Engines] Executes GET /api/engines/search

  • inventory-getAllInventory

    [Inventory] Executes GET /api/inventory

  • inventory-getInventoryStatsValidity

    [Inventory] Executes GET /api/inventory/stats-validity

  • inventory-getInventory

    [Inventory] Executes GET /api/inventory/{id}

  • companyMonitors-createNewCME

    [Company Monitors] Executes POST /api/companies-monitors-engines

  • smartLock-getSmartLockEventLogs

    [Smart Lock] Executes GET /api/smart-lock/events

  • smartLock-getAllSmartLockDevices

    [Smart Lock] Executes GET /api/smart-lock/devices

  • smartLock-getSmartLockDevice

    [Smart Lock] Executes GET /api/smart-lock/devices/{id}

  • permit-getPermitStatsStatus

    [Permit] Executes GET /api/permit/stats/status

  • permit-listPermits

    [Permit] Executes GET /api/permit

  • permit-createPermitDraft

    [Permit] Executes POST /api/permit/draft

  • permit-duplicatePermit

    [Permit] Executes POST /api/permit/{id}/duplicate

  • permit-getPermitById

    [Permit] Executes GET /api/permit/{id}

  • permit-updatePermit

    [Permit] Executes PUT /api/permit/{id}

  • permit-getPermitLogs

    [Permit] Executes GET /api/permit/{id}/logs

  • permit-publishPermit

    [Permit] Executes PUT /api/permit/{id}/publish

  • permit-listPermitTemplates

    [Permit] Executes GET /api/permit-template

  • permit-listPermitCategories

    [Permit] Executes GET /api/permit-template/category

  • permit-getPermitTemplateById

    [Permit] Executes GET /api/permit-template/{id}

  • gasMeter-getGasDeviceMonitoring

    [Gas Meter] Executes GET /api/gas-meter/{deviceId}/device-monitoring

  • gasDevice-getGasDevices

    [Gas Device] Executes GET /api/gas-devices

  • gasDevice-getGasDeviceAlerts

    [Gas Device] Executes GET /api/gas-devices/alerts

  • gasDevice-getGasDevice

    [Gas Device] Executes GET /api/gas-devices/{id}

  • droneDetection-getAllMonitorVideos

    [Drone Detection] Retrieve list of monitor videos with filters for text search, pagination, and engines

  • droneDetection-getDetectionsByDrone

    [Drone Detection] Retrieves drone detections filtered by company_code and/or monitor_id (drone). company_code defaults to the authenticated user's company. Supports optional period and status filters. Executes as a single query via…

  • droneDetection-getMonitorVideo

    [Drone Detection] Retrieve a specific monitor video by its monitor ID including monitor details and detection count

  • cpecs-listPaymentPackages

    [CPECS] Triage view of payment-application packages for the active project (resolved from request context). Supports status / search / pagination. Read-only.

  • cpecs-createPaymentPackage

    [CPECS] Create a package end-to-end in the active project (from request context): create → save cost-component groups → save line items → optionally publish. Confirm-gated in the agent runtime; the agent shows the draft for approval first.

  • cpecs-getPackageOverview

    [CPECS] Single rich read for a package: KPIs, grouped totals, duplicate flags and status. Replaces the multi-call fan-out the UI does.

  • cpecs-getPackageCostStructure

    [CPECS] Cost-component groups joined with their line items — "what is this package made of?". Grounds mapping & over-claim checks.

  • cpecs-listPackagePaymentApps

    [CPECS] All payment applications (bids) submitted under a package and their workflow state — feeds vetting selection.

  • cpecs-getPaymentAppReviewBundle

    [CPECS] Core vetting read. One call returns the full payment app (header + items by bucket + totals), prior-cert cross-check deltas, and the audit trail.

  • cpecs-getItemEvidence

    [CPECS] Prior-period diff, change history and the note thread for one item — used to justify a reject. Lazy-loaded so the review bundle stays lean.

  • cpecs-benchmarkLineItems

    [CPECS] The agent's pricing evidence. Batch-compares the supplied line items (pass them from get_payment_app_review_bundle) against the Rate DB and returns, per item, the matched band (p25/median/p75), Δ vs median %, escalation flag and a…

  • cpecs-searchRateDb

    [CPECS] Free-text / filtered similarity search of the Rate Database — ad-hoc "find me rates for X" and grounding for the wizard.

  • cpecs-getRateBenchmark

    [CPECS] Single-item benchmark with optional time-escalation — "is this unit rate fair vs market?" for one description.

  • cpecs-listSoccCatalogue

    [CPECS] Valid SoCC (Standard of Cost Components) codes for the active project (from request context) — grounding so SoCC mappings use real codes, not hallucinated ones. Read-only.

  • cpecs-classifyItem

    [CPECS] All reversible edits to one invoice line, behind an action discriminator: "assess" (accept), "map_socc" (set SoCC code), "quick_add" (create + map a cost-component line), or "note" (append a note). Returns the refreshed payment app.

  • cpecs-rejectItem

    [CPECS] Reject a line with a required reason (lands in the note thread + audit). mode="disallow" strikes it; mode="return" sends it back for backup. Confirm-gated in the agent runtime.

  • cpecs-setReviewState

    [CPECS] Toggle the application review state. state="reviewed" promotes it (precondition: no items left unmapped/unassessed); state="in_review" reopens it. Returns the refreshed payment app.

  • cpecs-certifyPaymentApp

    [CPECS] Certify the payment application — the money-moving final step. Irreversible. The agent must present the certify total + disallowed summary and obtain explicit human approval before calling this.

  • cpecs-startSpecExtraction

    [CPECS] Enqueue an extraction job for a spec PDF already uploaded to S3 (presigned). Returns a job view; poll get_spec_extraction_status until done. Produces a DRAFT only — nothing is persisted to a package.

The first 60 of 87, as the server listed them.

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "viact": {
      "type": "http",
      "url": "https://mcp.viact.ai/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http viact https://mcp.viact.ai/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://mcp.viact.ai/mcp as a custom connector in the settings.

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.