PubSec Radar

Federal sales intelligence: expiring-contract triggers, agency spend intel, deal qualification.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
88%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,600Tokens (tool definitions)
~2.4 KBTypical response size
Moderate attention impact (1.25% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "pubsec-sales-mcp": {
      "url": "https://pubsec-sales-mcp.kabrawala.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://pubsec-sales-mcp.kabrawala.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢find_expiring_contracts(agency, naics_code, window_days, limit)

Use this when prospecting or prepping a federal account and you want sales triggers: contracts at an agency that end soon, with the incumbent vendor, dollar values, and contracting office. Expiring contracts mean upcoming recompetes — the best time to displace an incumbent. Good queries name one agency and optionally a NAICS code, e.g. agency="DHS", naics_code="541512", window_days=90. Federal only (no state/local). Every response includes data-freshness and coverage caveats — read them; no data ≠ no spend.

Input Schema

{
  "type": "object",
  "properties": {
    "agency": {
      "type": "string",
      "description": "Federal agency name, acronym, or code — e.g. \"DHS\", \"Department of Defense\", \"070\". Federal only; SLED is out of scope."
    },
    "naics_code": {
      "description": "Optional NAICS code to narrow by category, e.g. \"541512\" (computer systems design).",
      "type": "string",
      "pattern": "^\\d{2,6}$"
    },
    "window_days": {
      "default": 90,
      "description": "How far ahead to look for contract end dates, in days from today. Default 90, max 365.",
      "type": "integer",
      "minimum": 1,
      "maximum": 365
    },
    "limit": {
      "default": 15,
      "description": "Max contracts to return (top by obligated amount). Default 15.",
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "required": [
    "agency"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢agency_spend_profile(agency)

Use this to answer "what does this agency actually buy, and from whom?" before a first call: total contract obligations, 3-year trend, top 10 vendors, and top 10 NAICS categories for one fiscal year. Good queries name one agency, e.g. agency="HHS". Figures come from a daily snapshot of USAspending covering the current fiscal year plus a 3-year trend; freshness is stated in the response. Federal only. Read the coverage caveats — current-FY totals are partial-year and intel-agency spend is never published.

Input Schema

{
  "type": "object",
  "properties": {
    "agency": {
      "type": "string",
      "description": "Federal agency name, acronym, or code — e.g. \"HHS\", \"Department of Veterans Affairs\", \"075\"."
    }
  },
  "required": [
    "agency"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢incumbent_lookup(vendor, agency, limit)

Use this to answer "who am I displacing and when?": a vendor name (plus optional agency scope) returns their current and recent awards with values and end dates, flagging awards that end within 12 months as displacement windows. Good queries use the vendor's registered name or a distinctive fragment, e.g. vendor="Booz Allen", agency="DHS". Federal only. Zero results ≠ no presence — check the caveats for name-matching tips.

Input Schema

{
  "type": "object",
  "properties": {
    "vendor": {
      "type": "string",
      "minLength": 2,
      "description": "Vendor/incumbent name as registered in federal awards, e.g. \"Booz Allen Hamilton\", \"CACI\". FPDS matches it as a phrase — shorter fragments match more."
    },
    "agency": {
      "description": "Optional federal agency to scope the lookup, e.g. \"DHS\". Omit to search government-wide.",
      "type": "string"
    },
    "limit": {
      "default": 15,
      "description": "Max awards to return (largest first). Default 15.",
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "required": [
    "vendor"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡generate_discovery_questions(agency, product_category, naics_code, meeting_context)

Use this when prepping a meeting with a federal agency: it returns discovery questions tuned to public-sector selling (fiscal-year timing, contract vehicles, FedRAMP/ATO, incumbents), grounded in the agency's live spending data where possible — each data-backed question cites the number that motivated it with a source URL. Good queries name the agency, what you sell, and the meeting type, e.g. agency="DHS", product_category="zero-trust network security", meeting_context="first_call". Add naics_code to surface expiring-contract questions.

Input Schema

{
  "type": "object",
  "properties": {
    "agency": {
      "type": "string",
      "description": "Federal agency the meeting is with — name, acronym, or code, e.g. \"DHS\"."
    },
    "product_category": {
      "type": "string",
      "minLength": 3,
      "description": "What you sell, in plain words — e.g. \"data analytics platform\", \"zero-trust network security\"."
    },
    "naics_code": {
      "description": "Optional NAICS code for your category — adds questions about specific expiring contracts.",
      "type": "string",
      "pattern": "^\\d{2,6}$"
    },
    "meeting_context": {
      "default": "first_call",
      "description": "What kind of meeting you are prepping for.",
      "type": "string",
      "enum": [
        "first_call",
        "technical_deep_dive",
        "procurement_discussion"
      ]
    }
  },
  "required": [
    "agency",
    "product_category"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢qualify_opportunity(agency, product_category, estimated_value_usd, incumbent_vendor, deal_facts)

Use this to pressure-test a federal deal: pass what you know per MEDDPICC dimension (leave unknowns empty) and get back an evidence-scored scorecard adapted for public sector — budget authority instead of generic economic buyer, procurement vehicle as the paper process — with gap-closing questions and public-record evidence pulled automatically (name the incumbent_vendor and their real awards/end dates at the agency get attached). Scores measure evidence specificity, not truth; the response says what verified evidence looks like for each dimension.

Input Schema

{
  "type": "object",
  "properties": {
    "agency": {
      "type": "string",
      "description": "Federal agency the deal is at — name, acronym, or code, e.g. \"DHS\"."
    },
    "product_category": {
      "type": "string",
      "minLength": 3,
      "description": "What you are selling, e.g. \"SIEM platform\"."
    },
    "estimated_value_usd": {
      "description": "Rough deal size in USD, if known.",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "incumbent_vendor": {
      "description": "Competitor/incumbent vendor name if known — their real awards at this agency get pulled as evidence.",
      "type": "string"
    },
    "deal_facts": {
      "description": "What you know so far, one field per MEDDPICC dimension. Omit entirely (or leave fields empty) for pure-discovery scoring — gaps are the output.",
      "type": "object",
      "properties": {
        "metrics": {
          "description": "Quantified mission outcome the buyer expects (their numbers, not your pitch).",
          "type": "string"
        },
        "economic_buyer": {
          "description": "Who has budget/obligation authority — name, role, what they've said.",
          "type": "string"
        },
        "decision_criteria": {
          "description": "How they'll evaluate — technical factors, past performance, price weighting.",
          "type": "string"
        },
        "decision_process": {
          "description": "Steps and dates to award — RFI, evaluation, decision milestones.",
          "type": "string"
        },
        "paper_process": {
          "description": "Procurement path — vehicle, contract type, contracting office, ceiling.",
          "type": "string"
        },
        "identified_pain": {
          "description": "The forcing function — mandate, audit finding, incident, failed program.",
          "type": "string"
        },
        "champion": {
          "description": "Who sells for you internally — name, role, what they've done for you so far.",
          "type": "string"
        },
        "competition": {
          "description": "Who else is in — incumbent, other bidders, or internal do-nothing option.",
          "type": "string"
        }
      }
    }
  },
  "required": [
    "agency",
    "product_category"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools