sam-gov-mcp
Бесплатный MCP-сервер с открытым исходным кодом для работы с регистрацией организаций в SAM.gov, исключениями и дисквалификациями, возможностями заключения контрактов, сведениями о присуждённых контрактах, федеральной иерархией и данными о субподрядах FFATA.
Обзор, демонстрационное видео и настройка размещённой версии: https://1102tools.com/mcp/sam-gov
Доступны две версии: размещённая — с 6 инструментами, не требующими ключа, для поиска возможностей заключения контрактов, публичных регистраций организаций и исключений; и локальная — со всеми 20 инструментами, для которой нужен бесплатный ключ SAM.gov. Подробнее см. в разделе «Локальная или размещённая версия».
Регрессионные тесты включают проверки в реальном времени через API SAM.gov. Релизы октября 2026 года также проверялись на реалистичных вопросах о закупках с использованием официальных записей SAM.gov. Подробнее см. в файле testing.md.
Локальная или размещённая версия
SAM.gov доступен в двух вариантах. Только размещённая версия не требует ключа.
| Локальная (полная версия) | Размещённая | |
|---|---|---|
| Установка | На вашем компьютере. Передайте AI ссылку на эту страницу и попросите настроить сервер или начните с раздела Установка | Добавьте сервер из каталога Claude (поддержка ChatGPT появится позже) |
| API key | Бесплатный ключ SAM.gov, срок действия которого истекает каждые 90 дней | Не требуется |
| Инструменты | 20 | 6 |
| Данные | Возможности заключения контрактов, а также регистрации организаций, сертификаты SBA, исключения, сведения о представителях и сертификатах, записи о добросовестности, данные о присуждённых контрактах, федеральная иерархия и субподряды | Возможности заключения контрактов, уведомления о присуждении контрактов, обоснования, публичные регистрации организаций, коды типов бизнеса и сертификации SBA, а также исключения |
| Источники данных | Актуальные API SAM.gov; действуют дневные лимиты вашего ключа | Публичные файлы SAM.gov: данные о возможностях и исключениях обновляются ежедневно, о регистрациях организаций — ежемесячно; в результатах указаны имена исходных файлов и даты |
| Поддерживаемые приложения | Настольные приложения Claude и ChatGPT, а также другие AI-приложения на настольном компьютере или ноутбуке | Claude или ChatGPT в браузере, на компьютере и телефоне |
| Обновления | Вручную. Локальные установки не обновляются автоматически. Попросите AI обновить их | Автоматически. Всегда используется последняя версия |
| Локальная версия (настольный компьютер) | Claude (размещённая версия) | ChatGPT (размещённая версия) |
|---|---|---|
| Настройка локальной версии | Установить | Скоро появится |
Сравнение локальной и размещённой версий · Примеры запросов
Размещённая версия: 6 инструментов, ключ не требуется
Размещённая версия позволяет искать и просматривать возможности заключения контрактов, публичные регистрации организаций и исключения. Она использует копии файлов, которые SAM.gov публикует для общего доступа, поэтому API key и локальная настройка не нужны. Данные о возможностях и исключениях публикуются ежедневно, а о публичных регистрациях организаций — ежемесячно. Сервис проверяет данные о возможностях каждые два часа, а файлы с данными об организациях и исключениях — каждые четыре часа; дополнительная проверка выполняется после обычного времени публикации файлов с данными об исключениях. Обновление выполняется в рамках действующих операционных бюджетов; если файлы не изменились, новые строки не добавляются. Дата в каждом результате указывает, какой именно файл был загружен; публикация файла не означает, что он обновится немедленно. Пока обновление не завершено, соответствующий публичный инструмент сообщает, что данные обновляются, и предлагает повторить запрос.
| Инструмент | Назначение |
|---|---|
search_opportunities | Поиск уведомлений по ключевым словам (в заголовках и полных описаниях), NAICS, PSC, типу резервирования, типу уведомления, ведомству, штату, датам публикации и ответа. Уведомления о присуждении контрактов и обоснования относятся к типам уведомлений. |
get_opportunity | Полное уведомление: описание, контактные данные, сведения о присуждении контракта и ссылка на sam.gov |
summarize_opportunities | Подсчёт результатов по ведомству, NAICS, типу резервирования или типу уведомления |
search_entities | Поиск публичной регистрации по UEI или CAGE, а также поиск по названию, NAICS, штату, типу бизнеса / коду сертификации SBA и статусу регистрации |
search_exclusions | Проверка публичных исключений по UEI, CAGE или названию |
get_data_status | Имена и даты исходных файлов, время загрузки и количество строк для данных о возможностях, организациях и исключениях |
В результатах могут отображаться старые уведомления, если они остаются активными, в том числе опубликованные в предыдущие финансовые годы. Это не полный исторический архив: архивные уведомления и вложения не включены. В результатах есть ссылки на уведомления на sam.gov. Для более полного обзора истории контрактов используйте совместно с USAspending MCP.
В каждом результате по организациям и исключениям указаны имя и дата исходного файла. В размещённую публичную копию не включены организации, которые отказались от публичного отображения данных. Отсутствие результата не означает, что организация не зарегистрирована. Прежде чем полагаться на сведения о регистрации, проверьте её актуальный статус на SAM.gov. Результаты по исключениям отражают состояние публичного файла на указанную дату; важные сведения необходимо проверить на SAM.gov.
Активная регистрация не подтверждает наличие действующей сертификации SBA. Публичные коды 8(a) могут сохраняться после указанной даты окончания сертификации; проверяйте certificationExitDate и уточняйте текущий статус сертификации в SBA.
Полная локальная версия: когда нужны дополнительные данные
Полная версия включает всё, что есть в размещённой, а также сведения о присуждённых контрактах, субподрядах, представителях и сертификатах, прошлых расторжениях и судебных разбирательствах.
Полная версия доступна только для локальной установки. Передайте AI ссылку на эту страницу и попросите настроить сервер или начните с раздела «Установка». Потребуется собственный бесплатный ключ SAM.gov; на него распространяется дневной лимит. Подробнее см. в разделе «Аутентификация».
Возможности
Сервер предоставляет доступ к семи REST API SAM.gov и проверяет готовность учётных данных в 20 инструментах MCP:
Управление организациями (v3)
-
lookup_entity_by_uei- Поиск одной организации по UEI с настройкой разделов ответа -
lookup_entity_by_cage- Поиск по коду CAGE -
search_entities- Гибкий поиск организаций по NAICS, PSC, типу бизнеса, штату, названию и другим параметрам -
get_entity_reps_and_certs- Получение сведений о представителях и сертификатах FAR/DFARS (необходимо запрашивать отдельно) -
get_entity_integrity_info- Данные о разбирательствах из FAPIIS
Исключения (v4)
-
check_exclusion_by_uei- Проверка дисквалификации одной организации по UEI -
search_exclusions- Расширенный поиск исключений по названию, классификации, программе, ведомству и дате
Возможности заключения контрактов (v2)
-
search_opportunities- Поиск возможностей заключения контрактов с полным набором работающих фильтров -
get_opportunity_description- Получение HTML-описания по идентификатору уведомления
Присуждённые контракты (v1) — замена FPDS
-
search_contract_awards- Поиск записей о присуждённых контрактах по поставщику, ведомству, NAICS, датам, сумме, типу резервирования и другим параметрам -
lookup_award_by_piid- Поиск всех модификаций контракта по одному PIID -
search_deleted_awards- Поиск удалённых записей о присуждённых контрактах для аудита
Федеральная иерархия (v1)
-
search_federal_organizations- Поиск в FH департаментов, ведомств, подведомственных организаций и офисов; фильтры: идентификатор организации FH, название, тип, статус, код ведомства и CGAC -
get_organization_hierarchy- Просмотр дочерних подразделений федеральной организации
Отчётность о субподрядах по закупкам (субподряды FFATA)
search_acquisition_subawards- Поиск отчётов о субподрядах FFATA по связям между основным подрядчиком и субподрядчиками, ведомству, датам и статусу
Отчётность о субподрядах по финансовой помощи (субподряды по грантам FFATA)
search_assistance_subawards- Поиск отчётов о субподрядах по грантам FFATA по FAIN, ключу основного контракта, ведомству и датам
Поиск по PSC
-
lookup_psc_code- Получение полной записи по коду PSC -
search_psc_free_text- Поиск по PSC в произвольном тексте
Комплексная проверка
vendor_responsibility_check- Комплексная проверка по FAR 9.104-1 одним вызовом инструмента: данные организации и сведения об исключениях
Аутентификация
Для работы требуется API key SAM.gov, заданный через переменную окружения SAM_API_KEY.
Чтобы получить бесплатный персональный API key, войдите в систему и следуйте инструкциям для получения Public API Key в справочном разделе SAM.gov Help.
| Тип учётной записи | Дневной лимит |
|---|---|
| Нефедеральная, без роли SAM | 10 в день |
| Нефедеральная, с ролью SAM | 1 000 в день |
| Персональная федеральная | 1 000 в день |
| Системная федеральная | 10 000 в день |
Важно: срок действия API key SAM.gov истекает каждые 90 дней. Проверьте или обновите ключ с помощью SAM.gov Help и внесите изменения в переменную окружения. При ошибке 401/403 сервер выводит понятное сообщение с инструкциями по обновлению ключа.
Установка
Через uvx
uvx --refresh-package sam-gov-mcp --from sam-gov-mcp sam-gov-mcp
Через pip
pip install sam-gov-mcp
Из исходного кода
git clone https://github.com/1102tools-dev/federal-contracting-mcps.git
cd federal-contracting-mcps/servers/sam-gov-mcp
pip install -e .
Конфигурация
Используйте приведённую ниже конфигурацию как описание сервера и разместите её в соответствии с требованиями вашего MCP-клиента. Примеры практических запросов на основе этого источника собраны в библиотеке промптов.
{
"mcpServers": {
"sam-gov": {
"command": "uvx",
"args": ["--refresh-package", "sam-gov-mcp", "--from", "sam-gov-mcp", "sam-gov-mcp"],
"env": {
"SAM_API_KEY": "SAM-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}
}
Флаг --refresh-package указывает uv проверять наличие новой версии в PyPI при каждом запуске сервера клиентом. Благодаря этому исправления становятся доступны автоматически. Без этого флага uv продолжит использовать версию, которую закэшировал первой. Проверка добавляет небольшую задержку на сетевой запрос при запуске. Если платформа устанавливает короткий тайм-аут запуска, увеличьте его.
Перезапустите клиент — инструменты появятся.
Примеры запросов
После настройки эти примеры показывают расширенные возможности сервера при самостоятельном использовании. Более полная подборка содержится в поддерживаемой библиотеке запросов для MCP:
-
"Проверьте ответственность поставщика [UEI]: выясните статус регистрации и наличие исключений, а затем отдельно получите сведения о добросовестности из FAPIIS. В проверку одним запросом эти сведения не входят."
-
"Получите статус регистрации [COMPANY], сведения о категориях социально-экономических программ и любых исключениях. Если SAM вернёт несколько регистраций для одного UEI, сообщите об этом и перечислите их, прежде чем выбирать одну."
-
"Получите ответы [COMPANY] на FAR 52.212-3 и DFARS 252.204-7016 из разделов reps and certs (в кратком режиме) и отметьте сведения, которые сотруднику по контрактам стоит прочитать полностью."
-
"Насколько далеко в прошлое фактически охватывает федеральная история награждения контрактами [COMPANY]? Проверьте контракты по десятилетиям, начиная с FY1970. До 1980 года объёмы данных невелики, поэтому единичные результаты следует считать архивными записями, а не пробелами."
-
"Найдите действующие компании с сертификацией 8(a) в [STATE] по NAICS [NAICS]. Учитывайте сертификацию SBA, а не самостоятельно заявленный статус."
-
"Найдите извещения о поиске потенциальных поставщиков за последние 30 дней по NAICS [NAICS] и отсортируйте их по сроку ответа, начиная с ближайшего."
-
"Покажите опубликованные в этом квартале запросы предложений на IT-услуги с ограничением участия для SDVOSB."
-
"Получите полное описание извещения с ID [paste ID] и кратко изложите SOW."
-
"Найдите записи об исключениях для [NAME]. Укажите категорию (Firm, Individual, Vessel), исключившее агентство и статус каждой записи."
-
"Найдите контракты, присуждённые [COMPANY] в финансовом 2026 году, а затем получите все изменения для самого крупного найденного PIID."
-
"Покажите удалённые записи о контрактах Министерства обороны за текущий финансовый год."
-
"Найдите Federal Hierarchy ID Министерства финансов и покажите дочерние организации на один уровень ниже."
-
"Покажите субподряды FFATA по основному PIID [PIID] и подсчитайте общую сумму субприсуждений."
-
"Получите все субприсуждения, указанные для гранта FAIN [FAIN]."
-
"Перечислите организации уровня агентств в CGAC 075 (HHS)."
Примечания по проектированию
-
Аутентификация только через переменную окружения.
SAM_API_KEYсчитывается из окружения при каждом вызове. Ключ не попадает в контекст беседы модели. -
Учитывается срок действия в 90 дней. Ошибки 401/403 преобразуются в понятное сообщение о том, как заново получить ключ, со ссылкой на актуальную справку SAM.gov.
-
Особенности API учтены в защитных проверках.
-
Ограничение Entity Management на
size=10применяется на стороне клиента, а при превышении выводится понятная ошибка -
В Exclusions используется
size, а неlimit(в отличие от других конечных точек SAM) -
Коды стран проверяются на соответствие трёхзначному формату ISO alpha-3: для двухзначных кодов API без уведомления возвращает 0 результатов
-
Заголовок
Accept: application/jsonне задаётся: при его наличии Exclusions возвращает ошибку 406 -
Символы квадратных скобок, тильды и восклицательного знака сохраняются в строках запросов для параметров с несколькими значениями
-
-
Постфильтрация параметров, которые API обрабатывает некорректно. Opportunities API без уведомления игнорирует фильтры
deptnameиsubtier. Функцияsearch_opportunitiesпредоставляет параметрagency_keyword, который фильтрует результаты после получения, сопоставляя подстроку сfullParentPathName. -
Значения по умолчанию для includeSections. При поиске сведений об организации по умолчанию используются
entityRegistration,coreData. Всегда добавляйтеentityRegistrationвместе с любыми другими разделами, иначе в ответе не будет идентификационных данных. РазделыrepsAndCertsиintegrityInformationтребуют отдельных вызовов инструментов (get_entity_reps_and_certs,get_entity_integrity_info): они не включаются даже приincludeSections=All. -
Нормализация ответов Contract Awards. В зависимости от наличия результатов API Contract Awards возвращает JSON в разных обёртках. Все инструменты приводят ответы к единому формату
{"awardSummary": [...], "totalRecords": int}. Ошибки возвращаются в виде обычного текста, а не JSON; сервер распознаёт их и формирует понятные сообщения. -
Пагинация Contract Awards. Используются параметры
limit/offset, а неpage/size, как в Entity Management. Максимальное значениеlimit— 100. Даты должны быть в формате MM/dd/yyyy, а диапазон задаётся как[MM/dd/yyyy,MM/dd/yyyy]. -
Составной сценарий.
vendor_responsibility_checkобъединяет типовую проверку по FAR 9.104-1 (регистрация организации и поиск исключений) в один вызов инструмента. Результат содержит структурированный список флагов для последующего анализа. -
Особенности Federal Hierarchy учтены в реализации.
-
В API используются ключи
totalrecordsиorglistв нижнем регистре, в отличие от остальных интерфейсов SAM.gov, где применяется camelCase; нормализатор сохраняет оба ключа -
По умолчанию возвращаются только действующие организации. Передача
status=ACTIVEне меняет результат по сравнению с запросом без фильтра. Чтобы включить архивные организации, укажитеINACTIVE -
Фактические значения
fhorgtypeимеют видDepartment/Ind. Agency, однако API также принимает сокращённые варианты (DEPARTMENT, AGENCY) без учёта регистра
-
-
Особенности Subaward Reporting учтены в реализации.
-
Даты задаются в формате ISO
yyyy-MM-dd, а неMM/dd/yyyy, как в Contract Awards. При смешении форматов сервер выдаёт понятную ошибку до обращения к сети -
Для пагинации используются параметры
pageNumber/pageSize, а неpage/sizeилиlimit/offset -
При проверке в рабочей среде в апреле 2026 года выяснилось, что API без уведомления игнорирует три задокументированных варианта написания параметров:
PIIDотбрасывается (используйте строчноеpiid),referencedIdvPIIDотбрасывается (используйтеreferencedIDVPIID), аreferencedIDVAgencyIDотбрасывается (используйтеreferencedIDVAgencyId). В сервере теперь используются правильные имена параметров на уровне запросов
-
В составе
federal-contracting-mcps: монорепозиторий с 9 MCP-серверами для работы с данными о федеральных контрактах. Используйте эти источники вместе с библиотекой промптов для MCP.
Лицензия
MIT