{
    "name": "Alfred Meeting",
    "description": "Alfred Meeting is a B2B marketplace for event venues, team-building activities and providers. The agent searches venues, reads and writes event requests on behalf of a signed-in client, and requests quotes from venues.",
    "supportedInterfaces": [
        {
            "url": "https://mcp.alfredmeeting.com/a2a/v1",
            "protocolBinding": "JSONRPC",
            "protocolVersion": "1.0"
        }
    ],
    "provider": {
        "organization": "Alfred Meeting",
        "url": "https://www.alfredmeeting.com"
    },
    "version": "1.0.0",
    "documentationUrl": "https://mcp.alfredmeeting.com/auth.md",
    "capabilities": {
        "streaming": false,
        "pushNotifications": false,
        "extendedAgentCard": false
    },
    "securitySchemes": {
        "alfredMeetingOAuth": {
            "oauth2SecurityScheme": {
                "description": "Authorization code with PKCE, on behalf of an existing Alfred Meeting client account. Agents cannot create accounts or register OAuth clients on their own (see auth.md).",
                "flows": {
                    "authorizationCode": {
                        "authorizationUrl": "https://www.alfredmeeting.com/oauth/authorize",
                        "tokenUrl": "https://mcp.alfredmeeting.com/oauth/token",
                        "refreshUrl": "https://mcp.alfredmeeting.com/oauth/token",
                        "scopes": {
                            "events:read": "Read active Alfred Meeting event requests",
                            "events:write": "Create and update Alfred Meeting event requests and venue preferences",
                            "quotes:write": "Send quote requests to Alfred Meeting and selected venues"
                        },
                        "pkceRequired": true
                    }
                },
                "oauth2MetadataUrl": "https://mcp.alfredmeeting.com/.well-known/oauth-authorization-server"
            }
        }
    },
    "defaultInputModes": [
        "application/json",
        "text/plain"
    ],
    "defaultOutputModes": [
        "application/json"
    ],
    "skills": [
        {
            "id": "get_catalogue_options",
            "name": "Get Alfred Meeting catalogue options",
            "description": "Get translated event types, filters, budget units, and supported catalogue options. Call this when a user's wording cannot be mapped reliably to structured filters.",
            "tags": [
                "alfred-meeting",
                "events",
                "venues",
                "read"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"get_catalogue_options\",\"parameters\":{\"locale\":\"fr\"}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "search_venues",
            "name": "Search Alfred Meeting venues",
            "description": "Search the real public Alfred Meeting catalogue deterministically. Partial searches are allowed. Never invent venues; use returned slugs for subsequent calls. Use `locations` for several places at once and `excluded_locations` / `excluded_tag_ids` for what the user does not want. Set `partner_kind` to \"restaurant\" to search service providers (caterer, DJ, photographer...) instead of venues. `formule_tarif_id` narrows an event type to a precise formula and decides which `price_ranges` are valid - call get_catalogue_options for the ids, the price ranges and which tags each family accepts. The catalogue \"more filters\" are available too: `privatizable` and `min_rating` for venues, `teambuilding_modes` / `teambuilding_environments` / `teambuilding_durations` for team building, `include_action_radius` / `include_country_operators` for team building and service providers.",
            "tags": [
                "alfred-meeting",
                "events",
                "venues",
                "read"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"search_venues\",\"parameters\":{\"locale\":\"fr\"}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "get_venue_details",
            "name": "Get venue details",
            "description": "Get the complete public Alfred Meeting record for one venue slug. Internal scores, contacts, commissions, and CRM data are never returned.",
            "tags": [
                "alfred-meeting",
                "events",
                "venues",
                "read"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"get_venue_details\",\"parameters\":{\"slug\":\"…\",\"locale\":\"fr\"}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ]
        },
        {
            "id": "list_active_events",
            "name": "List active Alfred Meeting event requests",
            "description": "List active event requests accessible to the connected client. Ask the user to choose; never select the latest event automatically.",
            "tags": [
                "alfred-meeting",
                "events",
                "read"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"list_active_events\",\"parameters\":{}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ],
            "securityRequirements": [
                {
                    "schemes": {
                        "alfredMeetingOAuth": {
                            "list": [
                                "events:read"
                            ]
                        }
                    }
                }
            ]
        },
        {
            "id": "get_event_request",
            "name": "Get an Alfred Meeting event request",
            "description": "Read the brief, venue preferences, and quote-request state for one authorized event ULID.",
            "tags": [
                "alfred-meeting",
                "events",
                "read"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"get_event_request\",\"parameters\":{\"event_ulid\":\"…\"}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ],
            "securityRequirements": [
                {
                    "schemes": {
                        "alfredMeetingOAuth": {
                            "list": [
                                "events:read"
                            ]
                        }
                    }
                }
            ]
        },
        {
            "id": "prepare_event_request",
            "name": "Prepare an event request",
            "description": "Validate a new or existing event request without writing. Returns missing fields, trusted contract options when applicable, conflicts, effects, a confirmation summary, and a short-lived token when ready.",
            "tags": [
                "alfred-meeting",
                "events",
                "read"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"prepare_event_request\",\"parameters\":{\"target\":{},\"brief\":{}}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ],
            "securityRequirements": [
                {
                    "schemes": {
                        "alfredMeetingOAuth": {
                            "list": [
                                "events:read"
                            ]
                        }
                    }
                }
            ]
        },
        {
            "id": "save_event_request",
            "name": "Save an event request",
            "description": "Create or update the explicitly chosen event after the user confirms the exact prepare_event_request summary. This can trigger Alfred notifications.",
            "tags": [
                "alfred-meeting",
                "events",
                "write"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"save_event_request\",\"parameters\":{\"target\":{},\"brief\":{},\"confirmation_token\":\"…\",\"idempotency_key\":\"…\"}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ],
            "securityRequirements": [
                {
                    "schemes": {
                        "alfredMeetingOAuth": {
                            "list": [
                                "events:write"
                            ]
                        }
                    }
                }
            ]
        },
        {
            "id": "set_venue_preferences",
            "name": "Save venue preferences",
            "description": "Save interested, maybe, or not-interested preferences with optional reasons for up to 12 venues. This never sends a quote request or venue email.",
            "tags": [
                "alfred-meeting",
                "events",
                "write"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"set_venue_preferences\",\"parameters\":{\"event_ulid\":\"…\",\"preferences\":[]}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ],
            "securityRequirements": [
                {
                    "schemes": {
                        "alfredMeetingOAuth": {
                            "list": [
                                "events:write"
                            ]
                        }
                    }
                }
            ]
        },
        {
            "id": "update_event_request",
            "name": "Update an event request",
            "description": "Update only explicitly supplied event fields after a prepare_event_request summary and confirmation. Missing values are never erased implicitly.",
            "tags": [
                "alfred-meeting",
                "events",
                "write"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"update_event_request\",\"parameters\":{\"target\":{},\"brief\":{},\"confirmation_token\":\"…\",\"idempotency_key\":\"…\"}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ],
            "securityRequirements": [
                {
                    "schemes": {
                        "alfredMeetingOAuth": {
                            "list": [
                                "events:write"
                            ]
                        }
                    }
                }
            ]
        },
        {
            "id": "prepare_venue_quotes",
            "name": "Prepare venue quote requests",
            "description": "Build the exact confirmation summary and short-lived token for quote requests. For contract room-booking events, first returns trusted room and catering options until every required room is selected. No email or business write occurs.",
            "tags": [
                "alfred-meeting",
                "events",
                "read"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"prepare_venue_quotes\",\"parameters\":{\"event_ulid\":\"…\",\"venue_slugs\":[]}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ],
            "securityRequirements": [
                {
                    "schemes": {
                        "alfredMeetingOAuth": {
                            "list": [
                                "events:read"
                            ]
                        }
                    }
                }
            ]
        },
        {
            "id": "request_venue_quotes",
            "name": "Request venue quotes",
            "description": "After explicit confirmation, execute Alfred Meeting's public quote-request pipeline for selected venues. Emails may be sent immediately and the workflow is not automatically reversible.",
            "tags": [
                "alfred-meeting",
                "events",
                "quotes",
                "write"
            ],
            "examples": [
                "{\"message\":{\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"skill\":\"request_venue_quotes\",\"parameters\":{\"event_ulid\":\"…\",\"venue_slugs\":[],\"confirmation_token\":\"…\",\"idempotency_key\":\"…\"}}}]}}"
            ],
            "inputModes": [
                "application/json"
            ],
            "outputModes": [
                "application/json"
            ],
            "securityRequirements": [
                {
                    "schemes": {
                        "alfredMeetingOAuth": {
                            "list": [
                                "quotes:write"
                            ]
                        }
                    }
                }
            ]
        }
    ]
}