# Senado Federal MCP

> Senado Federal MCP Server connects your AI agent directly to the Brazilian Senate Open Data API. It lets you track legislative proposals (matérias), check senator profiles, map committee compositions, and analyze the full history of votes and mandates in one go. Need to know where a bill stands? This is it.

## Overview
- **Category:** knowledge-management
- **Price:** Free
- **Tags:** legislative-data, transparency, public-policy, open-data, brazil

## Description

This server connects your AI agent right into the Brazilian Senate’s Open Data API. You're not just getting a data dump; you're getting the full mechanism for tracking how laws are made and who runs this place. It lets you deep-dive into any legislative topic, map out an entire senator's career, or track exactly where a bill stands through every committee and vote.

### Tracking Legislative Proposals

You wanna know what happened to a specific piece of legislation? You start by grabbing the core data for that proposal using `get_materia`. That gives you the basics. Then, when you need to see its full journey—every single step it took—you run `get_materia_movimentacoes`, and you get a complete timeline of actions taken on the bill. To keep tabs on what’s new in Congress, use `list_materias_atualizacoes` for a feed of recently moved or updated proposals; you'll always know where the action is.

The process also requires knowing the rules of the game. You can check out `list_materias_tipos`, which tells you the different kinds of legislation used in Brazil, like PL or PEC. If that bill needs a champion, you run `get_materia_relatorias` to pinpoint exactly which senators are assigned as rapporteurs for it. To see how lawmaking has worked over time, you can use `list_legislaturas` to get a directory of all historical and active legislative periods in Brazil; then you drill down further with `get_legislatura` or grab the details on the current term using `get_legislatura_atual`. You'll also find the core mechanisms for tracking votes. Start by calling `list_votacoes` for a summary list of recent votes, and if you need to know exactly who voted what, use `get_votacao` to get specific details about a single vote’s participation.

### Mapping Committee Work and Sessions

If you're focused on the committee level, there are dedicated tools for you. You can run `list_comissoes` to pull up a directory listing of every Senate committee that exists. Once you know which committee it is, you use `get_comissao` to retrieve detailed information about it. To see who's actually serving on that group, you call `get_comissao_composicao`. You can also check out the meeting schedule: run `list_agenda_reuniao` for upcoming or past committee meetings, and use `list_agenda_sessao` to get a list of all planned general committee or plenary sessions so you know when the Senate is convening.

### Deep-Dive Senator Profiles

This server lets you build out a full profile on any senator. You can start by getting comprehensive data for any single member using `get_senador`, which gives you their current status and party details. But that’s just scratching the surface. If you need to understand a politician's history, you run `get_senador_mandatos` to retrieve their full record of mandates—every term they've held. You can also track shifts in political allegiance by calling `get_senador_filiacoes`, which shows all their party affiliations and any changes over time. To see the whole sweep of a career, use `get_senador_cargos` to list every official position or role that senator has held throughout their life.

For current roster checks, you'll find two tools: run `list_senadores_atual` for an active list of all senators currently registered and in office. If a senator is out of commission, use `list_senadores_afastados` to get their names and details, letting you know who’s on leave or suspended from service.

## Tools

### get_comissao_composicao
Lists all current members who serve on a specified Senate committee.

### get_comissao
Retrieves detailed information for one specific committee by its ID.

### get_legislatura_atual
Provides key information about the current, ongoing legislative term in Brazil.

### get_legislatura
Pulls the full details for one specific historical or active legislative period.

### get_materia_movimentacoes
Lists the complete, step-by-step action history (movements) taken on a given bill.

### get_materia_relatorias
Identifies which senators are assigned to act as rapporteurs for a specific proposal.

### get_materia
Gets core data and a summary for one specific legislative proposal ID.

### get_senador_cargos
Lists all official positions (roles) held by a specific senator throughout their career.

### get_senador_filiacoes
Shows the political party affiliations and changes for a given senator ID.

### get_senador_mandatos
Retrieves the full history of mandates (terms) held by any parliamentarian.

### get_senador
Retrieves comprehensive profile data for any single senator, including their current status and party details.

### get_votacao
Gets specific details about a single vote, including who voted how.

### list_agenda_reuniao
Lists the upcoming or scheduled meetings for specific Senate committees.

### list_agenda_sessao
Provides a list of all planned general committee and plenary sessions.

### list_comissoes
Retrieves a directory listing of every Senate committee that exists.

### list_legislaturas
Lists all historical and active legislative periods in Brazil for context.

### list_materias_atualizacoes
Provides a feed of the most recently updated or moved legislative proposals.

### list_materias_tipos
Returns a list defining the different types of legislation (PL, PEC, etc.) used in Brazil.

### list_senadores_afastados
Lists names and details of senators who are currently on leave or suspended from service.

### list_senadores_atual
Provides a list of all senators who are currently registered and active in office.

### list_votacoes
Retrieves a summary listing of recent votes that occurred in the Senate.

## Prompt Examples

**Prompt:** 
```
List all senators currently in office.
```

**Response:** 
```
I've retrieved the list of senators currently in office. There are 81 active senators, including names like [Senator Name] from [Party/State]. Would you like details on a specific one?
```

**Prompt:** 
```
Get the details and summary of legislative proposal ID 150000.
```

**Response:** 
```
Fetching proposal 150000... This is a [Type] proposal regarding [Subject]. Its current status is [Status] and the summary states: '[Summary Text]'.
```

**Prompt:** 
```
Show the party affiliation history for senator ID 500.
```

**Response:** 
```
Analyzing affiliation history for senator 500... They are currently with [Current Party] and were previously affiliated with [Past Party 1] and [Past Party 2].
```

## Capabilities

### Map Proposal Lifecycle
You track a specific legislative proposal by getting its details and then querying its movement history across various committees.

### Profile Senators in Depth
You pull a senator's full record, including their party shifts (mandate analysis) and all the official positions they’ve held throughout their career.

### Identify Committee Roles
You pinpoint exactly which senators are assigned as rapporteurs for a bill or list every member currently serving on any Senate committee.

### Analyze Legislative Stages
You retrieve details about specific legislative periods (legislatures) to understand how lawmaking has evolved over time in Brazil.

### Check Meeting Schedules
You list upcoming or past committee meetings and general Senate sessions so you know when the action is happening.

## Use Cases

### A Journalist Verifying Claims
A journalist needs to check if Senator X really supported Policy Y five years ago. They run `get_senador` for Senator X, then follow up with `get_materia_movimentacoes` on the relevant bill ID. The agent confirms not only that they were present but also what specific actions (like voting yes/no) they took, solving the historical verification problem.

### A Legal Team Tracking Policy Changes
A legal team needs to know if a proposed change affects their industry. They start by calling `list_comissoes` to identify relevant committees (e.g., Finance). Then they use `get_materia_relatorias` on proposals within that committee, ensuring nothing critical slips through the cracks before it becomes law.

### Academic Researching Political Shifts
A researcher wants to model political power. They pull a list of all active senators using `list_senadores_atual`, and then use `get_senador_filiacoes` on each one to map out the current partisan breakdown, allowing for quantitative analysis across multiple cohorts.

### Monitoring Urgent Legislation
An activist needs real-time status on a controversial bill. They use `list_materias_atualizacoes` to find the latest ID, then run `get_materia_movimentacoes`. This gives them an instant, definitive update on whether the bill advanced or stalled in Congress.

## Benefits

- See a senator's entire political arc: Instead of just checking their current party, use `get_senador_mandatos` and `get_senador_filiacoes` together. You get the full story—when they switched parties and why.
- Know who has the power on a bill: Don't waste time guessing who leads a discussion. Use `get_materia_relatorias` to instantly see which senators are assigned as rapporteurs for any proposal ID.
- Follow the lawmaking timeline: By listing all legislatives via `list_legislaturas`, you can compare how laws were passed ten years ago versus today, giving deep context that surface data misses.
- Stay on schedule: Never miss a key hearing. Use `list_agenda_reuniao` and `list_agenda_sessao` to map out the entire week's procedural calendar for committees and plenary sessions.
- Process complex bills fast: Instead of checking one proposal, use `get_materia_movimentacoes`. You get a full log of every action taken—from committee assignment to final voting status.

## How It Works

The bottom line is: your agent connects the dots between bills, people, and legislative events using specific IDs.

1. Start by calling `list_materias_atualizacoes` to find a recent bill ID. Then, use that ID with `get_materia` to get the proposal's core details.
2. Next, if you need to know how it moved through Congress, call `get_materia_movimentacoes`. This gives you the timeline of actions and votes related to that specific bill.
3. Finally, use `get_senador` or `get_senador_filiacoes` on a key player's ID. You get their full profile and history—everything from their first mandate to today.

## Frequently Asked Questions

**How do I find out who is currently leading the discussion on a specific bill using get_materia_relatorias?**
You pass the proposal ID to `get_materia_relatorias`. This tool immediately returns the names and IDs of all senators assigned as rapporteurs for that exact piece of legislation.

**What is the difference between list_comissoes and get_comissao_composicao?**
`list_comissoes` gives you a directory of every committee name. You then use `get_comissao_composicao` with that specific committee's ID to pull the current roster of members.

**Can I track a bill’s history and its votes using get_materia_movimentacoes?**
Yes. `get_materia_movimentacoes` provides the timeline, and if a vote occurred during that movement, you can cross-reference it with data from `list_votacoes` for more details.

**How do I list all current senators in office? Use list_senadores_atual.**
Simply call `list_senadores_atual`. This gives you the most up-to-date directory of every senator who is actively registered and serving their mandate right now.

**What if I need to check a historical legislative period? Should I use get_legislatura?**
Use `get_legislatura` and pass the specific ID. This allows you to pull data relevant only to that time frame, isolating it from the current activity.

**What information does get_senador provide when I need detailed background data on one parliamentarian?**
It retrieves comprehensive metadata for a specific senator's ID. This includes their full profile, recorded party affiliations, and history of political roles held.

**If I want to know which proposals have changed recently, should I use list_materias_atualizacoes?**
Yes, this tool tracks the most recent updates across all legislative proposals. It provides a feed of IDs and change timestamps so you can focus your analysis on fresh data.

**Which function should I use to view the schedule for an upcoming committee meeting?**
You need to use list_agenda_reuniao. This function pulls specific details—date, time, and agenda items—for a particular committee, making it useful for logistics planning.

**Can I see the history of actions and movements for a specific legislative proposal?**
Yes! Use the `get_materia_movimentacoes` tool with the Proposal ID (CodigoMateria). It will return the full chronological list of actions taken on that bill.

**How do I find out which senators are currently on leave?**
Simply run the `list_senadores_afastados` tool. It retrieves the list of Brazilian senators who are currently not in active office due to leave.

**Is it possible to check the historical positions held by a senator?**
Yes, use the `get_senador_cargos` tool with the Senator ID. It provides a detailed list of current and past positions held within the Senate and other bodies.