MCP
Tools Reference

Tools reference

Fourteen tools are available. Your assistant chooses which to call based on what you ask, so you rarely name one directly. This page is for checking exactly what a tool does and what its results mean.

Which tools you can use depends on your plan. See Plans and limits.

Two conventions apply throughout:

  • Every search tool accepts filter_by_state, as a full name or a two-letter code ("Texas" or "TX"). Without it, a search covers every state your subscription includes.
  • Where a parameter takes a list, a single value is also accepted.

Search

search_rfps

Active or past RFPs and bids, by any combination of agency, keyword, state, agency type and status. At least one criterion is required. status_filter=["OPEN"] on its own returns the newest open RFPs.

Parameter
agency_nameFuzzy match, such as "City of Austin"
search_keywordsList. Matches name, summary, document title, evaluation criteria and deliverables
status_filterList of OPEN, CLOSED, AWARDED, CANCELLED. Omitted means all statuses
agency_typeList, such as ["City", "Higher Ed"]
max_results_countDefault 10
sort_bynewest (default) or relevance

Each extra keyword widens the search, because a row matching any one of them qualifies.

Results are de-duplicated: the same RFP posted on several sites appears once.

A row carrying data_quality_warning says it is open while its own dates contradict that, for example a deadline that has already passed. The row is flagged rather than hidden.

search_signals

Projects discussed in council and board meetings before any solicitation exists.

Parameter
search_keywordsList, required
max_results_countDefault 10, maximum 100
sort_byrelevance (default) or newest
days_backDefault 90

Note that signals default to relevance, where RFP search defaults to newest.

Each signal returns its title, meeting date, project description, project value, notes, resolution number, agency details, associated companies, and a status giving the stage it has reached, such as Pre-RFP, Discussion or Contract Award.

Two fields are worth knowing:

  • vendor_decided and decided_vendor mean the agency has already chosen a named vendor. It is not an open opportunity for someone else.
  • pdf_url and md_url both point at the source meeting document. md_url is the same document as markdown, which your assistant can read quickly instead of downloading the PDF. Both links are time-limited.

find_nearby_agencies

Agencies within a radius, nearest first.

Parameter
radius_milesRequired, 1 to 500
zip_code or agency_nameThe centre point. A zip code wins if both are given, and the centre agency is excluded from results
agency_typesCity, County, State, School, Mayoral Agency, Independent Agency, Public Authority, Fire District, Higher Ed, Local Housing Authority, State Housing Authority, MPO, Utility District, Public Hospital, Airport Authority, Library District, Special District
max_results_countDefault 20, maximum 100

Returns each agency's name, type, sub-type, city, county, state, website and distance_miles.

Contacts

get_contacts

Decision-makers and staff at an agency.

Parameter
agency_nameRequired, fuzzy. A poor match returns nothing rather than a different agency
filter_by_stateRecommended, because agency names repeat across states
titleSuch as "Procurement Officer" or "City Manager"
max_results_countDefault 10

Returns name, title, email, phone, department, agency details and location.

Supplying a title changes what the tool does. It triggers live research of the agency's public sources, so an agency with nobody on file can still return results. Those searches take 15 to 40 seconds, and the contacts they find carry discovered and source_url.

Missing emails are looked up automatically. An empty email means none was found, not that it was withheld, unless you are on the Free plan, where email and phone are omitted entirely.

Spend and contracts

find_vendors

Agency spend records, searched by what was bought.

Parameter
search_keywordsList
max_results_countDefault 25, maximum 100

Returns one row per purchase line: vendor name, agency name, total price, purchase date, state, purchase description and category.

This does not total a vendor's business. Each row is one line.

search_vendor

Everything about one vendor across signals, spend and contracts, with fuzzy name matching.

Parameter
vendor_nameRequired
max_results_countPer source, default 10

Returns spend_results, contracts_results, projects_results and total_found. When total_found_capped is set, the count is a floor, meaning "at least this many".

discover_contracts

Public contracts and purchase orders.

Parameter
search_keywordsList
max_results_countDefault 25, maximum 100

Returns vendor name, note, tagline, document date, contract amount and state.

Workspaces

list_digest_workspaces

Your saved Civic IQ digest workspaces.

get_workspace_signals

The AI-scored signals a workspace produces each day, including its history.

Parameter
workspaceName (partial, case-insensitive) or id. Use "default" for the Default workspace
filter_by_categoryOPPORTUNITY, COMPETITOR, MARKET or GRANT_FUNDING
days_backDefault 7, maximum 365
digest_dateA specific day, as YYYY-MM-DD, instead of days_back

Returns each digest with its AI executive summary, and each signal with a headline, brief, category, urgency, a score from 0 to 100, a tag such as "RFP LIVE" or "WINDOW CLOSING", agency details, and source links.

Alerts

See Alerts for how these are used in practice.

create_alert

Saves a recurring search that emails you new results. Takes a name, the search to run (search_rfps or search_signals only), keywords, states as two-letter codes, and a frequency of daily or weekly.

Creating the same search twice updates the first rather than duplicating it. Up to 25 alerts per account.

This writes to your account.

list_alerts

Your saved alerts. Read-only.

delete_alert

Removes an alert. This writes to your account.

Outreach

launch_sequence

Enrols a contact in a three-step email sequence. Step 1 sends immediately, step 2 after three business days, step 3 after five, all at 9:00 AM Eastern.

Parameter
contact_idThe contact to enrol
sender_emailA connected, verified mailbox
outreach_stepsOne to three steps, each with a subject and an HTML body. Supports {{first_name}} and {{sender_name}}
project_idOptional

This sends real email. It is not a draft or a preview.

Account

account_details

Your plan, the tools available to you, your per-tool row limits and omitted fields, your covered states, and your credit balance on metered plans.

This reads your account at the moment it is called, so it is always accurate about what you have, even when your client is showing a tool list it cached before your plan changed. It is free to call on every plan and is never charged.

Reading the results

A few characteristics of the underlying data affect how results should be read.

Spend descriptions are not always what was bought. The description field sometimes holds the agency's own expense account name, so a keyword can match an accounting category rather than a product. Results include the category so you can judge which one you are looking at.

Vendor names are inconsistent in the source records. Legal suffixes appear and disappear, names are truncated, and words are reordered. Two near-identical names are usually one company.

Solicitations are de-duplicated. The same solicitation is often published on several sites, and results are collapsed to one row per agency, title and deadline.

Contradictions are flagged, not corrected. A row whose own dates disagree with its status carries a data_quality_warning rather than being silently fixed or dropped.

State coverage follows your subscription. A request for a state outside your coverage is refused rather than returned as an empty result, so an explicit refusal means the data exists but is not in your plan.

Setup should only take a few minutes. If you have any questions along the way, just reach out at [email protected] and we'll help you get connected.