MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Knowledge & memory

GSA CALC+

GSA CALC+ awarded labor ceiling rates from more than 230,000 MAS contract records. 8 tools.

Checks passed
14 / 22

1 failed · 7 not measured

Median response
1769 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
8

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 1711 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name gsa-calc.

  • Pass
    Lists tools

    tools/list returned 8 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 1769 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 1821 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    0 of 64 parameters have a description (0%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-30T17:15:11.901083Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using GSA CALC+

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http gsa-calc https://gsa-calc.1102tools.com/mcp

Capabilities

Tools 8

exact_search

Exact 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.

Discovered
filtered_browse

Browse 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.

Discovered
igce_benchmark

Get 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').

Discovered
keyword_search

Search 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.

Discovered
price_reasonableness_check

Evaluate 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.

Discovered
sin_analysis

Get 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

Discovered
suggest_contains

Discover 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

Discovered
vendor_rate_card

Get 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 card is alphabet-biased and may omit all requested roles on page 1. There is no server-side way to intersect a vendor with a labor-category keyword (the v3 API ignores vendor_name and labor_category as filter fields; live-verified). To find specific categories, page through the full card and match client-side. If the discovery term matches multiple vendors, this tool picks the one with the most rate records and returns a _candidates list so the caller can re-query with a more specific term if needed.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected1711 ms8
Connected1827 ms8