# The website chatbot's MCP server, called by the n8n AI Agent through its MCP Client Tool # node. Read-only tools over the mirrored TYPO3 content and our own trip data; see # docs/chatbot-mcp.md. Authentication is the "mcp" firewall in security.yaml. mcp: servers: chatbot: name: 'MyE&P chatbot' version: '1.0.0' instructions: 'Answers questions about the trips and website content of E&P Reisen and its brands. Every result carries a url to cite. Prices and availability are a snapshot as of dataAsOf; the booking page is binding. The structured trip fields of search_trips and get_trip (dates, rooms, prices, pickups, inclusions) come from the booking system and override anything editorial text says about them: product descriptions, FAQs and search_content/get_document results can be out of date.' http: path: /mcp # DNS rebinding protection guards unauthenticated local servers. This one is # public, behind a bearer token, and never called from a browser. allowed_hosts: false registry: tools: ['App\Chatbot\Mcp\Tool\'] # The same trip tools without the website's editorial text: no search_content and # get_document, and a get_trip that leaves out the product and hotel page texts. # Same tokens as /mcp; a client picks the variant by the path it is pointed at. chatbot_trips: name: 'MyE&P chatbot (trips only)' version: '1.0.0' instructions: 'Answers questions about the trips of E&P Reisen and its brands: dates, rooms, prices, availability, pickups and inclusions, all from the booking system. Every result carries a url to cite. Prices and availability are a snapshot as of dataAsOf; the booking page is binding. Website texts such as descriptions, FAQs and terms are not available here: for anything the tools do not answer, refer the user to the url of the trip.' http: path: /mcp/trips allowed_hosts: false registry: tools: - 'App\Chatbot\Mcp\Tool\SearchTripsTool' - 'App\Chatbot\Mcp\TripsOnly\'