{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "webmcp_version": "1.0.0",
  "mcp_version": "2024-11-05",
  "server_info": {
    "name": "Danbury Democratic Town Committee WebMCP Server",
    "title": "DDTC Web Model Context Protocol (WebMCP) Portal",
    "version": "1.0.0",
    "organization": "Danbury Democratic Town Committee (DDTC)",
    "description": "Browser-native and external AI agent interface for accessing DDTC civic resources, party bylaws, elected officials, candidates, ward committee rosters, voter guides, upcoming events, and submitting volunteer forms.",
    "homepage": "https://danburydemocrats.com",
    "manifest_url": "https://danburydemocrats.com/.well-known/webmcp.json"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "resources": {
      "subscribe": false,
      "listChanged": false
    },
    "prompts": {
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "extract_party_information",
      "type": "imperative",
      "kind": "function",
      "source": "api",
      "readOnly": true,
      "description": "Extract official Danbury Democratic Town Committee (DDTC) organizational details, core mission statement, values, headquarters address, contact channels, meeting schedules, campaign finance disclosures, and party bylaws summary.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "include_bylaws": {
            "type": "boolean",
            "description": "Whether to include full structural bylaws summary in the response.",
            "default": true
          },
          "include_officers": {
            "type": "boolean",
            "description": "Whether to include executive officers roster in the response.",
            "default": true
          }
        },
        "additionalProperties": false
      },
      "endpoints": {
        "static_json": "/api/webmcp/party-info.json",
        "browser_eval": "window.__DDTC_WEBMCP__.extractPartyInfo"
      }
    },
    {
      "name": "extract_elected_officials_and_candidates",
      "type": "imperative",
      "kind": "function",
      "source": "api",
      "readOnly": true,
      "description": "Extract comprehensive directory of Danbury elected Democrats and endorsed candidates across municipal executive offices, city council (wards 1-7 and at-large), zoning commission, state legislative delegation (Senate District 24, House Districts 110, 109, 138, 108), Board of Education candidates, and legislative track record summaries.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "office_type": {
            "type": "string",
            "enum": [
              "all",
              "city_executives",
              "city_council",
              "zoning_commission",
              "state_legislative",
              "municipal_candidates"
            ],
            "description": "Filter officials or candidates by branch or body.",
            "default": "all"
          },
          "search_query": {
            "type": "string",
            "description": "Optional keyword or politician name to filter (e.g., 'Bob Godfrey', 'Julie Kushner', 'Alves', 'Council')."
          }
        },
        "additionalProperties": false
      },
      "endpoints": {
        "static_json": "/api/webmcp/officials-candidates.json",
        "browser_eval": "window.__DDTC_WEBMCP__.extractElectedOfficialsAndCandidates"
      }
    },
    {
      "name": "extract_committee_members",
      "type": "imperative",
      "kind": "function",
      "source": "api",
      "readOnly": true,
      "description": "Extract Danbury Democratic Town Committee membership rosters across all seven municipal voting wards (Wards 1 through 7) and executive leadership officers, including contact details, addresses, and seat status in accordance with party bylaws (28 members total).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ward": {
            "type": "string",
            "enum": [
              "all",
              "ward_1",
              "ward_2",
              "ward_3",
              "ward_4",
              "ward_5",
              "ward_6",
              "ward_7"
            ],
            "description": "Specific ward to inspect, or 'all' for complete 7-ward roster.",
            "default": "all"
          },
          "name": {
            "type": "string",
            "description": "Optional member name filter."
          }
        },
        "additionalProperties": false
      },
      "endpoints": {
        "static_json": "/api/webmcp/committee.json",
        "browser_eval": "window.__DDTC_WEBMCP__.extractCommitteeMembers"
      }
    },
    {
      "name": "extract_voting_information",
      "type": "imperative",
      "kind": "function",
      "source": "api",
      "readOnly": true,
      "description": "Extract official Danbury and Connecticut voter empowerment information, voter registration qualifications, Democratic Registrar of Voters office contacts, absentee ballot instructions, early voting guidelines, and voter lookup portal links.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "topic": {
            "type": "string",
            "enum": [
              "all",
              "qualifications",
              "registrar",
              "absentee",
              "registration_options",
              "early_voting"
            ],
            "description": "Specific voting guidance topic to retrieve.",
            "default": "all"
          }
        },
        "additionalProperties": false
      },
      "endpoints": {
        "static_json": "/api/webmcp/voting.json",
        "browser_eval": "window.__DDTC_WEBMCP__.extractVotingInformation"
      }
    },
    {
      "name": "extract_event_information",
      "type": "imperative",
      "kind": "function",
      "source": "api",
      "readOnly": true,
      "description": "Extract calendar of Danbury Democratic Town Committee meetings, civic rallies, community solidarity marches, and the Annual Democratic Brunch with dates, times, locations, ticket information, and agenda details.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "upcoming_only": {
            "type": "boolean",
            "description": "Whether to return only upcoming events relative to current date.",
            "default": false
          },
          "event_type": {
            "type": "string",
            "enum": [
              "all",
              "regular_meeting",
              "brunch",
              "march",
              "rally",
              "community"
            ],
            "description": "Filter events by category.",
            "default": "all"
          }
        },
        "additionalProperties": false
      },
      "endpoints": {
        "static_json": "/api/webmcp/events.json",
        "browser_eval": "window.__DDTC_WEBMCP__.extractEvents"
      }
    },
    {
      "name": "submit_volunteer_form",
      "type": "declarative",
      "kind": "form",
      "source": "form",
      "readOnly": false,
      "description": "Submit a volunteer application or grassroots interest submission to the Danbury Democratic Town Committee. In browser contexts with DOM access, this action directly fills and submits the volunteer form on /contact; in headless or API contexts, it validates and returns a structured registration confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string",
            "description": "Full legal name of the volunteer.",
            "minLength": 2
          },
          "email": {
            "type": "string",
            "description": "Contact email address of the volunteer.",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "description": "Optional phone number for campaign organizers to call or text."
          },
          "ward": {
            "type": "string",
            "enum": [
              "Ward 1",
              "Ward 2",
              "Ward 3",
              "Ward 4",
              "Ward 5",
              "Ward 6",
              "Ward 7",
              "Unknown",
              ""
            ],
            "description": "Danbury neighborhood ward if known.",
            "default": "Unknown"
          },
          "interests": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Canvassing & Door Knocking",
                "Phone Banking & Texting Voters",
                "Lawn Sign Delivery & Placement",
                "Host a Neighborhood House Party / Event",
                "Election Day Poll Watcher / Driver",
                "Digital Organizing & Social Media"
              ]
            },
            "description": "List of campaign activities the volunteer wishes to support."
          },
          "message": {
            "type": "string",
            "description": "Optional message, notes on skills, or questions for the field team."
          }
        },
        "required": [
          "fullName",
          "email"
        ],
        "additionalProperties": false
      },
      "endpoints": {
        "browser_eval": "window.__DDTC_WEBMCP__.submitVolunteerForm",
        "declarative_form": "form[toolname='submit_volunteer_form']"
      }
    },
    {
      "name": "submit_contact_inquiry",
      "type": "imperative",
      "kind": "function",
      "source": "api",
      "readOnly": false,
      "description": "Submit an official contact message or inquiry directly to DDTC headquarters.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string",
            "description": "Name of the person inquiring.",
            "minLength": 2
          },
          "email": {
            "type": "string",
            "description": "Return email address.",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "description": "Optional contact telephone number."
          },
          "subject": {
            "type": "string",
            "description": "Subject of the message."
          },
          "message": {
            "type": "string",
            "description": "Full text of the inquiry.",
            "minLength": 5
          }
        },
        "required": [
          "fullName",
          "email",
          "message"
        ],
        "additionalProperties": false
      },
      "endpoints": {
        "browser_eval": "window.__DDTC_WEBMCP__.submitContactInquiry"
      }
    }
  ],
  "resources": [
    {
      "uri": "civic://ddtc/data",
      "name": "Danbury Democratic Town Committee Master Civic Dataset",
      "description": "Comprehensive civic structured JSON dataset for Danbury Democrats, including elected officials, candidates, ward rosters, bylaws, and voting guides.",
      "mimeType": "application/json"
    },
    {
      "uri": "civic://ddtc/bylaws",
      "name": "DDTC Party Governance & Bylaws Summary",
      "description": "Danbury Democratic Town Committee bylaws, apportionment rules, officer roles, and vacancy provisions.",
      "mimeType": "application/json"
    },
    {
      "uri": "civic://ddtc/voting",
      "name": "Danbury & Connecticut Voter Empowerment Guide",
      "description": "Voter registration qualifications, registrar contacts, absentee ballot guides, and early voting resources.",
      "mimeType": "application/json"
    }
  ],
  "prompts": [
    {
      "name": "ddtc_civic_advisor",
      "description": "AI civic assistant prompt to answer voter questions, explain party platforms, and connect Danbury residents with their ward representatives.",
      "arguments": [
        {
          "name": "userQuery",
          "description": "The user's question regarding Danbury civic issues, voting, or elected officials.",
          "required": true
        }
      ]
    },
    {
      "name": "ddtc_volunteer_onboarding",
      "description": "AI prompt to assist community members in finding volunteer opportunities with the Danbury Democrats.",
      "arguments": [
        {
          "name": "ward",
          "description": "The Danbury ward number (1-7) or neighborhood.",
          "required": false
        }
      ]
    }
  ]
}