company_contracts next channel
Status: Modified (batch selectors; richer per-contract fields; snake_case params) This tool is on the private
nextMCP channel for allow-listed orgs. When promoted, this file moves tomcp-tools/company-contracts.md.
Retrieve contract intelligence for a batch of up to 25 companies — ICT outsourcing deals (via GSIs such as Accenture, IBM, Cognizant) and U.S. federal government contract awards (USAspending.gov). Pass hg_ids and/or domains and receive one entry per company under companies[].
Integration required: hginsights_v2__data_api
Cache schema version: 4 (differs from base — stale cached payloads from the public channel will not be served)
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
hg_ids | string[] | Optional | — | HG Insights company IDs for batch contract lookup (up to 25). Provide hg_ids or domains (at least one is required); both may be combined. NOTE: include_federal_contracts requires exactly one company across hg_ids + domains. |
domains | string[] | Optional | — | Company domains for batch contract lookup (e.g. ["salesforce.com", "cisco.com"], up to 25). Protocol prefixes, leading www., and trailing paths are stripped automatically. |
company_name | string | Optional | — | Legal or common name of the company. Used as the search key for federal contract lookups when include_federal_contracts=true (single-company only). Required for companies not in the HG database — providing this name enables federal data even when domain resolution fails. |
active_only | boolean | Optional | false | When true, returns only currently active contracts (end_date >= today or no end_date). |
vendor_name | string | Optional | — | Filter contracts by vendor name. Forwarded to the upstream API as a vendor name filter. |
min_deal_value | number | Optional | — | Minimum deal value filter in USD (applied client-side). |
max_deal_value | number | Optional | — | Maximum deal value filter in USD (applied client-side). |
start_date_after | string | Optional | — | Filter contracts starting after this date (ISO format YYYY-MM-DD, applied client-side). |
start_date_before | string | Optional | — | Filter contracts starting before this date (ISO format YYYY-MM-DD, applied client-side). |
end_date_before | string | Optional | — | Filter contracts ending before this date (applied client-side). |
end_date_after | string | Optional | — | Filter contracts ending after this date (applied client-side). |
limit | number | Optional | 50 | Maximum number of contracts to return (default: 50, max: 100). |
include_federal_contracts | boolean | Optional | false | Include U.S. federal government contract data from USAspending.gov. Requires the datagov integration. Requires exactly one company across hg_ids + domains — enabling this with more than one company is rejected with a clear error. |
Implementation note — client-side vs upstream filters
Only vendor_name is forwarded upstream (as contracts.filters.vendor_names). The following filters are applied in the MCP layer after fetching the full upstream payload: active_only, min_deal_value, max_deal_value, start_date_after, start_date_before, end_date_after, end_date_before.
Response Format
{
"companies": [
{
"company_domain": "salesforce.com",
"organization_id": "3AB6196C…",
"contract_count": 3,
"total_contract_value": "$450M",
"total_contract_value_amount": 450000000,
"has_more": false,
"contracts": [
{
"contract_id": "hg-1234",
"vendor_name": "Accenture",
"title": "CRM Transformation",
"deal_value": "$150M",
"deal_value_amount": 150000000,
"start_date": "2023-01-01",
"end_date": "2026-12-31",
"performance_criteria": ["99.9% uptime SLA"],
"pricing_structure": "Fixed Fee",
"larger_contract": false
}
]
}
]
}
New per-contract fields (added in 2026-08-04)
| Field | Type | Description |
|---|---|---|
performance_criteria | string[] | Performance-criteria clauses for the contract. |
pricing_structure | string | Contract pricing-structure description. |
larger_contract | boolean | Whether this record is part of a larger contract. |
Example Usage
{
"tool": "company_contracts",
"parameters": {
"domains": ["salesforce.com", "cisco.com"],
"active_only": true
}
}
Federal contracts for a single company:
{
"tool": "company_contracts",
"parameters": {
"domains": ["palantir.com"],
"include_federal_contracts": true,
"company_name": "Palantir Technologies"
}
}
Related Tools
company_enrich— multi-section enrichment including contracts in a single call.search_federal_contracts— search USAspending.gov by recipient name when the company is not in the HG database.
Changelog
2026-08-04 — Unified API PR #326 alignment
Availability: live on the private
nextMCP channel for allow-listed orgs. The public/api/mcpcontract is unchanged.
Why this changed: aligns company_contracts with the additive batch capability and richer per-contract fields shipped in unified API PR #326.
Breaking change — company selection is now batch-only
- The singular
hg_id/company_domainselectors are removed. Select companies with batch arrays:hg_ids(array, ≤25) and/ordomains(array, ≤25). At least one is required. - The output is now a
{ companies: [...] }array. - Migration:
hg_id: "abc"→hg_ids: ["abc"],company_domain: "cisco.com"→domains: ["cisco.com"].
Breaking change — federal enrichment is single-company-only
include_federal_contracts may only be enabled when the request targets exactly one company. Enabling it with more than one company is rejected with a clear error.
Additive — richer per-contract fields
Each contract record now surfaces three fields previously dropped: performance_criteria (string[]), pricing_structure (string), and larger_contract (boolean).
The Redis cache schema version was bumped by +3 (base 1 to 4).
2026-07-31 — Breaking: params and envelope fields renamed to snake_case
Availability: live on the private
nextMCP channel for allow-listed orgs. The public/api/mcpcontract is unchanged.
Before (on next) | After | |
|---|---|---|
| Domain param | companyDomain | company_domain |
| Company name | companyName | company_name |
| Active filter | activeOnly | active_only |
| Vendor filter | vendorName | vendor_name |
| Deal range | minDealValue / maxDealValue | min_deal_value / max_deal_value |
| Date filters | startDateAfter / startDateBefore / endDateBefore / endDateAfter | start_date_after / start_date_before / end_date_before / end_date_after |
| Federal flag | includeFederalContracts | include_federal_contracts |
Output envelope renamed: companyDomain → company_domain, organizationId → organization_id, contractCount → contract_count, hasMore → has_more, and all contract sub-fields to snake_case.
2026-07-30 — Breaking: v2 POST /data-api/v2/companies/enrich; status enum → activeOnly; per-contract status dropped
Why this changed: company_contracts now proxies POST /data-api/v2/companies/enrich with fields: ['contracts'] instead of the legacy /v2/organizations/enrich flow.
Breaking changes
| Before | After | |
|---|---|---|
| Contract status filter | status: 'active' | 'churned' | 'all' | activeOnly: boolean (default false) |
Per-contract status | present | removed — active-ness is a request-level filter |
Per-contract endDate | inconsistent | present (YYYY-MM-DD) |
| New detail fields | — | title, summary, announcementDate, customerDrivers, contractStructure, contractEvent, bidProcess, serviceLines |
Migration: replace status: 'active' with activeOnly: true. There is no direct replacement for status: 'churned' — use activeOnly: false and filter client-side on endDate, or use endDateBefore with today's date.