---
title: "What your assistant can do"
description: "The tools the Vigilis MCP server offers your assistant: search, record lookups, reports, writes, and bandwidth change orders."
---

> Documentation Index
> Fetch the complete documentation index at: https://support.vigilis.io/llms.txt
> Use this file to discover all available pages before exploring further.

# What your assistant can do

Your assistant sees the same set of tools no matter who you are. What differs is which ones actually return data when called, which comes down to your plan, your role, and the records your organization has.

## Finding things

| Tool | What it does |
| --- | --- |
| `search` | Free-text search across every record type you can reach, returned in groups. The best starting point when you do not know where something lives. |
| `fields_describe` | Lists the fields available on a record type, so the assistant can filter and write accurately instead of guessing field names. |
| `user_list` | A directory used to resolve record owners by name. Partner staff only, so it is listed but refused for Vigilis customers. |

## Working with records

Every record type gets the same five tools, named after it:

- `<record>_list` filters and pages through records.
- `<record>_get` fetches one record by id.
- `<record>_create` creates one.
- `<record>_update` changes one.
- `<record>_delete` removes one (a soft delete where the record type supports it).

The record types:

| Record type | Tool prefix | Availability |
| --- | --- | --- |
| Services | `service` | All customers |
| Account numbers | `account` | All customers |
| Invoices | `invoice` | All customers |
| Contracts | `contract` | All customers |
| Locations | `location` | All customers |
| Tickets | `ticket` | All customers |
| Projects | `project` | All customers |
| Network connections | `connection` | All customers |
| Phone numbers | `phone` | All customers |
| Companies | `company` | Partner CRM only |
| Contacts | `contact` | Partner CRM only |
| Deals | `deal` | Partner CRM only |
| CRM tasks | `crm_task` | Partner CRM only |
| Notes | `note` | Partner CRM only |
| Quotes | `quote` | Partner CRM only |
| Pipeline stages | `pipeline` | Partner CRM only, read-only |

The CRM record types belong to the partner side of the platform. If you are a Vigilis customer rather than a partner, those tools are listed but refuse with a message saying so.

Pipeline stages are the exception to the five-tool pattern: they can be listed and read but not
created, changed, or deleted. Stages are edited as an ordered set in settings, not one row at a time.

## Reports

| Tool | What it returns |
| --- | --- |
| `report_spend_by_provider` | Total invoiced spend grouped by provider, optionally bounded by invoice date. |
| `report_expiring_contracts` | Contracts expiring within the next N days (90 by default). |
| `report_dashboard_metrics` | Headline counts: total services, total invoices, open tickets, and contracts expiring in 90 days. |

## Changing bandwidth

`connection_set_bandwidth` is the one tool that reaches outside Vigilis. It places a change order with the carrier to move a circuit to a new speed.

Ask for a new speed and the assistant gets back the price difference from that circuit's rate card, with nothing submitted. Confirm, and the order goes in and you get a change id back.

Use this rather than `connection_update` to change a speed. Bandwidth is controlled by the carrier, and the inventory sync overwrites a direct edit at its next run, so a plain update looks like it worked and then quietly reverts. The tool refuses that edit and points you here instead.

See [Bandwidth schedules](/network/bandwidth-schedules/) and [Auto Flux](/network/auto-flux/) for the scheduled and automatic versions of the same change.

## Nothing changes until you confirm

Every tool that writes (`_create`, `_update`, `_delete`, and `connection_set_bandwidth`) is a preview by default.

1. The assistant calls the tool. It returns what would happen: the record it would create, the fields it would change, or the price delta on a circuit.
2. You look at that and say go ahead.
3. The assistant calls again with `confirm` set, and only then does anything change.

Retries are safe. Each write can carry an idempotency key, so an assistant that loses its connection mid-call and tries again returns the original result instead of creating a second record or placing a second change order.

## Fields your assistant cannot set

A few fields are refused by design, with an explanation rather than a silent failure.

| Field | Why | What happens instead |
| --- | --- | --- |
| A circuit's bandwidth | The carrier inventory sync overwrites a direct edit, so the change would look successful and then vanish | Use `connection_set_bandwidth`, above |
| A CRM task's completed flag | It is derived from the task's status | Set the status instead |
| A ticket's deduplication key | Assigned by Vigilis, and background reconciliation matches on it | Nothing. It is not yours to set |
| Record id, timestamps, and the organization a record belongs to | Identity and tenancy | Nothing. These come from your sign-in |

Unknown field names are rejected outright rather than ignored, so a typo fails loudly instead of
quietly dropping a value.

## Narrowing and sorting

Every list tool takes more than free text: filters combined with AND and OR, sorting on any field,
relative date ranges such as last quarter, and a choice of which columns come back. You never write
any of it, because the assistant builds it from your description. See
[Getting good answers](/mcp/getting-good-answers/) for what is possible and how to ask.

Lists return 25 records by default and 100 at most. Reports cap at 200. There are no unbounded
queries, by design.

## What is held back

Credential fields are stripped from everything the MCP server returns. Secrets, API keys, passwords, and access tokens stored against your provider connections are excluded from reads, so an assistant cannot retrieve them even when it can read the record they sit on. Naming one explicitly is refused rather than silently dropped.

Deleted records are hidden as well. A soft-deleted record stays out of every ordinary list and search; reaching one requires the administrative scope and exists for merge, restore, and audit work.

## Common questions

**Which tools does the Vigilis MCP server offer?**

A search tool, a field-description tool, a partner-staff directory, five tools (list, get, create, update, delete) for each record type, three reports, and a dedicated tool for changing a circuit's bandwidth. Pipeline stages are the one read-only record type.

**Will my assistant change something without asking?**

No. Every create, update, delete, and bandwidth change returns a preview by default and only takes effect when the assistant calls it again with confirm set to true.

**Why does my assistant list tools it then refuses to use?**

The tool list is the same for everyone. Access is checked when a tool actually runs, so a tool for a record type your plan or role does not cover will appear in the list and return a clear refusal when called.

**Why was a field my assistant tried to set rejected?**

A handful of fields are refused by design, either because they are derived from another field or because a carrier sync would overwrite them. The refusal names the field and says what to do instead. Unknown field names are rejected outright too, so a typo fails loudly rather than being ignored.

**Can the assistant change a circuit's bandwidth?**

Yes, with connection_set_bandwidth, which places a real change order with the carrier. It returns the price difference first and only submits when you confirm.

Source: https://support.vigilis.io/mcp/what-your-assistant-can-do/index.mdx
