关于 senado-br-mcp
senado-br-mcp 以结构化方式提供巴西联邦参议院开放数据,包括议员、法案、投票、委员会和 e-Cidadania 公众参与信息。此仓库已弃用,项目已迁至 senado-br-mcp-cloudflare,npm 包现发布新版服务。
主要功能
- 01查询参议员及其任期
- 02搜索法案和审议历程
- 03获取投票与委员会信息
- 04读取 e-Cidadania 咨询和提案
- 05返回含来源元数据的结构化 JSON
适用场景
- 01查询参议员资料或投票记录
- 02跟踪法案状态和立法进程
- 03查看公众咨询和公民提出的立法提案
MCP 相关
该项目向 MCP 客户端提供参议院开放数据工具。README 指向迁移后的服务,可通过托管端点或 npm/stdio 使用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
33收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| uf | string | 否 | 州缩写(例如:SP、RJ、MG) |
| partido | string | 否 | 政党简称(例如:PT、PL、MDB) |
| emExercicio | boolean | 否 | 仅筛选在任参议员 |
| legislatura | integer | 否 | 立法届次编号(例如:57,对应 2023-2027) |
详细介绍
⚠️ 已弃用 — 此代码仓库已迁移
此服务已不再在此处维护。 巴西参议院 MCP 服务现已迁至 senado-br-mcp-cloudflare,提供 66 个工具 和 1 级来源追溯,既可通过托管服务(
https://senado.sidneybissoli.com/mcp,无需设置), 也可通过 npm/stdio(npx senado-br-mcp,v3.x)使用。npm 包senado-br-mcp现在发布的是该 服务(v3.2.1+);此处的< 3.0.0版本已弃用。请迁移 — 此代码仓库已归档。
巴西参议院 MCP 服务
🇧🇷 阅读葡萄牙语版
用于访问巴西联邦参议院开放数据的 MCP 服务(议员、法案、投票、委员会)。
Servidor MCP (Model Context Protocol) que permite acesso estruturado aos dados abertos do Senado Federal do Brasil, democratizando o acesso a informações legislativas através de conversas com IA.
实际使用示例
用通俗的葡萄牙语向助手提问:
- “列出目前在任的圣保罗州参议员。” →
senado_listar_senadores - “展示 PEC 45/2019 的审议进程。” →
senado_buscar_materias+senado_obter_materia - “e-Cidadania 上最受支持且仍开放的立法提案有哪些?” →
senado_ecidadania_listar_ideias
答案直接来自参议院官方开放数据 API — 数据真实且可追溯来源,并非根据训练数据猜测的数字。
功能
- 33 个工具,用于访问参议院数据
- 来自官方 API 的实时数据
- e-Cidadania 集成:通过网页抓取获取公民参与数据
- 结构化 JSON 响应
- 提供可执行建议的错误处理
- 使用 TypeScript,并提供完整的类型安全保障
- 两种访问模式: stdio(npm)和 HTTP 远程服务
两种使用方式
| 模式 | 安装 | 适用场景 |
|---|---|---|
| stdio/npm | npx senado-br-mcp | 技术用户、本地使用 |
| HTTP 远程服务 | 无需安装 | 非技术用户、云端访问 |
两种模式均可使用相同的 33 个工具。
选项 1:stdio/npm(本地)
安装
使用 npx(推荐):
npx senado-br-mcp
全局安装:
npm install -g senado-br-mcp
senado-br-mcp
从源代码安装:
git clone https://github.com/SidneyBissoli/senado-br-mcp.git
cd senado-br-mcp
npm install
npm run build
npm start
Claude Desktop 配置
添加到你的 claude_desktop_config.json:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"senado-br-mcp": {
"command": "npx",
"args": ["-y", "senado-br-mcp"]
}
}
}
选项 2:HTTP 远程服务(云端)
无需安装。通过 URL 直接连接。
Claude Desktop 配置
在 Claude Desktop 设置中,前往 “添加自定义连接器” 并输入:
- 名称: senado-br-mcp
- URL:
https://senado-br-mcp.up.railway.app/mcp
端点
| 端点 | 描述 |
|---|---|
GET / | 服务信息和文档 |
GET /health | 健康检查 |
GET /stats | 使用统计 |
POST /mcp | MCP 协议端点 |
速率限制
HTTP 服务设有每月请求上限,以满足免费套餐限制:
- 使用量达到 50%、80% 和 100% 时会发送提醒
- 达到上限后,请改用 npm 版本
- 每月 1 日重置上限
可用工具
参议员(Senadores)
| 工具 | 描述 |
|---|---|
senado_listar_senadores | 列出在任参议员或按立法届次列出。筛选条件:州(UF)、政党 |
senado_obter_senador | 获取参议员的详细信息(生平、任期、委员会) |
senado_buscar_senador_por_nome | 按姓名搜索参议员 |
senado_votacoes_senador | 列出参议员的投票情况。筛选条件:年份、日期范围 |
立法事项(Matérias)
| 工具 | 描述 |
|---|---|
senado_buscar_materias | 按类型(PEC、PL、PLP、MPV)、编号、年份、关键词、作者搜索法案 |
senado_obter_materia | 获取法案详情(摘要、作者、状态、报告员) |
senado_tramitacao_materia | 获取法案的程序历史 |
senado_textos_materia | 获取法案文本(原文、替代案、最终版)及下载 URL |
senado_votos_materia | 获取法案的投票结果 |
投票(Votações)
| 工具 | 描述 |
|---|---|
senado_listar_votacoes | 按年份列出全体会议投票。筛选条件:月份、日期范围 |
senado_obter_votacao | 获取投票详情,包括参议员的唱名投票 |
senado_votacoes_recentes | 获取近期投票(最近 N 天) |
委员会(Comissões)
| 工具 | 描述 |
|---|---|
senado_listar_comissoes | 列出委员会。筛选条件:类型(常设、临时、CPI)、是否活跃 |
senado_obter_comissao | 获取委员会详情(主席、副主席、宗旨) |
senado_membros_comissao | 列出委员会成员及其职务 |
senado_reunioes_comissao | 列出委员会会议及议程 |
日程
| 工具 | 描述 |
|---|---|
senado_agenda_plenario | 获取全体会议日程及投票议程 |
senado_agenda_comissoes | 获取委员会会议日程 |
查询/辅助工具(Auxiliares)
| 工具 | 描述 |
|---|---|
senado_legislatura_atual | 获取当前立法届次信息(届次编号、任期、日期) |
senado_tipos_materia | 列出有效的法案类型(PEC、PL、PLP、MPV 等) |
senado_partidos | 列出各政党及参议员人数 |
senado_ufs | 列出各州及参议员人数 |
e-Cidadania(公民参与)
用于访问 e-Cidadania 数据的工具——这是参议院的公民参与平台。
公众咨询(Consultas Públicas)
| 工具 | 描述 |
|---|---|
senado_ecidadania_listar_consultas | 列出公众咨询,其中包含公民对待审法案的投票 |
senado_ecidadania_obter_consulta | 获取咨询详情,包括投票、作者和评论 |
senado_ecidadania_consultas_polarizadas | 获取意见分化明显的咨询(投票比例约为 50/50),便于识别有争议的议题 |
senado_ecidadania_consultas_consensuais | 获取意见一致的咨询(某一方占比超过 85%),以识别广泛共识 |
立法提案(Ideias Legislativas)
| 工具 | 描述 |
|---|---|
senado_ecidadania_listar_ideias | 列出公民提出的立法提案 |
senado_ecidadania_obter_ideia | 获取提案详情,包括完整说明及其转化为法案的情况 |
senado_ecidadania_ideias_populares | 获取支持人数最多的立法提案 |
互动活动(Eventos Interativos)
| 工具 | 描述 |
|---|---|
senado_ecidadania_listar_eventos | 列出互动活动(听证会、任命确认、直播) |
senado_ecidadania_obter_evento | 获取活动详情,包括议程、嘉宾和视频链接 |
senado_ecidadania_eventos_populares | 获取公民评论和提问最多的活动 |
分析工具
| 工具 | 描述 |
|---|---|
senado_ecidadania_sugerir_tema_enquete | 借助 AI 分析参与度指标,为月度调查建议主题 |
注意: e-Cidadania 工具使用网页抓取,并设有速率限制和缓存。如果 e-Cidadania 网站暂时不可用,API 工具(参议员、法案、投票)仍可正常运行。
使用示例
列出圣保罗州的参议员
Use senado_listar_senadores with uf: "SP"
搜索 2024 年的宪法修正案
Use senado_buscar_materias with sigla: "PEC", ano: 2024
获取近期投票记录
Use senado_votacoes_recentes with dias: 7
按姓名查找参议员
Use senado_buscar_senador_por_nome with nome: "Randolfe"
获取 CCJ 委员会成员
Use senado_membros_comissao with sigla: "CCJ"
获取意见分歧较大的公众咨询
Use senado_ecidadania_consultas_polarizadas with minimoVotos: 5000
获取最受支持的公民提案
Use senado_ecidadania_ideias_populares with limite: 5
查找即将举行的互动活动
Use senado_ecidadania_listar_eventos with status: "agendado"
响应格式
所有工具均返回结构化的 JSON 响应:
成功响应
{
"success": true,
"data": { ... },
"metadata": {
"fonte": "Senado Federal - Dados Abertos",
"dataConsulta": "2024-01-15T10:30:00Z",
"endpoint": "/senador/lista/atual"
}
}
错误响应
{
"success": false,
"error": {
"code": "SENADOR_NAO_ENCONTRADO",
"message": "Senator with code 99999 was not found",
"suggestion": "Use senado_buscar_senador_por_nome to find the correct code"
}
}
开发
前置条件
- Node.js 18+
- npm
设置
npm install
构建
# Build stdio version (npm package)
npm run build
# Build HTTP server version
npm run build:server
# Build both
npm run build:all
开发模式
# stdio mode
npm run dev
# HTTP server mode
npm run dev:server
类型检查
npm run typecheck
使用 MCP Inspector 进行测试
npm run inspect
自托管 HTTP 服务器
你可以自行托管 HTTP 服务器实例。
本地
npm run build:server
npm run start:server
# Server runs on http://localhost:3000
Railway
- Fork 此仓库
- 将 Railway 连接到你的 GitHub
- 部署(自动从
railway.json检测配置) - 设置环境变量:
MONTHLY_REQUEST_LIMIT(默认值:10000)ALERT_WEBHOOK_URL(可选,用于通知)
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
PORT | 服务器端口 | 3000 |
MONTHLY_REQUEST_LIMIT | 每月请求限制 | 10000 |
ALERT_WEBHOOK_URL | 用于发送警报的 Webhook | - |
LOG_LEVEL | 日志级别 | info |
数据来源
官方 API
- API:巴西联邦参议院 - 开放数据
- 文档: https://legis.senado.leg.br/dadosabertos/docs/
- 格式:JSON
- 身份验证:无(公开数据)
e-Cidadania(网页抓取)
- 网站:e-Cidadania
- 内容:公众咨询、立法提案、互动活动
- 方式:抓取 HTML,并进行速率限制(1 req/sec)和缓存(15min-24h)
- 回退:如果 e-Cidadania 不可用,API 工具仍可继续工作
法案类型(Tipos de Matéria)
| 代码 | 名称 | 描述 |
|---|---|---|
| PEC | Proposta de Emenda à Constituição | 宪法修正案 |
| PL | Projeto de Lei | 普通法案 |
| PLP | Projeto de Lei Complementar | 补充法案 |
| MPV | Medida Provisória | 临时措施 |
| PDL | Projeto de Decreto Legislativo | 立法法令法案 |
| PRS | Projeto de Resolução do Senado | 参议院决议法案 |
| PLC | Projeto de Lei da Câmara | 众议院法案 |
许可证
MIT
作者
Sidney da Silva Pereira Bissoli
仓库
https://github.com/SidneyBissoli/senado-br-mcp
贡献
欢迎贡献!请随时提交 Pull Request。
更新日志
1.1.0
- 新增 e-Cidadania 集成(11 个新工具)
- 新增网页抓取基础设施,支持速率限制和缓存
- 新增公众咨询分析(意见分歧较大/意见一致)
- 新增立法提案跟踪
- 新增互动活动监控
- 新增调查主题建议工具
1.0.0
- 首次发布
- 提供 22 个用于访问参议院数据的工具
- 包含参议员、法案、投票、委员会、议程和查询工具
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。