Documentation navigation
Government Context MCP
gc_analyze_comments
Analyze a rulemaking's comments
Structured corpus analytics for one rulemaking — the verifiable aggregates behind 'summarize the comments': stance_by_type (who supports/opposes, by commenter type), timeline (weekly stance volumes), campaigns (form-letter campaigns vs organic split), issues (what commenters argue about), position_map (organizations × issues with evidence quotes). Request sections individually. You narrate; this supplies the numbers. Paid feature — free plans get the overview aggregates.
Input
| Parameter | Type | Description |
|---|---|---|
| rulemaking_idRequired | string | — |
| sections | stance_by_type | timeline | campaigns | issues | position_map[] | Default ["stance_by_type"]. |
| exclude_campaigns | boolean | Exclude form-letter campaign comments from aggregates. |
Annotations
{
"readOnlyHint": true,
"idempotentHint": true,
"openWorldHint": false
}Examples
Corpus analytics sections
Requested sections return the same aggregates the web charts render; the calling agent narrates the numbers.
{
"rulemaking_id": "EPA-D-1-0001",
"sections": [
"stance_by_type",
"campaigns"
]
}{
"rulemaking": "EPA-D-1-0001",
"sections": {
"stance_by_type": {
"analyzed": 2,
"matrix": [
{
"commenter_type": "individual",
"support": 1,
"oppose": 0,
"other": 0
},
{
"commenter_type": "trade_association",
"support": 0,
"oppose": 1,
"other": 0
}
],
"net_support": 0
},
"campaigns": {
"campaigns": [
{
"id": "12",
"name": "Form letter A",
"sponsor_org": null,
"sponsor_known": false,
"stance": "oppose",
"comment_count": 1,
"detection_method": "hash"
}
],
"organic_count": 0,
"campaign_comment_count": 1,
"unknown_count": 2
}
}
}