{
  "name": "AgendaForge MCP Server",
  "description": "Authenticated event operations over Streamable HTTP. Read tools execute directly. Depending on the organization's settings, write and communication tools either execute immediately or create proposals that require human approval in AgendaForge. Supports MCP Apps (SEP-1865): get_agenda links an interactive agenda board view declared as the ui://agendaforge/agenda-board.html resource.",
  "version": "1.0.0",
  "serverUrl": "https://mcp.agendaforge.app/mcp",
  "tools": [
    {
      "name": "list_my_orgs",
      "description": "List organizations available to the authenticated identity."
    },
    {
      "name": "list_events",
      "description": "List events in an organization with dates, status, and links."
    },
    {
      "name": "get_event",
      "description": "Get event details, venue, links, and live event counters."
    },
    {
      "name": "list_sessions",
      "description": "List event sessions with optional status, track, and schedule filters."
    },
    {
      "name": "get_session",
      "description": "Get one session with description, speakers, room, track, and time."
    },
    {
      "name": "get_agenda",
      "description": "Get the scheduled agenda grouped by day and room."
    },
    {
      "name": "list_forms",
      "description": "List event forms with status and submission counts."
    },
    {
      "name": "list_submissions",
      "description": "List submissions for a form with optional status filtering."
    },
    {
      "name": "list_speaker_tasks",
      "description": "List event speaker portal tasks and their status."
    },
    {
      "name": "search",
      "description": "Search accessible organization records by keyword."
    },
    {
      "name": "semantic_search",
      "description": "Run metered hybrid vector and text search over accessible records."
    },
    {
      "name": "list_tracks_rooms",
      "description": "List event tracks and rooms with available metadata."
    },
    {
      "name": "check_schedule_conflicts",
      "description": "Check proposed session placements for conflicts without changing data."
    },
    {
      "name": "list_speakers",
      "description": "List event speakers, sessions, confirmation state, and contact ids."
    },
    {
      "name": "list_sponsors",
      "description": "List event sponsors with tier, website, booth flag, and custom fields."
    },
    {
      "name": "get_contact",
      "description": "Get an event contact profile, status, sessions, and notes count."
    },
    {
      "name": "list_associated_contacts",
      "description": "List a contact and their associated people for one event, with email addresses and relationship labels."
    },
    {
      "name": "search_contacts",
      "description": "Search or page through organization contacts."
    },
    {
      "name": "get_review_progress",
      "description": "Get review rounds, completion percentages, and pending decisions."
    },
    {
      "name": "get_registration_stats",
      "description": "Get registration statistics and the active ticketing provider rail."
    },
    {
      "name": "get_ticketing_overview",
      "description": "Get ticket sales, tickets sold by type against capacity, check-in rate, waitlist and requests awaiting approval."
    },
    {
      "name": "list_attendees",
      "description": "List ticketed event attendees with ticket status and type."
    },
    {
      "name": "get_email_activity",
      "description": "List recent event email sends and delivery status."
    },
    {
      "name": "list_email_templates",
      "description": "List organization and event email template names and ids."
    },
    {
      "name": "draft_email",
      "description": "Render an email template preview without sending or logging an email."
    },
    {
      "name": "list_pending_approvals",
      "description": "List pending Coordinator approvals for an event."
    },
    {
      "name": "import_contacts",
      "description": "Propose importing up to 50 contacts into the CRM or an event. Never sends emails."
    },
    {
      "name": "add_contact_note",
      "description": "Propose a private internal CRM note for human approval."
    },
    {
      "name": "send_speaker_reminder",
      "description": "Propose a speaker task reminder email for human approval."
    },
    {
      "name": "send_speaker_message",
      "description": "Propose an email to a speaker or contact for human approval."
    },
    {
      "name": "update_session",
      "description": "Propose changes to session content, taxonomy, or schedule."
    },
    {
      "name": "delete_session",
      "description": "Propose permanent session deletion, disabled by default and approval-gated."
    },
    {
      "name": "remove_session_speaker",
      "description": "Propose removing a speaker assignment from a session."
    },
    {
      "name": "create_sponsor",
      "description": "Propose adding a new sponsor with name, website, description, and booth."
    },
    {
      "name": "update_sponsor",
      "description": "Propose changes to sponsor details or custom fields."
    },
    {
      "name": "delete_sponsor",
      "description": "Propose permanent sponsor deletion, disabled by default and approval-gated."
    },
    {
      "name": "update_contact",
      "description": "Propose changes to a contact profile, tags, or custom fields."
    },
    {
      "name": "create_speaker_task",
      "description": "Propose a new portal task for a speaker."
    },
    {
      "name": "create_session",
      "description": "Propose a new unscheduled session in proposed status."
    },
    {
      "name": "assign_speaker",
      "description": "Propose assigning a contact as a session speaker."
    },
    {
      "name": "manage_tracks",
      "description": "Propose creating or renaming an event track."
    },
    {
      "name": "manage_rooms",
      "description": "Propose creating or renaming an event room."
    },
    {
      "name": "set_submission_status",
      "description": "Propose moving a form submission through its pipeline."
    },
    {
      "name": "decide_submission",
      "description": "Propose accepting or rejecting up to 25 submissions."
    },
    {
      "name": "create_session_from_submission",
      "description": "Propose creating a session from an approved submission."
    },
    {
      "name": "schedule_session",
      "description": "Propose placing, moving, swapping, or unscheduling a session."
    },
    {
      "name": "check_in_attendee",
      "description": "Propose an idempotent attendee check-in by ticket code or id."
    },
    {
      "name": "create_form",
      "description": "Propose creating a new event form as a draft."
    },
    {
      "name": "update_form",
      "description": "Propose editing a draft form by instruction."
    },
    {
      "name": "update_form_pipeline",
      "description": "Propose replacing a form submission pipeline."
    },
    {
      "name": "create_email_template",
      "description": "Propose drafting a new event email template."
    },
    {
      "name": "invite_to_portal",
      "description": "Propose portal access and an invitation email for a contact."
    },
    {
      "name": "send_email",
      "description": "Propose sending a templated email to one contact."
    },
    {
      "name": "request_media_upload",
      "description": "Propose a one-time event logo or cover upload link."
    },
    {
      "name": "create_event",
      "description": "Propose creating a draft event for the organization."
    },
    {
      "name": "set_write_access",
      "description": "Change how the organization's AI clients write data (approve vs direct, with optional expiry); owner or admin OAuth accounts only, two-step confirm."
    }
  ],
  "iconUrl": "https://agendaforge.app/icon.svg",
  "icon": "https://agendaforge.app/icon.svg"
}
