GSA CALC+
com.1102tools/gsa-calc-mcpVersion 1.0.24GSA CALC+ awarded labor ceiling rates from more than 230,000 MAS contract records. 8 tools.
Status
Responds1354 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 13:44 UTC
- Latency
- 1354 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://gsa-calc.1102tools.com/mcpResponds1354 msNo sign-in
Claude Code
claude mcp add --transport http gsa-calc-mcp https://gsa-calc.1102tools.com/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: gsa-calc-mcp
Remote MCP server URL: https://gsa-calc.1102tools.com/mcpCursor
{
"mcpServers": {
"gsa-calc-mcp": {
"url": "https://gsa-calc.1102tools.com/mcp"
}
}
}VS Code
code --add-mcp '{"name":"gsa-calc-mcp","type":"http","url":"https://gsa-calc.1102tools.com/mcp"}'Streamable HTTP
pypi: gsa-calc-mcp 1.0.24Package only
PyPI (uvx)
claude mcp add gsa-calc-mcp -- uvx gsa-calc-mcp==1.0.24Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
8 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
exact_searchExact match search on a specific field.
Use suggest_contains() first to discover the exact field value, then
pass it here. The API requires exact string matching -- partial matches
return 0 results.
Fields: labor_category, vendor_name, idv_piid (GSA MAS contract number).
For a discovered value containing a colon, GSA's exact-field search can
return only the text before the colon. This tool uses literal keyword
search instead and accepts its statistics only when the complete,
non-approximate requested-field aggregation proves every rate row has
the exact value. If that cannot be verified, it withholds the misleading
population and gives keyword_search recovery guidance. Source statistics
remain unchanged; empty results and thin samples retain their limits.
| No | Yes | Not declared | Yes |
filtered_browseBrowse rates with filters only (no search keyword).
Useful for market segment statistics: "what do all BA-level rates with
5-15 years experience look like across all of GSA MAS?" Returns rate
records plus full aggregation statistics.
| No | Yes | Not declared | Yes |
igce_benchmarkGet ceiling rate benchmarks for IGCE development.
Returns statistical summary for a labor category: count, min, max, avg,
median, standard deviation, percentile distribution (P10-P90), education
breakdown, worksite counts (worksite_breakdown: Customer_Facility /
Contractor_Facility / Virtual; counts only, prices are pooled across
sites), and outlier bounds.
GSA's keyword search matches labor_category, vendor_name and idv_piid.
The returned statistics pool all matching rate rows, including unrelated
labor titles when a vendor name or contract number matches the phrase.
Check population_scope and matched_titles before using the statistics.
off_title_matches_detected flags observed titles that do not match the
requested phrase; title_only_population_verified is false when the title
aggregation is missing, empty, truncated or approximate.
A title containing the phrase is not necessarily the exact grade:
'Registered Nurse I' also matches Nurse II, III and IV. Check
exact_title_population_verified, exact_title_rate_count and
non_exact_title_examples before treating a pool as that specific title.
For title-only rates, call suggest_contains on labor_category to discover
an exact title, then exact_search on labor_category. Different spellings
remain separate searches ('Cyber Security Analyst' vs 'Cybersecurity
Analyst'). Statistics are on current-year ceiling rates (current_price),
not next-year or option-year prices.
These are not-to-exceed ceiling rates, not prices paid. Ceiling-rate
comparisons alone do not establish a proposed price's reasonableness.
Optional filters: education_level, experience_min/max, business_size
('S' or 'O'), sin (e.g. '541611'), security_clearance ('yes' or 'no').
| No | Yes | Not declared | Yes |
keyword_searchSearch GSA CALC+ ceiling rates by keyword.
Performs wildcard matching across labor_category, vendor_name, and
idv_piid fields. This is the primary search tool for finding rates.
Returns matching rate records plus aggregation statistics (wage_stats,
percentiles, education breakdown, business size) covering the FULL
result set even when individual hits are capped at 10,000.
Important notes:
- These are NTE (not-to-exceed) ceiling rates, not prices paid
- Rates are fully burdened hourly rates from GSA MAS contracts
- Data refreshes nightly from vendor price proposal tables
- Use P50 from percentiles for median (more accurate than median_price)
Filter parameters:
- education_level: AA, BA, HS, MA, PHD, TEC (pipe-delimited for OR: 'BA|MA')
- experience_min/max: years of experience range
- price_min/max: hourly rate range in USD
- business_size: 'S' (small) or 'O' (other/large)
- security_clearance: 'yes' or 'no'
- sin: Special Item Number (e.g., '54151S' for IT Professional Services)
- worksite: NOT supported (the v3 API silently ignores it; passing a
value raises so callers are not handed unfiltered data)
ordering: current_price, labor_category, vendor_name, education_level,
min_years_experience, next_year_price, idv_piid, business_size.
sort: 'asc' or 'desc'.
exclude: pipe-delimited hit _id values to exclude from results and stats.
| No | Yes | Not declared | Yes |
price_reasonableness_checkEvaluate a proposed hourly rate against GSA ceiling rate distribution.
GSA's keyword search matches labor titles, vendor names and contract
numbers. Check population_scope: unrelated titles can enter the pooled
statistics through a matching vendor or contract.
Returns MIXED_SEARCH_FIELDS with no verdict when off-title matches are
detected, or UNVERIFIED_POPULATION with no verdict when the title list
is missing, empty, truncated or approximate. Discover an exact title with
suggest_contains, then use exact_search on labor_category for title-only
rates. Filters match igce_benchmark, including sin and security_clearance.
Returns MIXED_LABOR_TITLES with no verdict when the phrase matches
different grades, specialties or title variants; pooled statistics remain
visible, with the exact-title count when verified. For example, Nurse I
must not be compared as if Nurse II/III/IV rates were the same grade.
Use exact_search with its supported education, experience and business-size
filters to inspect that title. It does not accept SIN or clearance filters;
check those requirements in the returned records and retain paging limits.
A verified exact-title population with at least 20 rates returns z-score,
median comparison, IQR position and delta from average. The z-score is
null when the mean or standard deviation is unavailable or variance is
zero. Missing means produce null average deltas.
A verified exact-title population with fewer than 20 rates returns LOW_SAMPLE
without a high/low verdict;
zero rates return NO_DATA. Statistics compare not-to-exceed ceiling
rates, not prices paid, and do not by themselves establish price
reasonableness or performance risk.
| No | Yes | Not declared | Yes |
sin_analysisGet rate distribution and statistics for a specific SIN.
Returns rate statistics, education breakdown, business size breakdown,
and labor_categories for a GSA MAS Special Item Number: the 25 titles
with the most rates on the SIN, with counts (exact, case-sensitive
titles). It does not return individual rate rows or per-title prices;
for what a title costs on the SIN, call igce_benchmark(title, sin=...).
When GSA's 500-title list is cut off, labor_categories.distinct is null
and records_in_titles_not_listed counts the rates under titles not
listed.
Common SINs for professional services (live-verified to return records):
- 54151S: IT Professional Services
- 541611: Management and Financial Consulting
- 541715: Engineering R&D
- 541330ENG: Engineering Services
- 561210FAC: Facilities Maintenance and Management
- 611430: Training
| No | Yes | Not declared | Yes |
suggest_containsDiscover exact field values via autocomplete/contains matching.
Returns aggregation buckets showing matching values and their record
counts. Use this BEFORE exact_search() to find the right value string.
Minimum 2 characters required for the search term.
GSA lists at most 100 values, most records first. When more values
match, truncated is true and other_records counts the records under
values not shown; use a longer term to narrow the list.
Example workflow:
1. suggest_contains('vendor_name', 'booz') -> finds 'Booz Allen Hamilton Inc.'
2. exact_search('vendor_name', 'Booz Allen Hamilton Inc.') -> all their rates
| No | Yes | Not declared | Yes |
vendor_rate_cardGet ceiling rates for a specific vendor, one page at a time.
For a complete vendor card or a role-specific subset (for example,
project managers), fetch every page: while has_more is true, call this
tool again with page=next_page and the same vendor_name, page_size,
ordering, and sort. Stop only when has_more is false, then combine the
pages and match the requested roles client-side.
If you stop early, say clearly that the results are partial, report
the fetched returned_range against total_rates, and explain that later
pages may contain additional matching roles or rates. Do not claim a role is absent
or present a complete role-specific rate range from a partial card.
Auto-discovers the exact vendor name via suggest-contains, then pulls
their rate records. Returns labor categories, rates, education levels,
experience requirements, SINs, contract numbers, contract end dates, and
worksite. A vendor often lists the same category twice at two prices,
one for work at the customer's site (Customer_Facility) and one at the
contractor's site (Contractor_Facility); check worksite before comparing.
Pass a partial name (e.g., 'booz' for Booz Allen Hamilton). The tool
finds the exact registered name automatically. Use part of the legal
name, not an acronym ('Science Applications', not 'SAIC').
total_rates counts rate rows, not titles: one title can have several
rows (worksite, contract, SIN). distinct_labor_categories is the number
of distinct titles (case-sensitive); when a vendor has more than 500 it
is null and distinct_labor_categories_min gives the floor.
Large vendors span many pages: Booz Allen Hamilton carries ~1,900 rate
rows (more than 500 distinct titles). The default page_size is 100 (~23KB) because a 500-row page
for a vendor that size is ~114KB and overflows MCP client output limits.
Rows are ordered by labor_category ascending by default, so a partial
| No | Yes | Not declared | Yes |
Details
- Registry status
- Active
- Published
- Oct 30, 2026
- Updated
- Oct 30, 2026
- Categories (suggested)
- Marketing and SEOSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared