Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
SAM.gov data by API key: entities, exclusions, opportunities, awards, hierarchy, subawards.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"fedvendor": {
"command": "npx",
"args": [
"-y",
"@reneturcios/fedvendor",
"mcp"
]
}
}
}在终端中运行这条命令
claude mcp add fedvendor -- npx -y @reneturcios/fedvendor mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"fedvendor": {
"command": "npx",
"args": [
"-y",
"@reneturcios/fedvendor",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"fedvendor": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/fedvendor",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 CloudCorpRecords 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.0)于3天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js, Docker。
同一分类中有:Spec Driven Development, Remote Desktop Commander, yontu
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Türkçe yazı denetimi: TDK kuralları, yapay zekâ izleri, metin türüne göre üslup.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
SAM.gov is where the US federal vendor world is registered, excluded, solicited and awarded — and it is spread across half a dozen public APIs with different habits. fedvendor wraps them in one client: twenty tools covering entity registrations, debarment records, live contract opportunities, award history, the federal org chart, FFATA subaward reports and product/service codes, all behind a single SAM.gov API key.
Most tools hand back the upstream JSON exactly as SAM.gov sent it. The three awards tools are the exception: they return a normalized {"awardSummary": [...], "totalRecords": int} shape, so modifications, search hits and deleted records all read the same way.
SAM_API_KEY (required for the nineteen data tools) — your SAM.gov public API key, sent on every request as the api_key query parameter. When it is not set, every data tool fails with SAM_API_KEY is not set and no request is made. SAM.gov keys expire every 90 days; a 401 or 403 reply says so and points at the regeneration page. get_access_status works without a key — reporting that state is its whole job.SAM_API_BASE_URL (optional) — API base URL. Defaults to https://api.sam.gov.Country codes follow ISO 3166-1 alpha-3, as the underlying APIs expect.
Entities (Entity Management v3):
lookup_entity_by_uei — one entity by uei. include_sections chooses the response sections and defaults to entityRegistration,coreData.lookup_entity_by_cage — one entity by cage, with the same section handling.search_entities — flexible search by legal_business_name, primary_naics, state (physical-address state), business_type_code, sba_business_type_code and registration_status, with page and size. The API's page size is capped at 10 and the cap is enforced client-side: a size outside 1–10 fails with size must be an integer between 1 and 10 before any request.get_entity_reps_and_certs — FAR/DFARS representations and certifications for a uei. These sections are never included by an All section request, so they have their own tool; entityRegistration is always included alongside.get_entity_integrity_info — FAPIIS proceedings (integrity information) for a uei, likewise requested explicitly with entityRegistration.Exclusions (v4):
check_exclusion_by_uei — is this uei debarred?search_exclusions — search by name, classification and agency, paginated with page and size (this API paginates by size, not limit).Contract opportunities (v2):
search_opportunities — search by keyword (title), naics_code, psc_code, notice_type, state and zip, with posted-date (posted_from / posted_to) and response-deadline (response_from / response_to) ranges in MM/dd/yyyy, plus limit and offset. The agency_keyword filter is applied locally after the response arrives — the API silently ignores its department parameters — by keeping only results whose fullParentPathName contains the keyword, case-insensitively.get_opportunity_description — the HTML description for a notice_id.Contract awards (v1) — all three return the normalized awards shape described above:
search_contract_awards — search by agency_id, naics_code, fiscal_year and piid, with an award date range (award_date_from + award_date_to, MM/dd/yyyy) sent as one bracket-range parameter. Pagination is limit (1–100) and offset.lookup_award_by_piid — every modification for one piid.search_deleted_awards — deleted award records, for audit trails.Federal Hierarchy (v1):
search_federal_organizations — search the org chart by fh_org_id, name, org_type (shorthand values such as DEPARTMENT and AGENCY are accepted), status, agency_code and cgac. The response keeps the upstream lowercase totalrecords / orglist keys.get_organization_hierarchy — the children of one organization, by fh_org_id.FFATA subawards — dates are ISO yyyy-MM-dd, pagination is page_number / page_size:
search_acquisition_subawards — subcontract reports, filtered by piid, referenced_idv_piid, agency_id and status.search_assistance_subawards — grant subaward reports, filtered by fain, prime_award_key, agency_code and status.PSC codes:
lookup_psc_code — the full record for one psc_code.search_psc_free_text — discover codes by free-text query.Composite:
vendor_responsibility_check — a one-shot FAR 9.104-1 responsibility check for a uei: the entity lookup and the exclusion lookup in a single call, returned as {"uei", "entity", "exclusions", "flags"}. The flags are composed locally — entity_not_found, registration_inactive, excluded, or clear when none of the others apply.get_access_status — credential readiness: whether SAM_API_KEY is configured, the 90-day key expiry, and the daily request limits by account type (10 for non-federal users without a SAM.gov role, 1000 with a role or a federal personal account, 10000 for federal system accounts). Makes no request.Validation fails before any request with a specific message: must be a non-empty string for required strings, the size/limit range messages above, must use MM/dd/yyyy for opportunity and award dates, and must use yyyy-MM-dd for subaward dates. Other upstream non-2xx replies fail with sam.gov error: HTTP and an unreachable API with sam.gov unreachable.
The tool surface, the base URLs and the documented parameter names come from the SAM.gov API documentation and the original tool's published description. A few details are reconstructions, labelled as such: get_access_status's name follows the vendor family's published pattern for credential checks; the exclusions endpoint's ueiSAM parameter, the Federal Hierarchy parameter names, the awards bracket-range parameter name, the PSC endpoint's searchby=keyword value, the awards wire names for agency_id / naics_code / fiscal_year, and the composite tool's flag strings are renderings of the documented behaviour rather than verbatim-pinned names. MCP argument names are snake_case renderings of the documented wire names throughout.
Each tool is a subcommand taking one JSON argument string:
export SAM_API_KEY="<your key>"
npx @reneturcios/fedvendor lookup_entity_by_uei '{"uei":"ABC123XYZ"}' npx @reneturcios/fedvendor lookup_entity_by_cage '{"cage":"1A2B3"}' npx @reneturcios/fedvendor search_entities '{"legal_business_name":"Acme","size":5}' npx @reneturcios/fedvendor get_entity_reps_and_certs '{"uei":"ABC123XYZ"}' npx @reneturcios/fedvendor check_exclusion_by_uei '{"uei":"ABC123XYZ"}' npx @reneturcios/fedvendor search_opportunities '{"keyword":"software","agency_keyword":"defense"}' npx @reneturcios/fedvendor search_contract_awards '{"fiscal_year":"2026","limit":10}' npx @reneturcios/fedvendor lookup_award_by_piid '{"piid":"W91ZLK24P0001"}' npx @reneturcios/fedvendor search_federal_organizations '{"org_type":"DEPARTMENT"}' npx @reneturcios/fedvendor lookup_psc_code '{"psc_code":"D399"}' npx @reneturcios/fedvendor vendor_responsibility_check '{"uei":"ABC123XYZ"}' npx @reneturcios/fedvendor get_access_status '{}' npx @reneturcios/fedvendor --version
Output is the tool's result text (the upstream JSON on success). Exit codes: 0 on success, 1 on a runtime error (including a validation, missing-key or upstream failure), 2 on a usage error.
npx -y @reneturcios/fedvendor mcp
MCP client config (provide the key through the client's environment):
{
"mcpServers": { "fedvendor": { "command": "npx", "args": ["-y", "@reneturcios/fedvendor", "mcp"], "env": { "SAM_API_KEY": " " } } } }
docker run -i -e SAM_API_KEY="<your key>" ghcr.io/cloudcorprecords/fedvendor
docker run --rm -e SAM_API_KEY=" " ghcr.io/cloudcorprecords/fedvendor get_access_status '{}'
npm install
npm run build # tsc -> dist/ npm test # tsx --test test/*.test.ts (fake fetch only, no network) npm run dev # run the CLI from source
MIT — Copyright (c) 2026 Rene Turcios