# LCI Language School > ## Core Documentation ## API Access For AI agents, chatbots, and developers — two ways to access our content programmatically: ### Search API (HTTP) Search programs, faculties, events, news, and more via simple HTTP GET requests. - **Endpoint**: `GET https://languages.lcieducation.com/api/search` - **Schema / Discovery**: `GET https://languages.lcieducation.com/api/search/schema?locale=fr` - **Authentication**: None required (public) **Quick examples**: - Search programs: `https://languages.lcieducation.com/api/search?locale=fr&q=design` - Filter by faculty: `https://languages.lcieducation.com/api/search?locale=fr&faculty=Design` - List events: `https://languages.lcieducation.com/api/search?type=event&locale=fr` - Latest news: `https://languages.lcieducation.com/api/search?type=news&locale=fr&sort=date` - All content types: `https://languages.lcieducation.com/api/search?type=all&locale=fr&q=design` Supports 7 content types: programs, faculties, fields of study, pages, events, news, stories. ### MCP Server (AI Agents) For AI agents that support the [Model Context Protocol](https://modelcontextprotocol.io), a full MCP server is available with 15 tools, conversation context, and structured responses. - **Endpoint**: `POST https://languages.lcieducation.com/api/mcp` - **Protocol**: JSON-RPC 2.0 over Streamable HTTP (stateless) - **Authentication**: None required (public) **Available tools**: search_programs, get_program, compare_programs, get_search_schema, list_facets, search_faculties, search_fields_of_study, get_campus, search_global, search_pages, search_site, search_faq, search_events, search_news, search_stories **Client configuration** (Claude Desktop, Cursor, etc.): ```json { "mcpServers": { "languages": { "type": "streamableHttp", "url": "https://languages.lcieducation.com/api/mcp" } } } ``` **Recommended first call**: `get_search_schema` — returns available parameters, valid filter values, and AI behavior instructions. * *Required headers**: - `Content-Type: application/json` - `Accept: application/json, text/event-stream` (both values required per MCP Streamable HTTP spec) * *Integration tips**: - Always call `list_facets` before `search_programs` to discover valid filter values (exact match required — e.g. "Montréal" not "Montreal", "IN-CLASS LEARNING" not "on-campus") - Pass `suggestedContext` from previous responses to maintain conversational continuity - All URLs include UTM tracking (`utm_source=mcp&utm_medium=ai-agent`) --- --- ## Search API Public REST endpoint for querying educational content. **Endpoint**: `GET https://languages.lcieducation.com/api/search` **Schema**: `GET https://languages.lcieducation.com/api/search/schema` ### Entity Types | Type | Description | |------|-------------| | `program` (default) | Educational programs with NL search and filtering | | `faculty` | Academic faculties/schools | | `fieldOfStudy` | Academic disciplines | | `page` | Website pages with extracted text | | `event` | Campus events with dates and registration | | `news` | News articles | | `story` | Student/alumni stories | | `all` | Unified cross-type search | ### Key Parameters | Param | Description | |-------|-------------| | `type` | Entity type (default: program) | | `locale` | Content language (auto-detected if omitted) | | `q` | Natural language query with typo tolerance | | `faculty` | Filter by faculty name | | `campus` | Filter by campus | | `deliveryMode` | on-campus, online, hybrid, blended | | `schedule` | full-time, part-time | | `slug` | Fetch single entity detail | | `page` / `pageSize` | Pagination (max 50 per page) | ### Examples ``` GET /api/search?locale=en&q=design+programs GET /api/search?locale=en&faculty=Design&deliveryMode=online GET /api/search?locale=en&slug=graphic-design GET /api/search?type=faculty&locale=en GET /api/search?type=event&locale=en&eventStatus=upcoming GET /api/search?type=all&locale=en&q=design ``` Locale is resolved automatically from `Accept-Language` header if not specified. ## MCP Server Model Context Protocol endpoint for AI assistant integration. **Endpoint**: `POST https://languages.lcieducation.com/api/mcp` **Protocol**: JSON-RPC 2.0 over Streamable HTTP **Authentication**: None required (public, read-only) **Discovery**: `GET https://languages.lcieducation.com/.well-known/mcp` ### Available Tools (15) | Tool | Description | |------|-------------| | `search_programs` | Natural language + structured program search | | `get_program` | Full program detail (about, career, admissions) | | `compare_programs` | Side-by-side comparison (2-3 programs) | | `get_search_schema` | API discovery and live facet values | | `list_facets` | Filter value discovery per entity type | | `search_faculties` | Academic schools with fields of study | | `search_fields_of_study` | Disciplines with parent faculties | | `get_campus` | Campus detail (address, hours, programs) | | `search_global` | Cross-campus search (all LCI sites) | | `search_pages` | Website pages with composition text | | `search_site` | Unified cross-type search | | `search_faq` | FAQ entries grouped by topic | | `search_events` | Campus events with status and registration | | `search_news` | Articles with date filtering | | `search_stories` | Student/alumni stories | ### Client Configuration (Claude Desktop / Cursor) ```json { "mcpServers": { "lci-education": { "url": "https://languages.lcieducation.com/api/mcp" } } } ``` ## Machine-Readable API Specification - [OpenAPI 3.1 Spec](https://languages.lcieducation.com/docs/api/openapi.yaml): Full schema for the Search API - [MCP Server Card](https://languages.lcieducation.com/.well-known/mcp): MCP discovery metadata