ecfr-mcp
Бесплатный MCP-сервер с открытым исходным кодом для API eCFR (Electronic Code of Federal Regulations). Читайте FAR, DFARS и тексты дополнений к FAR всех ведомств — аутентификация не требуется.
Обзор, демонстрационное видео и настройка размещённой версии: https://1102tools.com/mcp/ecfr
API-ключ не нужен ни для локального, ни для размещённого варианта. См. раздел «Локально или в размещённой версии».
Регрессионные тесты включают проверки работы с API eCFR и проверку того, что каждый фрагмент текста из десяти сохранённых ответов eCFR возвращается ровно один раз и в исходном порядке. Выпуски за октябрь 2026 года также проверялись на реалистичных вопросах по контрактам (поиск положений, определения FAR, история версий, недавние изменения). Подробнее см. testing.md.
Локально или в размещённой версии
| Локально (на компьютере) | Claude (размещённая версия) | ChatGPT (размещённая версия) |
|---|---|---|
| Локальная настройка | Установить | Установить |
-
Локальный вариант запускается на вашем компьютере — в настольном приложении Claude или ChatGPT либо в другом приложении с поддержкой ИИ. Он использует ваши собственные полные лимиты запросов и обращается только к государственному сервису. Самостоятельно сервер не обновляется, поэтому попросите ИИ обновить его. Настраивать всё вручную необязательно: отправьте ИИ ссылку на эту страницу и попросите установить сервер или провести вас через настройку.
-
Размещённый вариант всегда актуален, не требует настройки или ключей и доступен в Claude и ChatGPT из любой точки мира.
Сравнение локального и размещённого вариантов · Примеры запросов
Возможности
Предоставляет доступ к API eCFR через 13 инструментов MCP для работы с нормативными текстами, структурой, поиском, историей версий и типовыми задачами в сфере закупок:
Основные методы
-
get_latest_date— получить самую позднюю доступную дату для раздела CFR (выполните этот запрос перед использованием других инструментов) -
get_cfr_content— получить обработанный нормативный текст раздела, подраздела или части -
get_cfr_structure— получить иерархическое оглавление -
get_version_history— получить историю изменений раздела или части -
get_ancestry— получить путь по иерархии в виде цепочки навигации -
search_cfr— выполнить полнотекстовый поиск с фильтрами по иерархии -
list_agencies— получить список всех ведомств с соответствующими ссылками на CFR -
get_corrections— получить редакционные исправления для раздела CFR
Инструменты для типовых задач
-
lookup_far_clause— получить текст положения FAR/DFARS за один вызов с автоматическим определением даты -
compare_versions— сравнить тексты на две даты рядом -
list_sections_in_part— получить список всех разделов в части FAR/DFARS -
find_far_definition— найти определение термина в FAR 2.101 -
find_recent_changes— найти разделы, изменённые после указанной даты
Аутентификация не требуется
API eCFR полностью открыт. Не нужны API-ключ, регистрация или заголовки авторизации. Просто установите сервер и пользуйтесь им.
Установка
Через uvx (рекомендуется)
uvx --refresh-package ecfr-mcp --from ecfr-mcp ecfr-mcp
Через pip
pip install ecfr-mcp
Из исходного кода
git clone https://github.com/1102tools-dev/federal-contracting-mcps.git
cd federal-contracting-mcps/servers/ecfr-mcp
pip install -e .
Настройка
Используйте приведённую ниже конфигурацию как описание сервера и разместите её в соответствии с требованиями вашего MCP-клиента. Примеры практических запросов к этому источнику собраны в библиотеке промптов.
{
"mcpServers": {
"ecfr": {
"command": "uvx",
"args": ["--refresh-package", "ecfr-mcp", "--from", "ecfr-mcp", "ecfr-mcp"]
}
}
}
Флаг --refresh-package указывает uv при каждом запуске сервера клиентом проверять на PyPI наличие новой версии. Благодаря этому исправления устанавливаются автоматически. Без этого флага uv продолжит использовать версию, которую сохранил в кэше первой. Проверка добавляет небольшую задержку при запуске, поэтому, если платформа ограничивает время запуска MCP-сервера, увеличьте соответствующий тайм-аут.
Перезапустите клиент. Сервер ecfr появится со списком из 13 инструментов.
Примеры запросов
-
«Получи актуальный текст FAR 15.305 (оценка предложений) и кратко изложи его требования».
-
«Перечисли все разделы части 19 FAR (программы поддержки малого бизнеса)».
-
«Найди определение термина 'commercial product' в FAR 2.101».
-
«Какие разделы FAR были изменены за последние 6 месяцев?»
-
«Сравни FAR 52.212-4 в редакциях от 2024-01-01 и 2025-01-01 и покажи, что изменилось».
-
«Получи актуальный текст DFARS 252.227-7014 (права на коммерческое программное обеспечение)».
-
«Найди в разделе 48 Title CFR упоминания 'organizational conflict of interest' и покажи соответствующие разделы».
-
«Какому ведомству подчиняется глава 8 раздела 48 Title CFR? Получи структуру дополнения к FAR этого ведомства».
Особенности реализации
-
Обработка XML на стороне сервера. Конечная точка контента eCFR возвращает исходный XML. Сервер преобразует его в удобный для чтения текст — с заголовками, абзацами и ссылками на нормативные документы. Это существенно сокращает количество токенов контекста.
-
Автоматическое определение даты. eCFR публикует обновления с задержкой в 1–2 рабочих дня после выхода Federal Register. Если передать сегодняшнюю дату в методы работы с версиями, они вернут ошибку 404. Если дата не указана, все инструменты для работы с контентом автоматически выбирают самую позднюю доступную дату.
-
По умолчанию поиск выполняется по актуальному тексту. Если не указать
date=current, поиск eCFR охватывает все исторические версии, в том числе утратившие силу. По умолчанию параметрcurrent_only=Trueисключает повторяющиеся результаты. -
Ограничение конечной точки структуры. Конечная точка структуры eCFR не поддерживает фильтрацию по разделам и возвращает ошибку 400. Инструмент
list_sections_in_partобходит это ограничение: он получает структуру части и проходит по её иерархии. -
Оптимизация для FAR 2.101. Раздел с определениями содержит около 109 КБ XML. Инструмент
find_far_definitionобрабатывает весь раздел на стороне сервера и возвращает только подходящие абзацы с контекстом.
Краткая справка по разделу 48 CFR
| Глава | Регламент | Части |
|---|---|---|
| 1 | FAR | 1-99 |
| 2 | DFARS | 200-299 |
| 3 | HHSAR | 300-399 |
| 4 | AGAR | 400-499 |
| 5 | GSAR | 500-599 |
| 6 | DOSAR | 600-699 |
| 7 | AIDAR | 700-799 |
| 8 | VAAR | 800-899 |
| 9 | DEAR | 900-999 |
| 18 | NFS | 1800-1899 |
Источник данных
Все данные поступают с ecfr.gov — постоянно обновляемого онлайн-ресурса Code of Federal Regulations, который ведёт Office of the Federal Register. Данные обновляются ежедневно, обычно через 1–2 рабочих дня после публикации в Federal Register. Это не официальное юридическое издание; для официальных ссылок используйте ежегодное издание CFR от GPO.
Проект
federal-contracting-mcps — монорепозиторий с 9 MCP-серверами для работы с данными о федеральных закупках. Используйте эти источники вместе с библиотекой промптов MCP.
Лицензия
MIT