开放话语MCP
模型上下文协议(MCP)服务器,用于访问来自govinfo.gov和congress.gov API的批量数据,具有全面的人工智能代码审查和数据摄取功能。
概述
该项目提供MCP服务器,使人工智能助理能够从以下来源访问全面的立法和政府数据:
- 政府信息API:国会文件、《联邦公报》、《联邦法规》等
- 国会.gov API:法案、成员、委员会、提名和立法活动
- 批量数据摄入:自动下载和处理govinfo.gov批量数据
- AI代码审查:多智能体人工智能团队,用于全面的代码分析
特性
GovInfo服务器工具
govinfo_list_collections-列出自特定日期以来更新的集合govinfo_get_package-获取详细的包裹信息govinfo_list_granules-列出包装内的颗粒govinfo_get_granule-获取详细的颗粒信息govinfo_download_content-下载内容(PDF、XML、HTML)
Congress.gov服务器工具
congress_get_bill-获取详细的账单信息congress_search_bills-通过文本查询搜索账单congress_get_bill_actions-为法案采取立法行动congress_get_bill_text-获取法案全文congress_search_members-搜寻国会议员congress_get_member-获取详细的会员信息congress_get_committee_meetings-召开委员会会议congress_get_nominations-获得总统提名
批量数据摄入
- 全面下载:自动接收所有govinfo.gov批量数据
- 国会报道:第113届至第123届国会(2013-2024)
- 文档类型:票据、法案、法案、法令、法国、信用证
- 并行处理:50名工人用于高性能下载
- XML验证:基于模式的数据完整性验证
- 跳过现有:可恢复下载,智能跳过文件
- 进度监控:实时进度跟踪和全面报告
AI代码审查套件
- 安全审查:漏洞评估和安全分析
- 绩效评估:瓶颈识别和优化建议
- 质量审核:代码风格、测试、架构和可访问性分析
- 文档审查:文件质量和完整性评估
- 多Agent:针对不同审查方面的专业人工智能代理
- 可观测性:用于监控和跟踪的Langfuse集成
安装
先决条件
- Node.js和npm (适用于MCP服务器)
- Python 3.10+ (用于设置脚本)
- PostgreSQL (用于数据库存储)
- Bitwarden命令行界面 (用于API密钥管理)
快速开始
# Clone the repository
git clone https://github.com/cbwinslow/opendiscourse_mcp.git
cd opendiscourse_mcp
# Install Node.js dependencies
npm install
# Install Bitwarden CLI
npm install -g @bitwarden/cli
# Set up database
./scripts/setup_database.sh
# Set up API keys with Bitwarden
python3 scripts/setup_bitwarden.py
# Start MCP server
npm start详细设置
1.Python环境
# Verify Python version (requires 3.10+)
python --version
# Using uv (recommended)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or using pip
python3.10 -m venv venv
source venv/bin/activate
pip install -r requirements.txt2.数据库设置
# Automated database setup
./scripts/setup_database.sh
# Manual setup (if script fails)
# Start PostgreSQL
brew services start postgresql # macOS
sudo systemctl start postgresql # Linux
# Create database and user
sudo -u postgres createdb opendiscourse
sudo -u postgres createuser -s opendiscourse
sudo -u postgres psql -c "ALTER USER opendiscourse PASSWORD 'opendiscourse123';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE opendiscourse TO opendiscourse;"3.Bitwarden设置
# Install Bitwarden CLI
npm install -g @bitwarden/cli
# Test Bitwarden integration
python3 scripts/test_bitwarden.py
# Add API keys to Bitwarden:
# - GovInfo API Key
# - Congress.gov API Key4.API密钥配置
# Set environment variables (optional)
export BITWARDEN_EMAIL="your-email@example.com"
export BITWARDEN_PASSWORD="your-master-password"
# Run automated setup
python3 scripts/setup_bitwarden.py5.MCP服务器部署
# Install dependencies
uv sync
# Start server
npm start
# Development mode
npm run devBitwarden项目设置:
在您的Bitwarden保管库中创建以下项目:
- GovInfo API密钥
- 姓名: GovInfo API Key - 自定义字段: api_key 使用您的GovInfo API密钥
- Congress.gov API密钥
- 姓名: Congress.gov API Key - 自定义字段: api_key 使用您的国会.gov API密钥
配置
必需的API密钥
- GovInfo API密钥
- 注册地址: - 增添 .env: GOVINFO_API_KEY=your_key_here
- Congress.gov API密钥
- 注册地址: - 增添 .env: CONGRESS_API_KEY=your_key_here
可选配置
MCP_LOG_LEVEL-日志记录级别(默认值:info)GOVINFO_RATE_LIMIT-GovInfo速率限制请求/小时(默认值:1000)CONGRESS_RATE_LIMIT-Congress.gov速率限制请求/小时(默认值:4000)
用法
批量数据摄入
该项目包括govinfo.gov的全面批量数据接收功能:
# Run comprehensive ingestion for all available data
python3 scripts/run_comprehensive_ingestion.py
# Run specific congress and document type
python3 -m scripts.ingest_all_govinfo --congress 118 --doc-types BILLS --workers 50
# Run with validation enabled
python3 -m scripts.ingest_all_govinfo --congress 118 --doc-types STATUTE --validate-xml --workers 50摄入特征:
- 国会报道:第113届至第123届大会(2013-2024)
- 文档类型:票据、法案、法案、法令、法国、信用证
- 并行下载:50名兼职员工
- XML验证:使用XSD文件进行基于架构的验证
- 恢复能力:跳过现有功能
- 进度跟踪:实时监控和JSON结果
配置:
# Use enums for type-safe configuration
from scripts.ingestion.enums import DocumentType, CongressSession
# Available document types
DocumentType.BILLS.value # "BILLS"
DocumentType.STATUTE.value # "STATUTE"
# Available congress sessions
CongressSession.get_available_sessions() # [113, 114, ..., 123]AI代码审查
该项目包括专门的人工智能团队,负责全面的代码审查:
# Run all review types (via GitHub Actions)
# Or manually trigger specific reviews:
# Security review
python3 scripts/security_review_crew.py
# Performance review
python3 scripts/performance_review_crew.py
# Quality review (style, testing, architecture, dependencies, accessibility)
python3 scripts/quality_review_crew.py
# Documentation review
python3 scripts/documentation_review_crew.py
# Original comprehensive review
python3 scripts/code_review_crew.pyAI评论功能:
- 证券分析:漏洞评估、安全最佳做法
- 性能优化:瓶颈识别,提高效率
- 质量评估:代码风格、测试覆盖率、架构审查
- 文档审查:API文档、自述文件、内联注释
- 多Agent:针对不同审查方面的专业人工智能代理
- 可观测性:用于监控和跟踪的Langfuse集成
GitHub操作集成:
- 自动PR评论
- 可配置的审查类型(安全、性能、质量、文档)
- Python 3.10执行
- 综合报告
作为MCP服务器
# Start MCP server
npm start
# Or in development mode with auto-restart
npm run dev与Claude Desktop集成
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"opendiscourse": {
"command": "node",
"args": ["/path/to/opendiscourse_mcp/src/index.js"],
"env": {
"GOVINFO_API_KEY": "your_govinfo_key",
"CONGRESS_API_KEY": "your_congress_key"
}
}
}
}API密钥管理
该项目包括通过Bitwarden自动管理API密钥:
# Test Bitwarden integration
python3 scripts/test_bitwarden.py
# Set up API keys from Bitwarden
python3 scripts/setup_bitwarden.py特征:
- 🔍 从Bitwarden保险库自动发现API密钥
- 🔓 安全保险库解锁
- 📝 环境文件更新
- 🗄️ 加密数据库存储
- 🔐 控制台输出中的安全屏蔽
与Claude Desktop集成
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"opendiscourse": {
"command": "node",
"args": ["/path/to/opendiscourse_mcp/src/index.js"],
"env": {
"GOVINFO_API_KEY": "your_govinfo_key",
"CONGRESS_API_KEY": "your_congress_key"
}
}
}
}API覆盖范围
政府资讯集
- 法案 -国会法案(所有版本)
- CREC -国会记录
- 法国 -《联邦公报》
- 联邦法规(Code of Federal Regulations) -联邦法规
- USCOURTS -美国法院意见
- CHRG -委员会报告和印刷品
Congress.gov数据
- 法案和修正案(第93届国会至今)
- 会员信息和投票记录
- 委员会数据和会议
- 总统提名
- 唱名表决
- 立法案文和摘要
速率限制
- 政府信息API:遵循api.data.gov限制(可配置,默认1000/小时)
- 国会.gov API:5000个请求/小时(可配置,默认4000个/小时)
两个客户端都实现了请求之间延迟的自动速率限制。
发展
# Run tests
npm test
# Lint code
npm run lint
# Full build process
npm run build文档
综合文档可在 /docs 文件夹:
docs/README.md-完整的参考指南docs/govinfo-api-summary.md-GovInfo API快速参考docs/congress-api-summary.md-Congress.gov API快速参考- 已下载API官方存储库和示例
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 跑
npm run build - 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
支持
- 问题:
- 政府信息API:
- 国会.gov API:
