mcpField
S
senado-br-mcp

senado-br-mcp

本地服务
github.com/SidneyBissoli法律与政务018 周前更新

关于 senado-br-mcp

senado-br-mcp 以结构化方式提供巴西联邦参议院开放数据,包括议员、法案、投票、委员会和 e-Cidadania 公众参与信息。此仓库已弃用,项目已迁至 senado-br-mcp-cloudflare,npm 包现发布新版服务。

主要功能

  1. 01查询参议员及其任期
  2. 02搜索法案和审议历程
  3. 03获取投票与委员会信息
  4. 04读取 e-Cidadania 咨询和提案
  5. 05返回含来源元数据的结构化 JSON

适用场景

  1. 01查询参议员资料或投票记录
  2. 02跟踪法案状态和立法进程
  3. 03查看公众咨询和公民提出的立法提案

MCP 相关

该项目向 MCP 客户端提供参议院开放数据工具。README 指向迁移后的服务,可通过托管端点或 npm/stdio 使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sidneybissoli-senado-br": {
"command": "npx",
"args": [
"-y",
"senado-br-mcp"
]
}
}
}
启动命令npx -y senado-br-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmsenado-br-mcp1.2.0

工具

33

收录的工具列表 · 更新于 3 周前

参数类型必填说明
ufstring否州缩写(例如:SP、RJ、MG)
partidostring否政党简称(例如:PT、PL、MDB)
emExercicioboolean否仅筛选在任参议员
legislaturainteger否立法届次编号(例如: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 服务

npm version npm downloads node MCP Registry GitHub stars GitHub Sponsors License: MIT

🇧🇷 阅读葡萄牙语版

用于访问巴西联邦参议院开放数据的 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/npmnpx 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 /mcpMCP 协议端点
速率限制

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
  1. Fork 此仓库
  2. 将 Railway 连接到你的 GitHub
  3. 部署(自动从 railway.json 检测配置)
  4. 设置环境变量:
    • MONTHLY_REQUEST_LIMIT(默认值:10000)
    • ALERT_WEBHOOK_URL(可选,用于通知)
环境变量
变量描述默认值
PORT服务器端口3000
MONTHLY_REQUEST_LIMIT每月请求限制10000
ALERT_WEBHOOK_URL用于发送警报的 Webhook-
LOG_LEVEL日志级别info

数据来源

官方 API
e-Cidadania(网页抓取)
  • 网站:e-Cidadania
  • 内容:公众咨询、立法提案、互动活动
  • 方式:抓取 HTML,并进行速率限制(1 req/sec)和缓存(15min-24h)
  • 回退:如果 e-Cidadania 不可用,API 工具仍可继续工作

法案类型(Tipos de Matéria)

代码名称描述
PECProposta de Emenda à Constituição宪法修正案
PLProjeto de Lei普通法案
PLPProjeto de Lei Complementar补充法案
MPVMedida Provisória临时措施
PDLProjeto de Decreto Legislativo立法法令法案
PRSProjeto de Resolução do Senado参议院决议法案
PLCProjeto 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 个用于访问参议院数据的工具
  • 包含参议员、法案、投票、委员会、议程和查询工具

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。