MCP¶
Model Context Protocol (MCP) is an open standard for connecting AI clients (Claude, Cursor, custom agents) to external systems through structured tool calls. The PlusPlus MCP server lets an AI agent find content, follow up on learning, and manage your learning platform on behalf of the person who signed in.
Closed Beta
The PlusPlus MCP server is in Closed Beta. Access is enabled per person or per workspace. Tools, arguments and results can change during the beta. To join, email support@plusplus.co with your tenant subdomain and what you want to build.
Connect a client¶
The server lives at your own PlusPlus host:
Add that URL as a remote MCP server in any client that supports Streamable HTTP and OAuth. In Claude, for example, add it as a custom connector. The client opens your PlusPlus sign-in page, and a consent screen names the client and the access it asks for. After you approve, the client gets a short-lived token for you. You never copy an API token into the agent.
Every tool acts as the person who signed in. The agent sees only the content and people that person can see, and can only change what that person can change. A client lists only the tools the sign-in allows, so a learner never sees the admin tools.
What it can do¶
| Area | What an agent can do |
|---|---|
| Find content | Search the catalog by text, type, tags, channel, event dates and attendance method; list channels, locations and tags |
| Your learning | List, self-assign, complete and reopen your assignments; enroll in events (or join the waitlist) and drop out; see your progress through a track; read your profile |
| Create and manage content | Create articles, links, videos, guides, courses, tracks and events; edit them; archive, unarchive, clone and delete them; upload a video file or a cover image; reorder a track's items and sections |
| Admin (Admins only) | Search people, or look up a list of emails; assign, complete, exempt and unassign content for up to 200 people at once; enroll people in events and record attendance; read assignment and event rosters; read engagement insights for a content item |
Creating and managing content follows your normal permissions: if you cannot do it in PlusPlus, the agent cannot do it either. Admin tools stay off for a new connection. After the client connects for the first time, an Admin approves admin access for it in Dashboard → Administration → AI Connections, where it can also be revoked. Admin tools also stop working when the person who signed in is no longer an Admin.
Each tool, with its arguments and its result, is in the tool reference.
Personal content¶
A Personal item belongs to the person who created it and lives in their own library, not in the catalog. search_content_items leaves Personal items out unless the agent names a person with include_personal_of, so the agent never suggests one person's library to someone else on its own:
include_personal_oftakes a person'spublic_id, their email, ormefor the person who signed in. It adds that person's Personal items to the results. You get your own hidden items too; for anyone else, Admins included, you get only their visible items, and a Restricted user gets none of anyone else's.is_personal: truekeeps only Personal items and needsinclude_personal_of.is_personal: falsekeeps only catalog content.
The agent passes them when the person asks for one person's own content, in their own words. For example:
- "search my library for SQL notes" is
include_personal_of: "me",is_personal: trueandquery: "SQL". - "show me everything Ana made" is
facilitatorandinclude_personal_of, both set to Ana's email: what she facilitates plus her visible Personal items.
MCP tools or the Public API?¶
Both reach the same data with the same permission rules. They are made for different callers.
Use the MCP server when an AI agent works for a person.
- The person signs in. OAuth sign-in with consent gives the agent a short-lived token for that person. There is no long-lived secret to create, paste into a chat client, store or rotate.
- Anyone can use it, not only integrators. Learners, managers and admins each get the tools that their role allows, scoped to what they can see.
- The tools are made for models. A tool does one task that would take several API calls: a search returns the schedule, channel, engagement and a link for each item, and you can create a track together with its items. Arguments accept what a person says (a channel by name, a list of emails) as well as
public_ids. - The client discovers the tools. The client reads the tool list, with descriptions and schemas, when it connects. There is no SDK to install, no client to generate and no endpoint list to keep in a prompt.
- Risky actions are confirmed. Each tool says whether it is read-only, destructive or safe to repeat, so the client can ask before a change. When a choice belongs to the person (drop an enrollment, join a waitlist, delete an item), the tool does not guess. If the client supports MCP elicitation, the tool asks the person directly. If not, the tool refuses and tells the agent to ask the person, then call again with the answer (for example
confirm: true). - The errors explain the fix. A refusal tells the agent what to do next, for example which tool gives the missing ID, so the agent can recover by itself.
Use the Public API for integrations and automation. Server-to-server sync with an HRIS, scheduled jobs, bulk imports, webhooks and any flow that must run the same way every time, without a person in the loop, belong on the REST API with a scoped API token.
Reading list¶
- Model Context Protocol — official spec
- Authentication — scopes, which also decide the MCP tools a sign-in can use.
- Tool reference — every tool, with its arguments and its result.