MCP Sam Gov vs Posthog

A side-by-side look at the MCP Sam Gov and Posthog MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

MCP Sam Gov logoMCP Sam GovDeveloper Tools · Local subprocess (stdio)Keyless MCP — 36 tools for SAM.gov, USAspending, Federal Register, eCFR, Grants.gov.64GoodAuth: not declaredPosthog logoPosthogDeveloper Tools · Local subprocess (stdio)Interact with PostHog analytics, feature flags, error tracking and more.55GoodAuth: api key required

Verdict: choose MCP Sam Gov for developer tools work as a local process; choose Posthog for developer tools as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

MCP Sam Gov logoChoose MCP Sam Gov when

  • You need dedicated capabilities in the Developer Tools domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like sam_search_opportunities, sam_search_shaping, sam_get_opportunity.
Explore MCP Sam Gov

Posthog logoChoose Posthog when

  • You need dedicated capabilities in the Developer Tools domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: API key required.
  • You have the keys it needs: POSTHOG_AUTH_HEADER.
Explore Posthog

Feature & specification comparison

Rows where the two servers differ are marked.

SpecMCP Sam Gov logoMCP Sam GovPosthog logoPosthog
CategoryDeveloper ToolsDeveloper Tools
Quality signal64/100 · Good55/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredAPI key required
PricingNot declaredNot declared
Required env varsNone listedPOSTHOG_AUTH_HEADER
Verified ownerCommunity listingCommunity listing
GitHub stars1340,429
Directory activity 0 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools153Not listed

Tools & capabilities

MCP Sam Gov tools 153

  • sam_search_opportunitiesSearch SAM.gov federal contracting opportunities (keyless HAL). Returns up to 50 active notices with title, agency, NAICS, noticeId. Use for discovery — narrow with NAICS / agency / set-aside / state.
  • sam_search_shapingPRE-SOLICITATION shaping radar (keyless HAL). Surfaces Sources Sought / Presolicitation / Special Notices BEFORE the RFP exists — the free, real-time analogue of paid agency-forecast feeds. Closes the pre-solicitation lifecycle gap: catch a requirement while it's still shapeable (submit capabilities, influence NAICS/set-aside/PWS). Defaults to noticeType ['r','p','s']; opt into k/i/u for combined-synopsis / intent-to-bundle / J&A tells. Each notice carries noticeTypeCode (rank r/p over s), postedDate, responseDeadline + daysUntilResponse (null when no deadline — counted, not hidden), and a uiLink. HONEST KEYLESS LIMITS: naics/setAside/placeOfPerformance are null in the list rows (call sam_get_opportunity(noticeId) for those); and a responseDeadlineFrom/To window is applied CLIENT-SIDE over the fetched page (the feed ignores rdlfrom/rdlto) and disclosed in _meta. data.totalRecords is the TRUE server-side count for the type+facet filter.
  • sam_get_opportunityFetch full detail for a single SAM.gov notice by 32-char hex noticeId. Returns title, agency, solicitation #, POCs, response deadline, attachments (with download URLs), inline description body. Call BEFORE drafting bid/no-bid or compliance work.
  • sam_fetch_descriptionReturn the full description / RFP body text for a notice as plain text. Useful when sam_get_opportunity returned a description URL instead of inline body, or for an LLM-friendly text dump.
  • sam_attachment_urlBuild the public download URL for an attachment resourceId. The URL returns a 303 redirect to a signed S3 URL — fetch with redirect:'follow' to get the file bytes.
  • sam_fetch_attachment_textExtract the TEXT of a SAM notice attachment (the actual RFP / SOW / Q&A / wage tables) by its download URL — so an AI can read the real solicitation, not just its metadata. Give it a sam_get_opportunity attachments[].url (resourceLinks). Keyless. Handles PDF (via pdfjs) + text/HTML; returns { format, text, pages, filename, sizeBytes, truncated, extracted }. HONEST: a DOCX / binary that can't be read keyless returns text:null + a note (never fabricated); a corrupt/encrypted PDF returns text:null + an extractionError note (never a crash); a DOWN fetch throws a retryable upstream_unavailable (never empty text); a 404 throws not_found. Only sam.gov / api.sam.gov URLs are fetched (SSRF hygiene). maxChars caps the text (default 200000) and truncation is disclosed.
  • sam_lookup_organizationResolve a SAM.gov federal-organization id to its canonical fullParentPathName (e.g. 'VETERANS AFFAIRS, DEPARTMENT OF.VETERANS AFFAIRS, DEPARTMENT OF.245-NETWORK CONTRACT OFFICE 5'). Use when sam_get_opportunity returned only an organizationId.
  • sam_lookup_notice_fieldsBATCH-complete a sam_search_opportunities page in ONE call from the GSA daily bulk CSV (keyless). The keyless HAL list endpoint NULLS each result's naics/setAside/place-of-performance/responseDeadline/type; this tool returns those fields for 1..100 noticeIds at once (naicsCode, setAside + setAsideCode, popState/popCity/popZip/popCountry, responseDeadline, type, active, title) from a cached on-disk CSV index, instead of one sam_get_opportunity detail call per notice. OFF BY DEFAULT (no forced 226 MB download): enable by setting SAM_GOV_CSV_CACHE (a cache dir) or SAM_GOV_ENABLE_CSV=1 — when disabled the tool returns data.enabled:false + a structured 'how to enable' note (never fake data, no network). HONEST: _meta carries the CSV last-modified + index build time (freshness), a noticeId absent from the current snapshot returns found:false + nulls with an explicit 'not in current CSV snapshot' disclosure (never faked), a cold first call discloses 'index warming', and a download/parse failure is a structured retryable error (never a silent empty). setAsideCode (e.g. 'SBA') matches sam_get_opportunity's setAside; the snapshot can lag live by up to ~24h — confirm real-time-critical fields with sam_get_opportunity.
  • usas_search_awardsAggregate share-of-wallet on USAspending. Given an agency × NAICS × fiscal year, returns top recipients by total obligated $ ONLY — per-recipient award COUNTS are NOT returned by this endpoint (`awards`/`totalAwards` are null, not 0); for real per-recipient contract counts use usas_search_awards_by_recipient (its _meta.totalAvailable) or usas_get_recipient_profile. Use for competitive landscape ('who wins at VA in 541512?').
  • usas_search_individual_awardsLine-item federal contracts on USAspending. Returns specific awards (recipient + $ + sub-agency + state + description). Use AFTER usas_search_awards when the user wants 'show me the actual contracts'. Each result includes a generatedInternalId for usas_get_award_detail follow-ups.
  • usas_search_subagency_spendingBreak down a parent agency's spending by sub-agency / office. Surfaces which office holds the budget (e.g. VA OI&T vs VHA, DoD vs Army vs DISA).
  • usas_lookup_agencyResolve a user-friendly agency reference ('VA', 'Veterans Affairs', 'DHS') to USAspending's canonical toptier name + 4-digit code. ALWAYS call this FIRST if the user uses an abbreviation — other USAspending tools require the canonical name.
  • +141 more on the listing page

Posthog tools

No tool names declared yet. Check the project README from the listing page.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

MCP Sam Gov

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "mcp-sam-gov": {
      "command": "npx",
      "args": [
        "-y",
        "@cliwant/mcp-sam-gov"
      ]
    }
  }
}

Posthog

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "posthog-posthog": {
      "command": "npx",
      "args": [
        "-y",
        "@posthog/wizard@latest"
      ],
      "env": {
        "POSTHOG_AUTH_HEADER": "YOUR_POSTHOG_AUTH_HEADER_HERE"
      }
    }
  }
}

Frequently asked questions

MCP Sam Gov is categorized under Developer Tools and uses a local stdio subprocess. Posthog belongs to Developer Tools and uses a local stdio subprocess. Pick MCP Sam Gov for developer tools work and Posthog for developer tools.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

MCP Sam Gov has no declared pricing — check the project's own site. Posthog has no declared pricing — check the project's own site. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add mcp-sam-gov and posthog-posthog as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, MCP Sam Gov has a quality signal of 64/100 (Good) with 0 views, 0 installs and 13 GitHub stars. Posthog has 55/100 (Good) with 1 views, 0 installs and 40,429 GitHub stars.