- Brand
- Govly
- Category
- Sales & CRM
- Primary Subcategory
- Government Procurement & Contract Search
Integration details
Description
Govly helps users find and analyze government contracting opportunities, awards, contacts, procurement signals, places, and contract pricing; manage saved searches and inbox matches; and collaborate in workspaces through ChatGPT.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Government Procurement & Contract Search
- Secondary Subcategories
- None listed
- Brand
- Govly
- Access
- Account required
- First tracked
- 2026-09-02
- Tool count
- 61
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Govly
Get updates when Govly’s Discoverability Score or category rank changes.
Competing in ChatGPT Government Procurement & Contract Search
View Category61 tools agents can invoke
Accept a Govly inbox item the user wants to pursue. Opportunities and awards are followed through their default workspace; that action is FINAL and cannot be undone via restore_inbox_item. Signal acceptance is unsupported. The response meta reports workspaceId, finality, and the new state so the action can be audited. Confirm intent before following an opportunity or award.
Add a user or team member to a workspace, or update one who is already on it. Creates the membership, restores a previously removed one, or changes an existing active member's notifications. Provide exactly one of userId or teamId; both are looked up within the calling user's own organization, so a member from another organization is not found. This cannot remove anyone — use remove_workspace_member for that. Membership belongs to a workspace, not to a record. When the user names an opportunity instead of a workspace, resolve the workspace first: show_opportunity returns its `workspaces` (each with organizationDefault and follows), and list_workspaces returns them by opportunity id. list_workspaces returns only the user's own organization's workspaces; show_opportunity may also include partner organizations' workspaces, identified by each entry's organization.name. If exactly one belongs to the user's organization, use it without asking. If more than one does, ask which workspace before calling; never pick one silently. For any other record type, ask the user for the workspace id. userId and teamId are Govly organization user and team ids. Existing members' ids appear in the opportunity's workspaces[].follows[].member.id. If you cannot find an id for the person the user named, ask for it; do not guess. This cannot remove anyone; use remove_workspace_member for that.
Create an award saved search from structured filters. Stores a replayable search the caller can run later via execute_award_saved_search; award saved searches do not send notifications. The date window is stored as relative day offsets and defaults to the last year.
Create an opportunity saved search from structured filters. The organization receives email notifications when new opportunities match. Federal buyer filtering accepts either exact government-entity IDs or a natural-language buyer description, but not both. The date window is stored as relative day offsets and defaults to the last year; an omitted searchType uses the authenticated user's market focus.
Create a workspace, optionally associated to a visible opportunity as its primary focus. When organizationDefault is true and a default workspace already exists for that focus, update the existing default workspace instead of creating another one. The response includes the workspace's custom field values.
Post a Markdown comment to a workspace visible to the authenticated user. On opportunity workspaces, this may email eligible followers and return the workspace to other followers' worklists.
Dismiss a Govly inbox item, optionally with written feedback or a legacy reason. Removes it from the default inbox without creating a workspace or changing opportunity follow or disinterest state. Written feedback is retained for future analysis; it does not currently change matching. A legacy reason on a Govly AI match can inform future matching. Put the user's stated explanation in feedbackText, preserving their wording. Omit reason unless the user explicitly requests a supported categorical reason; do not derive a category from their explanation. Do not infer or invent written feedback. Use reject_inbox_item to explicitly mark an opportunity not interested instead. Reversible with restore_inbox_item, which marks the retained written feedback withdrawn.
Get a temporary direct-download URL for an authorized document's original file.
Read bounded content from an authorized document. Start with documentType and id, then pass only cursor and optional maxChars while continuing. Available representations are reported by the first read.
Execute an award saved search and return the awards it currently matches. Runs the saved search live against the award index, so results reflect the index at call time rather than a cached match list. The saved search's own date window is applied; meta.dateRange reports the window actually searched.
Execute an opportunity saved search and return the opportunities it currently matches. This reruns the saved search live against the opportunity index, so it answers a different question from list_opportunity_saved_search_results, which returns prior cached match history. Non-enterprise MCP opportunity saved search execution requires a paid Govly seat and is capped at 50 results per page.
Fetch visible opportunities by Govly ID using the same public shape as the Tools API.
Follow or unfollow a Govly entity. Following creates or reuses the entity's default workspace: the default opportunity workspace for opportunities, the default award workspace for awards, the default contact workspace for contacts. Pass action unfollow to stop following instead. Use this for requests like "follow this opp", "track this opportunity", "follow this award", "track this contact", "subscribe to changes", or "stop following this award".
List award saved searches visible to the authenticated user. When the user specifically asks for active saved searches, send active: true. Omit active to include all visible saved searches, including inactive ones; use active: false for inactive-only.
List available government contract vehicles (SEWP, ITES, GSA Schedule, etc.). Returns vehicle names, descriptions, and basic details. Use this to help users understand which vehicles are available for prime contractor searches. Returns at most 50 vehicles per call, sorted by name, with the total matching count in meta; pass a query to narrow the list. List available government contract vehicles. Use this to show users which contract vehicles exist in the system (SEWP, ITES, GSA, etc.). When to use: When the user asks about available contract vehicles, or needs to know which vehicles they can search for primes on. IMPORTANT - Response format: - Present vehicles with name and description - Group by category if relevant - Mention key details like ordering deadlines if available
List the authenticated user's active Govly inbox items, including already-actioned/followed items, newest first. This is not a pending-only list. For pending items, use search_inbox_items with state ["unread", "seen"]; actioned/followed and dismissed items are not pending. Use search_inbox_items for queries or filters, and show_inbox_item for a single item's detail. For why-matched questions, including company-fit follow-ups, use only the origins, matchedKeywords, and meaningful human-readable fitReason returned for that Inbox item ID. Never use another item's metadata to explain the match. A saved-search name identifies the source, not its criteria; missing origins leave the source unknown. Identifiers, scores, and following status are not explanations. If evidence is missing or unusable, say "The available Inbox metadata does not explain why this matched" and stop. Do not add a speculative relevance assessment or recover the reason from record content, NAICS codes, industry norms, or the customer's profile.
List the authenticated user's saved Inbox views with their filters, availability, default selection, and built-in views. This tool does not change Inbox items or the user's default view. Discover view IDs here before passing inboxViewId to search_inbox_items. A view with available false cannot currently be applied; do not remove its unavailable filters or substitute a broader view.
List cached opportunity match history for a saved search visible to the authenticated user. Each row records when a prior matcher run found that opportunity; use execute_opportunity_saved_search for a fresh live rerun instead.
List opportunity saved searches visible to the authenticated user. When the user specifically asks for active saved searches, send active: true. Omit active to include all visible saved searches, including inactive ones; use active: false for inactive-only.
Enumerate every canonical Govly Place of a category within a jurisdiction — every county in California, every school district in Texas. Use search_places instead to look up a place by name; this tool takes no query and does no relevance ranking. Without sort, ordering is stable but arbitrary and results are cursor-paginated: keep calling with meta.nextCursor until it comes back null, or you have only part of the set — reporting a first page as the complete answer is the most likely way to be confidently wrong here. meta.total is the exact size of the full set, so compare it against what you have collected. Sort client-side if you present a list. With sort "population" and sortDirection "desc" (largest first, default) or "asc" (smallest first), the N most or least populous places are the first N: request perPage N and stop once you hold N. If meta.perPage comes back smaller than N, follow meta.nextCursor until you do. meta.total is then just the size of the category, not a reason to keep paging. Use it for "largest", "most populous", "smallest", or "least populous" questions. Places without a population sort last either way. Population exists only for states (region), counties, and municipalities; a population sort on any other category is rejected. At least one of categories or isoCodes is required. isoCodes matches the place's own code exactly and is not a hierarchy: "US" matches only the country record, so use "US-XX" to enumerate inside a state, while a bare foreign code like "JP" correctly scopes overseas military installations. hasRecords false means the place matches no opportunities or awards, so filtering by it returns nothing. Unlike search_places, this value is computed from live data and is accurate in every environment. population and populationYear are the latest Census estimate and populationHistory the yearly series, present only for states, counties, and municipalities. Place ids are market-agnostic, but opportunity and award searches are market-scoped, so an id returned here may not be searchable under this organization's subscription. Enumerate every canonical Govly Place of a category within a jurisdiction. **When to use**: whenever a user asks about a whole class of places — "every county in California", "all the school districts in Texas" — rather than naming one. Use `search_places` when they name a specific place. **Without `sort`, page to exhaustion.** Results are cursor-paginated: keep calling with `meta.nextCursor` until it comes back null. `meta.total` is the exact size of the full set, so compare it against what you have collected before answering. Reporting a first page as the complete answer is the most likely way to be confidently wrong with this tool — California has 58 counties and 976 school districts, Texas has 254 counties. Ordering is stable but arbitrary, not alphabetical. Sort before presenting a list. **With `sort: "population"`, take the first N and stop.** For "largest" or "most populous" questions add `sortDirection: "desc"` (the default); for "smallest" or "least populous" use `sortDirection: "asc"`. The N places you want are the first N: request `perPage` N and stop once you hold N. If the returned `meta.perPage` is smaller than N, follow `meta.nextCursor` until you do. `meta.total` is then just the size of the category, not a reason to keep paging. Places without a population sort last either way. Population exists only for states (region), counties, and municipalities; a population sort on any other category is rejected. At least one of `categories` or `isoCodes` is required. **Read `hasRecords` before using an id.** False means the place matches no opportunities or awards, so filtering by it returns nothing. Place ids are market-agnostic, but opportunity and award searches are market-scoped — an id returned here may not be searchable under this organization's subscription. Non-enterprise MCP access is capped at 25 results per page.
List the public government contract price lists (product catalogs). Returns each catalog's id, name, description, group, contract vehicle, and item count, but no pricing. Use this before searching catalog items to discover catalog ids and groups to filter on. Takes no arguments and is not paginated; the catalog set is small.
Get opportunity activity analytics for all users in the organization. Returns counts of opps followed (via manual follow actions) and opps matched (via saved search matches) per user. Useful for understanding team engagement and identifying active vs inactive users. Results sorted by total activity. Get opportunity activity analytics for users in the organization. Shows opps followed and matched per user for 7, 30, or 90 day periods. Use this to understand team engagement with opportunities: - Who is actively following opportunities - Which saved searches are generating matches - Overall team activity levels Results are sorted by total activity (followed + matched) descending.
List attachments for a workspace visible to the authenticated user.
List workspaces associated with a visible entity, using the same public workspace shape as the Tools API. Currently supports opportunities. Use before add_workspace_member or remove_workspace_member when the user names an opportunity rather than a workspace, to see which workspaces exist for it. Returns only the user's own organization's workspaces, newest first. Opportunities only.
Mark a Govly opportunity as not interested / dismissed for the authenticated user, or undo it. Sets a team-visible disinterested status, unfollows the user, and removes the opportunity from the user's inbox. Use only when the user explicitly expresses disinterest, e.g. "not interested", "dismiss this", "we're not bidding". Pass undo=true to reverse a previous mark; undoing returns the user to a neutral (not following) state.
Mark a Govly inbox item as a bad fit, optionally with a reason. For opportunities, this records team-visible disinterest and may create a workspace. Use dismiss_inbox_item to hide an item or give feedback without changing opportunity follow state. Reversible with restore_inbox_item.
Remove a user or team member from a workspace. Use this for requests like "remove Bob from this workspace" or "take the sales team off this workspace". Removing a member who is not currently on the workspace succeeds without changing anything and reports meta.noOp. Users may always remove themselves, unless their only membership is through a team. Removing anyone else requires belonging to the workspace's own organization. Two limits are worth stating to the user before removing someone: this ends the membership and mutes notifications, but on a private workspace it does not by itself revoke that person's access; and a member from another organization, or one whose account has been archived, cannot be added back by a caller from this workspace's organization, only by someone from that member's own organization. Membership belongs to a workspace, not to a record. When the user names an opportunity instead of a workspace, resolve the workspace first: show_opportunity returns its `workspaces` (each with organizationDefault and follows), and list_workspaces returns them by opportunity id. list_workspaces returns only the user's own organization's workspaces; show_opportunity may also include partner organizations' workspaces, identified by each entry's organization.name. If exactly one belongs to the user's organization, use it without asking. If more than one does, ask which workspace before calling; never pick one silently. For any other record type, ask the user for the workspace id. userId and teamId are Govly organization user and team ids. Existing members' ids appear in the opportunity's workspaces[].follows[].member.id. If you cannot find an id for the person the user named, ask for it; do not guess. Never call remove_workspace_member in the same turn the user asks. First state who will be removed from which workspace and ask the user to confirm. Call it only after the user explicitly confirms in a later message. Removal mutes notifications and ends membership but does not by itself revoke access on a private workspace.
Comprehensive contracted pricing research combining government contract catalogs with web search. Intelligently expands queries for better matching (e.g., "observability" finds "monitoring" products). Returns up to 100 catalog results plus web context for market analysis. Use for pricing research, vendor analysis, and product discovery. Requires a paid Govly seat. ## research_contracted_pricing tool Use `research_contracted_pricing` for comprehensive pricing and product research. This is your primary tool for: - Government contract catalog pricing - Vendor/manufacturer research - Market analysis for specific product categories - Part number lookups This tool: 1. Analyzes your query to understand intent (part number vs vendor vs category) 2. Expands queries intelligently (e.g., "observability" finds "monitoring", "APM" products) 3. Searches government contract catalogs (up to 100 results) 4. Searches the web for market context and pricing benchmarks **Query tips:** - For part numbers: Use exact part number (e.g., "896-2481", "DELL-7520-BTO") - For vendors: Include vendor name (e.g., "Datadog monitoring", "Dell servers") - For categories: Use general terms (e.g., "observability tools", "enterprise storage") **Filtering:** - Use `contractVehicle` to limit to specific contracts (e.g., "ITES-4H") - Use `group` to limit to catalog groups (e.g., "ESI") - Use `manufacturer` to filter by specific manufacturer - `contractVehicle` and `group` narrow independently, so passing both returns only catalogs carrying that vehicle *and* that group. Prefer one. **Result handling:** - Present catalog results as a pricing comparison table - Include relevant web findings for market context - Note the catalog/contract source for each item If session instructions specify catalog constraints (e.g., "focus on ITES-4H"), apply the appropriate filter.
Restore a previously dismissed or bad-fit Govly inbox item to seen, clearing its Inbox feedback fields and marking retained written feedback withdrawn. This does not recover the previous Inbox state. Only a bad-fit disposition also unwinds opportunity disinterest. Restoring a neutral dismissal preserves opportunity follow state, including an existing Follow. Only dismissed or bad-fit items can be restored — an accepted (followed) item cannot be undone via this tool.
Run a read-only Elasticsearch query for Govly reporting. Govly sys-admin only. Provide an Elasticsearch query DSL body as a JSON object string and the index to search. A single bucket aggregation is flattened into columns/rows; otherwise hits are returned. Set "size" in the query body for the page size (this tool caps it). Returns JSON text with columns, rows, row_count, duration_ms, and truncated. For hits, row_count is the total matching documents (not the number of rows returned, which is capped by size); truncated is true when more matched than were returned.
Run read-only SQL for Govly reporting. Govly sys-admin only. Only a single SELECT/WITH statement is allowed. Use show_report_schema first when table or column names are unknown. Returns JSON text with columns, rows, row_count, duration_ms, and truncated.
Search federal acquisition regulations on acquisition.gov. Covers FAR, DFARS, and agency-specific supplements. Use this to find procurement rules, requirements, and procedures. Returns search results as markdown with URLs to the full regulation text. Use search_acquisition_regulations to find procurement rules and requirements. Results include URLs; fetch a result URL to read the full regulation text when needed. FAR is the primary regulation; DFARS applies to defense acquisitions.
Search awarded government contracts for pricing analysis, vendor research, and historical spending patterns. Use opportunity search for active solicitations and opportunity references such as "SEWP V #365651". Contract vehicle names such as "SEWP V" can also identify awards made through that vehicle; choose based on whether the user wants awards or solicitations. Searches all time unless dateRange is given. searchType defaults to the authenticated user's market focus (fed or sled); sled and international require the matching organization subscription. Use fed for federal agencies; sled for US state governments, cities, counties, school districts, and public universities; international for Canada, NATO, and other non-US procurement. Omit searchType when the requested jurisdiction is unclear. The response's meta.searchType reports the market actually searched — tell the user which market these results cover, since other markets need a separate call. Paginate by passing each response's meta.nextCursor into the next request until meta.nextCursor is null. Cursors are bound to the query, filters, and sort inputs. Each result's links.self is its canonical Govly link and links.external is the source-system link; displayName is its display label, when those fields are present. Non-enterprise MCP access is capped at 50 results per page. Full award pages are limited separately.
Use search_budget_evidence to discover DoD budget evidence across agencies. Omit agency to search all eligible evidence; supply an accepted agency to narrow the same query. Results are grouped into program elements, projects, and procurement line items. **Matching is literal and case-insensitive:** narrative, identifiers, current titles, and stored planned-program titles, descriptions, fiscal-year plans, and change statements. Related concepts and synonyms are not inferred. A missing phrase does not prove a topic is absent. Under as_of, current titles are excluded; stored narrative and plans remain searchable. Displayed parent titles remain current and may be newer than the cutoff. Keep the same as_of cutoff for follow-up searches and reads. **agency_summaries reports matched counts and covered books for each represented record agency,** independently of the current hit page. Only identify an agency as having matches when at least one of its total_counts is positive; presence in the summary alone means coverage. For an accepted agency with matches but no example on this page, repeat the query with that agency and the same filters. Obtain supporting hits before reporting a finding. Projects carry both their own project_number and the parent pe_number; number remains the project's own identifier. **Read full evidence with show_budget_evidence before interpreting a match as investment intent.** Group reads by the returned record agency, not the source book's agency. A match may describe a cancellation or reduction; planned budgets are not awards or expenditures. A plan_fiscal_year is the passage's year label, separate from the citation's book year. Previews can omit additional matches; full reads provide the complete stored entries. If a returned agency is outside the accepted agency enum, use all-agency pagination to obtain its previews and citations. Disclose that a full read is unavailable under that stored label, and make no investment-intent inference. Do not call scoped search/read with that label, substitute the book's agency, or remove read scope to bypass validation. **Every finding needs a citation:** name its book title and fiscal year, linking source_url or, if absent, file_url. If both are absent, explicitly say the source link is unavailable. Never invent links, page numbers, or funding totals across projects/years. **corpus describes only eligible parsed evidence actually searched,** with active filters. Its books inventory advances with page/per_page alongside the result groups. Continue while books_next_page is present to obtain the full inventory; disclose a partial list. Hit groups use total_counts to determine whether more pages remain. Agency summaries and coverage totals are independent of pagination and are retained when nothing matches. Distinguish a covered agency with no literal match from an agency not represented in this searched corpus. Unparsed uploads and missing books are not searched coverage. Neither an empty group nor missing extraction means the agency spends nothing. If source_document_count is zero, disclose the coverage gap and use public-source search if available to the caller. If none is available, disclose the coverage gap.
Search government points of contact (buyers, contracting officers, program staff) surfaced from opportunities and awards, for outreach and account research. Returns a summary per contact; email and phone are never included here — use show_contact for a single contact's detail. Paginate by passing each response's meta.nextCursor into the next request until meta.nextCursor is null. Cursors are bound to the query, filters, and sort inputs. Non-enterprise MCP access is capped at 50 results per page.
Full-text search and filter the authenticated user's Govly inbox items. Searches title, description, buyer/entity names, and identifier. Filter by matchable type (Opp, Award, ProcurementSignal::Cluster), record type, source (govly_ai or saved_search), market, states, buyer hierarchy, keywords, NAICS, saved-search origins, and created/deadline date ranges. Use list_inbox_views to discover your saved views, then supply inboxViewId to apply one, or team_view for All Results. A view may only be combined with cursor and perPage, not explicit filters or sort. Omission does not apply your default saved view. Returns matchable-type aggregation counts. Capped at 100 results per page. For pending Inbox items, use inboxStatus "all" or state ["unread", "seen"]. Actioned/followed and dismissed items are not pending. Only present returned items whose current state matches the requested states; continue pagination if needed because indexed state can lag. Results use indexed snapshots; inspect an item with show_inbox_item for current access and details. Totals and aggregation counts come from the search index; totals at 10,000 may be capped. For why-matched questions, including company-fit follow-ups, use only the origins, matchedKeywords, and meaningful human-readable fitReason returned for that Inbox item ID. Never use another item's metadata to explain the match. A saved-search name identifies the source, not its criteria; missing origins leave the source unknown. Identifiers, scores, and following status are not explanations. If evidence is missing or unusable, say "The available Inbox metadata does not explain why this matched" and stop. Do not add a speculative relevance assessment or recover the reason from record content, NAICS codes, industry norms, or the customer's profile.
Search government contracting opportunities visible to the authenticated user. Defaults to open, actionable opportunities. Use non-open statuses only when the user asks for historical, expired, cancelled, awarded, or specific known opportunity lookups. Search results exclude prediction records. searchType selects the market (fed, sled, or international) and defaults to the authenticated user's market focus; sled and international require the matching organization subscription. The response's meta.searchType reports the market actually searched — tell the user which market these results cover, since other markets need a separate call. Paginate by passing each response's meta.nextCursor into the next request until meta.nextCursor is null. Cursors are bound to the query, filters, and sort inputs, and represent the current search index state rather than a frozen snapshot. Each result includes tags, grouped by context: tags.contract holds contract vehicle groups such as SEWP V groups, tags.warning holds pursuit cautions, tags.productCategory holds product classifications. Each entry has a stable slug and a display label. There is no tag filter, so read tags.contract and filter results yourself when the user asks about a vehicle group. Because that filtering happens per page, page through meta.nextCursor until it is null before stating how many opportunities match a group, and say the count is partial if you stop early. Searches all dates unless date bounds are supplied, orders by newest modified date unless sort is requested, and returns stored opportunity dates. Use sort "relevance" for keyword-relevance ordering. Federal buyerDescription selects a buyer using natural language; repeat it and all other filters with each cursor. If buyer selection fails, clarify the buyer with the user; never discard that filter. recordType and noticeType support published records only, not forecasts or predictions. meta.total counts indexed matches; meta.totalIsLowerBound means it is a minimum, not an exact count. meta.returnedCount counts the records actually returned on this page. These can differ because records must still be visible and present in the database. Continue while meta.nextCursor is present, including when a page returns no records. Use show_opportunity with a result's id for full details. Each result's links.self is its canonical Govly link; links.external is the source-system link. Non-enterprise MCP opportunity search requires a paid seat and is capped at 50 results per page.
Resolve a place name to canonical Govly Place ids — counties, municipalities, states, ZIP codes, school districts, military installations, and countries. Use this to turn a place a user names ("Redstone Arsenal", "Mecklenburg County") into an id. Results are ordered records-bearing first; hasRecords false means the place is in the gazetteer but matches no opportunities or awards, so filtering by it returns nothing. nameMatch reports how the name matched: exact, partial, or semantic. Treat semantic as a prompt to confirm with the user before filtering on it — vernacular geography like "the Bay Area" has no canonical record and will resolve to whatever is nearest. partial is normal and expected for county and municipality lookups, because canonical names carry a category suffix ("Bexar County"), so a bare "bexar" can never be exact. isoCodes matches the place's own code exactly and is not a hierarchy: "US" matches only the country record, so use "US-XX" to scope inside a state, while a bare foreign code like "JP" correctly scopes overseas military installations. Place ids are market-agnostic, but opportunity and award searches are market-scoped, so an id returned here may not be searchable under this organization's subscription. Results are ranked by relevance to the query, so this pages through matches — it does not enumerate. No text query matches all 58 California counties, so page until meta.nextCursor is null and relevance still bounds what you get. population and populationYear are the latest Census estimate and populationHistory the yearly series, present only for states, counties, and municipalities. Resolve a place a user names into canonical Govly Place ids. **When to use**: whenever a user names a geography — a county, city, state, ZIP, school district, or military installation — and you need to scope other searches to it. **Read `hasRecords` before using an id.** False means the place exists in the gazetteer but matches no opportunities or awards, so filtering by it returns nothing. **Read `nameMatch` before committing.** `semantic` means the name did not really match and the result is the nearest thing — confirm with the user first. Vernacular geography ("the Bay Area", "the DMV", "Research Triangle") has no canonical record and will resolve to something plausible but wrong. `partial` is normal for counties and municipalities, because canonical names carry a suffix ("Bexar County"), so a bare "bexar" is never exact. Place ids are market-agnostic, but opportunity and award searches are market-scoped — an id returned here may not be searchable under this organization's subscription. Non-enterprise MCP access is capped at 25 results per page.
Search for prime contractors on government contract vehicles (SEWP V, ITES-4H, GSA, etc.). Returns prime contract details including vendor, business type, and contract dates. Useful for teaming partner research and competitive analysis. Search for prime contractors on government contract vehicles. Use this to find vendors holding prime positions on specific vehicles like SEWP, ITES, GSA Schedule, etc. When to use: Finding prime contractors, identifying teaming partners, researching contract vehicle holders. Use search_opportunities for active solicitations; search_awards for contract awards. IMPORTANT - Response format: - Present each prime with vendor name, contract number, and contract vehicle - Include business type and status (active/expired) - Summarize key details for the user
Search line items across government contract price lists (product catalogs) for negotiated pricing, part numbers, and availability. query is a fuzzy search over item descriptions, manufacturers, and part numbers. productCatalogIds, group, category, manufacturer, and priceRange are exact filters, AND-combined with query, so a filter is a recall ceiling. Call list_product_catalogs first to discover catalog ids and groups — productCatalogIds is always intersected with the catalogs you may access, so ids you do not have access to simply drop out rather than erroring. Paginate with the page parameter until the results run out. Maximum 100 results per page; non-enterprise MCP access is capped at 50. Results are relevance-ordered; there is no sort control.
Search the SBA Dynamic Small Business Search for certified small businesses. Find businesses by keyword (company name, capability) or NAICS code. Multiple keywords are OR'd together in a single search. Returns business profiles with certification status, NAICS codes, and contact information. Present results as a markdown table. ## search_sba_certifications tool Search the SBA Dynamic Small Business Search for certified small businesses. **When to use**: Finding small businesses with SBA certifications (8(a), HUBZone, WOSB, SDVOSB, etc.), searching by NAICS code for potential teaming partners, or verifying a company's SBA certification status. **Parameters**: - `searchTerm`: Search by business name or profile (e.g., "ACME Corp"). Use for looking up a specific company. - `keywords`: Array of capability/service keywords OR'd together (e.g., ["cold storage", "hyperconverged"]). Use for finding firms by what they do. Do NOT use boolean operators — the API handles OR natively. - `naicsCodes`: Filter by NAICS codes (6-digit codes like "541512") - All parameters can be combined in a single request. **Tips**: - Use `searchTerm` when looking up a company by name, `keywords` when searching by capability/service area. - For broad capability searches, prefer short keywords like "cybersecurity" rather than long phrases. - To find firms with specific certifications, search by NAICS code and review the sbaCertifications field in results. - After receiving results, present them as a markdown table with columns: Business Name, Certifications, NAICS, Location, Profile Link.
Search procurement and market signals — clustered news, hearings, laws, events, analysis, policy, regulatory actions, and public meetings. query is a fuzzy, semantic search over signal content. contentTypes, categories, and dateRange are exact filters, AND-combined with query: a result must pass every filter, and query only ranks what survives, so a filter is a recall ceiling. categories is a HARD filter — it returns only clusters tagged that category and will miss relevant but differently-tagged signals, which query cannot recover while the filter is on. Put topics you are searching for in query (even recognizable ones like "cybersecurity"); reach for categories only to narrow on a dimension query does not already express (e.g. query "laptops" with categories ["cybersecurity"]). Paginate with the page parameter until the results run out. Maximum 50 results per page. meta.aggregations lists facet counts on the first page only, covering the filter dimensions (categories, contentTypes) plus jurisdictions, which is discovery-only and has no filter input; facets come from the indexed snapshot and can lag the result fields, which reflect current data. When linking a user to a signal, use links.self — each result's page in Govly. To inspect one result's source records and source-level details, call show_signal with that result's id. Non-enterprise MCP signal search requires a paid seat and is capped at 50 results per page.
Search the authenticated user's organization-scoped Active Work. By default this returns current, open workspaces with an opportunity primary focus or no primary focus. A null primary focus is selected with includeWithoutPrimaryFocus; primaryFocusTypes never uses a standalone sentinel. Explicit participants narrow the organization participation scope and never grant access. Use a user participant ID of me to select the authenticated user without embedding their organization-user ID. Paginate by passing meta.nextCursor into the next request with the same filters until it is null. Returns exact totals, current following participants, labels and custom fields belonging to the authenticated organization, and exact workspace status.
Send a Govly opportunity, award, or contact to colleagues by email. Use this for requests like "share this opportunity with Dana", "email this contact to my team", or "send this to the capture team". Queues delivery immediately and cannot be undone; there is no draft or preview step, so confirm the recipients with the user first. Delivery is at-least-once, so a retry may redeliver to recipients who already received the message. Recipients must be Govly users at your own organization or a partner organization; any other address is rejected and no email is sent. The id form depends on the type: opportunities take the numeric Govly id from search_opportunities or show_opportunity, and awards accept either a numeric id or the uniqueKey returned by search_awards and show_award. Sharing an opportunity sends one email per recipient rather than one email addressed to everyone. Award and contact shares send a single email when no teams are named; name any team and their remaining recipients each get their own email too. A share may send at most 20 emails per call: each team is one email, and each recipient outside a named team is one more.
Show a single awarded government contract, including transactions, sub-awards, related opportunities, program links, line items, places, classification codes, and contacts. Accepts the Govly award id or the award uniqueKey (CONT_AWD_..., CONT_IDV_..., ASST_...) from search_awards results. A contract number or PIID is the award's identifier and is not unique across sources; search for it first and read the id you get back. The response's links.self is the canonical Govly link; links.external is the source-system link. Non-enterprise MCP access is capped at 200 full award pages per day.
Show an award saved search visible to the authenticated user.
Use show_budget_evidence after search_budget_evidence to get the full narrative for records you intend to quote or interpret as investment intent. Retrieves narrative, funding, identifiers, planned entries, and citations for up to 10 records at once. Group references by the returned record agency and read each accepted agency separately, preserving the same as_of cutoff. The source book's agency can differ; do not substitute it. An id alone does not carry scope. For historical questions, EVERY read and continuation call MUST repeat the search's as_of value. Never omit the cutoff because the search already returned an id. For a stored agency outside the accepted enum, show search previews and citations, disclose that a full read is unavailable, and do not infer investment intent or attempt to bypass agency validation. Each record comes back with its citation. Quote the narrative and name the source document and its fiscal year. Link source_url, falling back to file_url; disclose if neither exists. A fiscal-year plan label is separate from the source book year. Plans can describe cancellations or reductions, and do not establish actual awards or expenditures. **Records you asked for may come back under `unresolved` instead.** That means the record is outside the agency or as_of scope you passed, or does not exist. Do not report it as a fact with no source, and do not retry it without scope. `page_range` is `{page_start, page_end}`: physical PDF pages, 1-indexed and inclusive, covering the pages the parser placed the record on. It is null for records parsed before page tracking or that the parser could not place; then cite the document rather than a page. `funding` can be null when no funding was extracted. It may be populated for procurement line items, and a null funding value does not mean the record is unfunded. **A record carrying `narrative_truncated: true` is cut short.** `narrative_full_length` gives the real size. Do not quote the final sentence as if it ended there, and do not conclude the narrative omits something on the strength of a partial copy. To read the rest, call again with that record alone and `narrative_offset` set to its `narrative_next_offset`, and repeat until `narrative_truncated` is false.
Show a single government point of contact by Govly contact id (from search_contacts results), including titles, associated buyers, vendors, and contract vehicles, plus email and phone. Non-enterprise access is capped at 200 contact reads per day.
Fetch a single Govly inbox item by ID, with its match metadata (fit score, fit reason, deadline, source). Read-only — does not mark the item as seen. For research beyond Inbox delivery, use matchableType and matchableId with the corresponding record-reading tool. For why-matched questions, including company-fit follow-ups, use only the origins, matchedKeywords, and meaningful human-readable fitReason returned for that Inbox item ID. Never use another item's metadata to explain the match. A saved-search name identifies the source, not its criteria; missing origins leave the source unknown. Identifiers, scores, and following status are not explanations. If evidence is missing or unusable, say "The available Inbox metadata does not explain why this matched" and stop. Do not add a speculative relevance assessment or recover the reason from record content, NAICS codes, industry norms, or the customer's profile.
Show a single opportunity visible to the authenticated user, including source cancellation reasons, reported amendments and their referenced documents, source metadata, attachments, and linked government contacts (email and phone for paid seats when the source is not anonymized). The response's links.self is the canonical Govly link; links.external is the source-system link. Rich source data blobs are excluded. Attachment download URLs are returned only when the caller has the required access. For a broad opportunity summary, use show_opportunity before answering. Primary-source opportunity content must be considered. A successful result supplies its attachment-specific guidance in meta.sourceCoverage and typed continuation calls in meta.availableActions. Follow that result-local contract before making comprehensive claims, and never present partial source coverage as a complete review. A narrow request about a named file does not require show_opportunity unless the answer makes broader opportunity claims. Non-enterprise MCP access returns the full opportunity record, including sources and linked contacts; only attachment download URLs are omitted, and full opportunity pages are capped at 200 per day.
Govly ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Govly's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Govly alternatives on ChatGPT?
As of 2026-10-17, Govly competes with AltEditais, Ausschreibungsagenten.de, Bidaya, BidPrime, Civic Marketplace, CLEATUS, DC PASS Contracts, egp · งานประมูลภาครัฐ and 27 more in ChatGPT Government Procurement & Contract Search, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.