Connected Services lets your school extend CurricuLLM by plugging in external tools and data sources. Once an administrator has set up and approved a service, teachers can enable it in any conversation — and the AI will use it when helpful. For example, a connected web search service lets the AI look up current information, or a connected school library API lets it search your catalogue.
What is MCP?
Connected Services is built on the Model Context Protocol (MCP) — an open standard for connecting AI systems to external tools and data sources. MCP is maintained by Anthropic and widely adopted across the AI industry. It is not proprietary to CurricuLLM.
Because MCP is an open standard, any MCP-compatible server works with CurricuLLM. Your school is not locked into a specific vendor's integrations. There is a growing ecosystem of ready-made MCP servers for common tasks — web search, databases, file systems, calendar systems, and more — and your school or its vendors can also build custom MCP servers for school-specific needs.
You can learn more about the protocol at modelcontextprotocol.io.
Who can do what
- Administrator — Add, configure, test, approve tools, and delete services. Access via Settings > Connected Services.
- Teacher / Staff — Enable or disable available services per-conversation from the chat composer.
Students do not have access to Connected Services settings or the Connectors menu.
For Administrators
Where to find it
Navigate to Settings > Connected Services. The page uses a master-detail layout — services are listed in a panel on the left, with the selected service's configuration on the right.
Adding a service
Click Add Service and fill in the following fields:
- Name — A human-readable label shown to teachers (e.g. "Brave Search", "School Library API")
- Service ID — A short internal identifier (lowercase, hyphens, max 30 characters). This is auto-generated from the name and cannot be changed after creation.
- Service URL — The endpoint URL of the MCP server (must be HTTPS in production). Any server that implements the MCP specification will work.
- Connection type — The MCP transport to use: "Streamable HTTP" (default, recommended) or "Server-Sent Events (SSE)". These are standard MCP transport options.
- Sign-in method — How CurricuLLM authenticates to the service:
- None — No authentication required
- Bearer Token — A static bearer token
- API Key — An API key sent via a configurable header (default X-API-Key)
- Custom Headers — Arbitrary JSON headers
- OAuth 2.0 (Machine-to-Machine) — Client credentials flow with client ID, client secret, optional scopes, and token URL
- OAuth 2.0 (User Consent) — Authorization code flow where each teacher authorises separately on first use in chat
- Approve actions before chat can use them — When enabled (the default), newly discovered tools remain hidden from chat until you explicitly approve them. When disabled, all tools are immediately available.
- Wait time limit — Timeout in milliseconds before CurricuLLM gives up waiting for the service (default 30 seconds, maximum 120 seconds)
All credentials are encrypted at rest using AES-256-GCM before storage.
Testing a connection
Before or after saving, click Test Connection. CurricuLLM connects to the external service, attempts to list its tools, and reports:
- Success: "Connection successful! Found N tools."
- Failure: A user-friendly error message (e.g. "This service could not be reached…")
- Auth required (for OAuth User Consent): You are redirected to the OAuth provider to authorise, then returned to the settings page where the test re-runs automatically.
Discovering and approving tools
After saving a service, an Available Actions section appears. Click Refresh Actions to connect to the service and discover what tools it offers. Each discovered tool shows:
- Tool name — The technical name from the service
- Description — What the tool does
- "Shown in chat" label — The human-readable name teachers see during tool-calling steps
- Checkbox — Approve or unapprove the tool for use in chat
- Custom name — You can override the automatic label with your own name
Use Select All / Deselect All or the per-tool checkboxes to control exactly which tools the AI is allowed to use. Changes save automatically.
Status indicators
Each service in the list shows a coloured status dot:
- Connected (green) — Enabled, tools cached, last connection succeeded
- Disabled (amber) — Service is toggled off
- Authentication required (amber) — OAuth User Consent service where you have not authorised yet
- Review setup (amber) — No cached tools, or tool approval is required but none are approved
- Needs attention (red) — Last connection test or tool refresh failed
The settings sidebar also shows a summary badge — a green dot if all enabled services are healthy, or an amber/red dot with a count if any need attention.
Connection logs
Click Logs on any service to view its connection history. Each log entry shows:
- Event type — Connection Test, Connected, Tool Refresh, Tool Call, Tool Call Failed, or Tool Call Timeout
- Success/failure indicator — Green or red dot
- Message — Details of what happened (e.g. "Test successful. Found 3 tools." or error details)
- Timestamp — Relative time (e.g. "2 hours ago")
Enabling, disabling, and deleting
- Toggle switch — Enable or disable a service without losing its configuration
- Delete — Permanently removes the service and all its cached tools (requires confirmation)
For Teachers
The connectors available to you depend on which MCP servers your administrator has set up and approved. The ecosystem of MCP-compatible servers is growing, so new connectors may appear over time as your school adds them.
Enabling a connector in chat
In the chat composer, click the + button, then select Connectors. A panel opens showing all services your administrator has made available. Each service shows:
- A toggle switch to enable or disable it for this conversation
- The service name
- A capability summary describing what it can do (e.g. "Search and retrieve external information")
- Starter prompts showing example questions you can ask
Toggle a service on and it appears as a pill above the chat input (e.g. "Brave Search", "School Library API"). The enabled state is saved per-conversation — if you enable a connector on one conversation, it stays enabled when you come back to it.
What happens when you send a message
With a connector enabled:
- You send your message as normal
- The AI decides whether any of the connected tools would help answer your question
- If it uses a tool, you see a tool-calling step in the chat (e.g. "Searching Brave Search…")
- The service returns its result, and the AI uses it to compose its response
- If the AI needs more information, it can call tools multiple times in sequence (up to 10 rounds)
You do not need to do anything special — just ask your question and the AI handles the rest. If a tool fails, a circuit breaker stops calling it again, and the AI continues with what it has.
OAuth User Consent services
Some services require each teacher to authorise access individually (e.g. a service that connects to your Google account). The first time you enable one of these connectors, the chat shows an Authorize prompt. Clicking it redirects you to the provider to sign in, then returns you to the chat. The authorisation persists across all your conversations.
Tips for teachers
- Only enable the connectors you need for a given conversation — this keeps the AI focused
- The capability summary and starter prompts help you understand what each service can do
- You can enable and disable connectors mid-conversation if you change your mind
- If a connector seems slow, let your administrator know — they can adjust the timeout or check the connection logs
Security
Connected Services includes multiple layers of protection:
- SSRF prevention — Private IP ranges and localhost are blocked in production, preventing services from accessing internal networks
- Credential encryption — All authentication tokens, secrets, and headers are encrypted with AES-256-GCM before storage
- Organisation isolation — Services are scoped to your organisation; users can only see services belonging to their school
- Tool approval — Administrators can require explicit approval before any tool is exposed to chat
- Circuit breaker — Tools that fail twice in a row are automatically excluded from further calls in that session
- Timeout control — Per-service configurable timeout prevents slow services from hanging the chat
- Connection logging — All connection attempts, tool refreshes, and tool calls (success and failure) are logged for auditability
Troubleshooting
- Issue: Test Connection fails
- Solution: Verify the Service URL is correct and uses HTTPS. Check that your credentials are entered correctly. If using OAuth, try re-authorising.
- Issue: "Needs attention" status
- Solution: Click into the service, check the connection logs for error details, and re-test the connection. Common causes include expired tokens or the external service being temporarily unavailable.
- Issue: Teachers cannot see the connector
- Solution: Check the "Who can use this" audience setting. Ensure the service is enabled (toggle on) and that at least one tool is approved.
- Issue: The AI is not using the connector
- Solution: Check that at least one tool is approved in the Available Actions section. The AI only uses tools that have been explicitly approved.
- Issue: Tool calls are timing out
- Solution: Increase the wait time limit in the service settings, or contact the external service provider to investigate performance.
Support
If you encounter any issues with Connected Services, contact our team at helpdesk@curricullm.com with "Connected Services" in the subject line.