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

ParameterTypeDescription
rulemaking_idRequiredstring
sectionsstance_by_type | timeline | campaigns | issues | position_map[]Default ["stance_by_type"].
exclude_campaignsbooleanExclude 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
    }
  }
}