Token导航 LogoToken导航TokenDH.com
Fed Doc MCP logo
搜索检索stdio官方级别未说明来源级核验

Fed Doc MCP

MCP Server

FedDocMCP是一个基于模型上下文协议(MCP)的服务器,提供对美国国会法案、联邦注册法规和GovInfo.gov文档集合的实时搜索、检索和分析功能。

工具数

10

提示词数

0

GitHub Stars

0

资源数

0
PythonAI扩展搜索

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

n8daniels

提供方

n8daniels

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv venv

详细介绍

FedDocMCP

![Tests](https://github.com/n8daniels/FedDocMCP/actions) ![Python 3.10+](https://www.python.org/downloads/) ![Code style: black](https://github.com/psf/black) ![License: MIT](https://opensource.org/licenses/MIT) ![MCP](https://modelcontextprotocol.io/)

一种模型上下文协议(MCP)服务器,为最终用户提供从Congress.gov、《联邦公报》法规和GovInfo.gov文档集合直接访问国会法案数据的权限。

概述

FedDocMCP使最终用户能够通过任何兼容MCP的客户端实时搜索、检索和分析美国国会法案、《联邦公报》规定、法院意见、国会听证会和39+其他政府文件集。该服务器基于模型上下文协议构建,提供了一个标准化的接口,用于访问官方政府API,包括Congress.gov、FederalRegister.gov和GovInfo.gov。

什么是MCP?

模型上下文协议(MCP)是一个开放标准,使AI应用程序能够安全地连接到外部数据源和工具。MCP服务器展示了AI助手可以用来扩展其训练数据之外的功能的能力。

关键概念:

  • 服务器:提供工具和资源(本项目)
  • 客户端:使用服务器的MCP兼容应用程序(例如,桌面客户端、IDE、AI助手)
  • 运输:通信层(stdio供本地使用)
  • 工具:客户端可以调用的功能(搜索账单、获取账单文本等)

了解更多: 模型上下文协议规范

特性

国会法案(Congress.gov)

  • 搜索账单:按关键字、国会会议或法案类型查找立法
  • 获取账单文本:检索多种格式的账单全文
  • 跟踪账单状态:跟踪法案在立法过程中的进展

《联邦公报》条例

  • 搜索规则:查找规则、拟议规则、通知和总统文件
  • 获取法规详细信息:检索带有CFR参考的《联邦公报》文件的全部详细信息
  • 公众检查:已提交但尚未公布的访问文件

政府文件(GovInfo.gov)

  • 列出收藏:浏览39多个可用文档集
  • 搜索收藏:在国会记录、听证会、法院意见、预算文件等中查找文件
  • 获取包裹详细信息:检索任何政府文件的完整元数据和下载链接

核心能力

  • 实时数据:直接访问官方政府API
  • 隐私第一:没有数据存储,所有查询都是实时发生的
  • 类型安全:使用Pydantic构建,用于强大的数据验证
  • 日期筛选:按会计年度或自定义日期范围筛选
  • 自由:所有使用的API都是免费的(Congress.gov和GovInfo需要免费的API密钥,Federal Register不需要)

快速开始

先决条件

安装

  1. 克隆仓库
   git clone https://github.com/n8daniels/FedDocMCP.git
   cd FedDocMCP
  1. 设置Python环境
   python -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
   pip install -r requirements.txt
  1. 配置API密钥
   cp .env.example .env
   # Edit .env and add your Congress.gov API key
  1. 测试服务器
   python src/server.py

MCP客户端配置

要将FedDocMCP与MCP兼容的客户端一起使用,请将其添加到客户端的配置文件中。

配置示例 (根据您的特定MCP客户进行调整):

{
  "mcpServers": {
    "feddocmcp": {
      "command": "python",
      "args": ["/absolute/path/to/FedDocMCP/src/server.py"],
      "env": {
        "CONGRESS_API_KEY": "your-api-key-here"
      }
    }
  }
}

笔记:

  • 替换 /absolute/path/to/FedDocMCP/src/server.py 使用系统上的实际路径
  • 将您的Congress.gov API密钥添加到 CONGRESS_API_KEY 领域
  • 更新配置后重新启动MCP客户端
  • examples/mcp_client_config.json 供参考

可用工具

1.搜索_账单

按关键字、国会会议或类型搜索国会法案。

参数:

  • query (必填):搜索关键字或短语
  • congress:国会编号(例如,118代表第118届国会)
  • bill_type:账单类型(hr、s、hjres、sjres等)
  • limit:最大结果(1-100,默认值:20)

例子:

Search for bills about "climate change" in the 118th Congress

2.get_bill_text

检索特定账单的全文。

参数:

  • congress (必填):国会编号
  • bill_type (必填):票据类型
  • bill_number (必填):账单编号
  • format:文本格式(json、xml、pdf)

例子:

Get the text of H.R. 1 from the 118th Congress

3.获取账单状态

跟踪法案在立法过程中的进展。

参数:

  • congress (必填):国会编号
  • bill_type (必填):票据类型
  • bill_number (必填):账单编号

例子:

What's the status of S. 234 from the 118th Congress?

4.搜索规则

在《联邦公报》上搜索法规、规则、通知和总统文件。

参数:

  • query (必填):搜索关键字或短语
  • document_type:文档类型(规则、规则、通知、预文档)
  • agency:按机构筛选(例如“EPA”、“FDA”)
  • limit:最大结果(1-100,默认值:20)
  • fiscal_year:按会计年度筛选
  • start_date / end_date:按自定义日期范围筛选

例子:

Search for EPA environmental regulations from fiscal year 2024

5.获取_法规_详细信息

检索特定《联邦公报》文件的完整详细信息。

参数:

  • document_number (必填):联邦公报文件编号(例如“2024-12345”)

例子:

Get details for Federal Register document 2024-12345

6.获取公共检查文件

已向《联邦公报》提交但尚未公布的访问文件。

参数:

  • agency:按机构筛选(可选)
  • special_filing:仅显示特殊文件(可选)

例子:

Show me EPA documents on public inspection

7.列表_绵羊_收藏

列出所有可用的GovInfo.gov文档集合。

参数:

  • 无需

例子:

What collections are available on GovInfo?
Show me all government document types

退货:

  • 39多个集合的列表,包括国会法案、联邦公报、CFR、法院意见、国会记录、预算文件等

8.搜索_收藏

按日期范围搜索特定GovInfo集合中的文档。

参数:

  • collection_code (必填):收款代码(例如“BILLS”、“FR”、“CHRG”、“CREC”)
  • start_date:ISO格式的开始日期(YYYY-MM-DD)
  • end_date:ISO格式的结束日期(YYYY-MM-DD)
  • limit:最大结果(1-100,默认值:20)

例子:

Search Congressional Record for documents from January 2024
Find all Congressional hearings from last month
Get Public Laws from fiscal year 2024

9.获取_绵羊_包装

获取特定GovInfo文档包的详细信息。

参数:

  • package_id (必填):包装标识符(例如“BILLS-118hr1”、“FR-2024-12345”)

例子:

Get details for package BILLS-118hr1
Show me Congressional hearing CHRG-118shrg52367

10.获取服务器健康

监控服务器性能和运行状况指标。

参数:

  • 无需

例子:

Check server health
Show me performance metrics

退货:

  • 总体健康状况(✅ 健康,⚠️ 警告,或❌ 错误)
  • 缓存命中率和统计数据
  • 平均响应时间
  • API的API调用统计
  • 工具使用明细
  • 错误计数和错误率

API密钥设置

Congress.gov API(票据工具要求)

  1. 访问 国会.gov API注册
  2. 用你的电子邮件填写表格
  3. 查看您的电子邮件以获取API密钥
  4. 将其添加到您的 .env 文件或MCP客户端配置

费率限制:

  • 每个API密钥每小时5000个请求
  • FedDocMCP包括自动速率限制和重试逻辑

联邦公报API(无需密钥)

《联邦公报》的工具确实 需要API密钥-它们开箱即用!

GovInfo.gov API(GovInfo工具可选)

  1. 访问 api.data.gov注册
  2. 输入您的电子邮件地址
  3. 查看您的电子邮件以获取API密钥
  4. 添加 GOVINFO_API_KEY 你的 .env 文件或MCP客户端配置

费率限制:

  • 每小时1000个请求(默认免费级别)
  • FedDocMCP包括自动速率限制和重试逻辑

注: 没有API密钥,GovInfo工具将无法工作。如果您不需要访问国会记录、听证会、法院意见或其他GovInfo集合,可以跳过此步骤。

docs/API_KEYS.md文件 详细说明。

使用示例

示例1:研究最新立法

“搜索第118届国会提出的关于人工智能的法案”

示例2:阅读具体法案

“给我看第118届国会H.R.1的全文”

示例3:跟踪进度

“《基础设施投资和就业法案》的现状如何?”

示例4:按会计年度搜索

“查找2024财年引入的所有气候变化法案”

联邦财政年度为10月1日至9月30日。2024财年=2023年10月1日至2024年9月30日。

示例5:使用日期范围搜索

“搜索2023年1月1日至2023年6月30日期间推出的基础设施法案”

示例6:比较账单

“搜索所有关于学生贷款的账单,并总结它们的主要区别”

示例7:搜索联邦法规

“查找2024财年美国环保署关于清洁水的规定”

示例8:跟踪拟议规则

“向我展示美国食品药品监督管理局提出的规则”

示例9:监督公众检查

“交通部目前正在公开检查哪些文件?”

发展

docs/DEVELOPMENT.md 用于开发设置和指南。

运行测试

# Install dev dependencies
pip install -r requirements-dev.txt

# Run tests
pytest

# Run with coverage
pytest --cov=src --cov-report=html

代码质量

# Format code
black src/ tests/

# Lint
flake8 src/ tests/

# Type check
mypy src/

日志记录配置

FedDocMCP包括用于调试和监控的结构化JSON日志。

环境变量:

  • LOG_LEVEL:设置日志详细程度(调试、信息、警告、错误、关键)-默认值:信息
  • LOG_FORMAT:选择输出格式(json、text)-默认:json
  • LOG_FILE:日志输出的可选文件路径-默认值:仅stderr

示例:

# Debug mode with text formatting
LOG_LEVEL=DEBUG LOG_FORMAT=text python src/server.py

# Production logging to file
LOG_LEVEL=INFO LOG_FILE=/var/log/feddocmcp.log python src/server.py

JSON日志格式:

{
  "timestamp": "2024-01-15T10:30:45.123456Z",
  "level": "INFO",
  "logger": "src.tools.bills",
  "message": "Tool call completed: search_bills",
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "tool": "search_bills",
  "duration_ms": 234.5,
  "status": "success",
  "cached": "miss",
  "source": {
    "file": "/path/to/monitoring.py",
    "line": 245,
    "function": "wrapper"
  }
}

特征:

  • 请求ID跟踪:每个工具调用都会获得一个唯一的请求ID,用于跨日志进行关联
  • 结构化字段:一致的JSON格式,便于解析和分析
  • 性能指标:所有工具调用的自动持续时间跟踪
  • 错误上下文:带有堆栈跟踪的详细异常信息
  • 自定义上下文:使用 extra 参数

src/utils/logging.py 了解实现细节和高级用法。

项目结构

FedDocMCP/
├── src/
│   ├── __init__.py
│   ├── server.py                    # Main MCP server
│   ├── config.py                    # Configuration management
│   ├── monitoring.py                # Performance monitoring
│   ├── tools/                       # Tool implementations
│   │   ├── __init__.py
│   │   ├── bills.py                 # Congressional bill tools
│   │   ├── federal_register.py     # Federal Register tools
│   │   └── system.py                # System health tools
│   ├── clients/                     # API clients
│   │   ├── __init__.py
│   │   ├── congress_api.py          # Congress.gov API client
│   │   └── federal_register_api.py  # Federal Register API client
│   └── utils/                       # Shared utilities
│       ├── __init__.py
│       ├── cache.py                 # Enhanced cache with metadata
│       ├── dates.py                 # Date parsing and validation
│       ├── logging.py               # Structured JSON logging
│       └── validation.py            # Input validation with hints
├── tests/                           # Test suite (216 tests, 82% coverage)
├── docs/                            # Documentation
├── examples/                        # Usage examples
├── requirements.txt                 # Dependencies
└── pyproject.toml                  # Project metadata

建筑

FedDocMCP是一个无状态MCP服务器,它:

  1. 接收请求 通过stdio传输从MCP客户端
  2. 验证输入 使用Pydantic模式
  3. 致电国会.gov API 具有适当的身份验证和速率限制
  4. 格式化响应 结构化JSON
  5. 返回结果 给客户

没有数据存储在本地-所有信息都直接来自Congress.gov。

docs/ARCHITECTURE.md 了解技术细节。

贡献

欢迎投稿!请阅读 贡献.md 作为指导方针。

贡献方式

  • 报告错误和问题
  • 建议新功能或工具
  • 改进文档
  • 提交拉取请求
  • 分享您如何使用FedDocMCP

路线图

v0.1.0(当前)

  • \[x\] 基本账单搜索
  • \[x\] 票据文本检索
  • \[x\] 账单状态跟踪
  • \[x\] Congress.gov API集成

v0.2.0(计划中)

  • \[\]会员信息工具
  • \[\]委员会数据
  • \[\]投票记录
  • \[\]修正跟踪

v0.3.0(未来)

  • \[\]国会记录搜索
  • \[\]听力信息
  • \[\]条约数据
  • \[\]提名跟踪

v1.0.0(视觉)

  • \[\]国会.gov API全面覆盖
  • \[\]高级缓存
  • \[\]WebSocket支持
  • \[\]多源数据(GovInfo等)

使用FedDocMCP的项目

您在项目中使用FedDocMCP吗?让我们知道!在此处打开问题或PR以添加您的项目。

故障排除

docs/TROUBLESHOOTING.md 常见问题和解决方案。

常见问题:

  • API密钥不工作:验证是否已正确设置 .env 或配置
  • 服务器未启动:检查Python版本(3.10+)和依赖关系
  • MCP客户端中未显示任何工具:配置更改后重新启动MCP客户端
  • 速率限制错误:等待一个小时或使用其他API密钥

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

致谢

支持

安全

请向报告安全漏洞security@example.com(不要公开问题)。

安全.md 我们的安全政策。

______________________________________________________________________

由...制作❤️ 实现透明、无障碍的民主

目录标签

目录标签

PythonAI扩展搜索政府数据本地部署法案查询法规检索实时数据

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

10

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP