Connect your AI Agents to Articulate Reach 360 in minutes

Available tools
list_courses
List all courses in Reach 360 with optional filtering by content type (rise, storyline, microlearning, imported). Supports pagination.
get_course
Get details of a specific course in Reach 360 by its ID including title, description, content type, and enrollment URLs.
enroll_user_in_course
Enroll a single user in a course in Reach 360. Optionally set a due date. Use list_courses and list_users to find IDs.
unenroll_user_from_course
Unenroll a user from a course in Reach 360. Use list_courses and list_users to find IDs.
enroll_group_in_course
Enroll a group in a course in Reach 360. Use 'everyone' as group_id to enroll all users. Optionally set a due date.
unenroll_group_from_course
Unenroll a group from a course in Reach 360. Use 'everyone' as group_id to unenroll all users.
import_course_completion
Import completion data for a course/user pair into Reach 360. Use to record historical completions with timestamps and optional score.
list_user_favorites
List a user's favorite courses and learning paths in Reach 360. Use list_users to find user IDs.
list_groups
List all groups in Reach 360 with optional filtering by name. Returns group details including member URLs.
get_group
Get details of a specific group in Reach 360 by its ID including name, description, and member URLs.
create_group
Create a new group in Reach 360 with a name and optional description.
update_group
Update an existing group in Reach 360. Can update name and/or description. Use list_groups to find group IDs.
delete_group
Delete a group from Reach 360 by its ID. Use list_groups to find group IDs.
list_group_members
List all members of a specific group in Reach 360. Returns user details for each member.
list_user_groups
List all groups that a specific user belongs to in Reach 360.
add_user_to_group
Add a user to a group in Reach 360. Use list_users and list_groups to find valid IDs.
remove_user_from_group
Remove a user from a group in Reach 360. Use list_group_members to find users in a group.
list_invitations
List all pending invitations in Reach 360. Returns invitation details including email, role, and expiration.
get_invitation
Get details of a specific pending invitation in Reach 360 by its ID.
create_invitation
Send an invitation to a user to join your Reach 360 team. Specify email, optional name, role, and groups to assign.
delete_invitation
Delete a pending invitation in Reach 360 by its ID. Use list_invitations to find invitation IDs.
list_learning_paths
List all learning paths in Reach 360. Returns learning path details including title, description, and course count.
get_learning_path
Get details of a specific learning path in Reach 360 by its ID including title, description, and courses URL.
list_learning_path_courses
List all courses in a specific learning path in Reach 360. Returns course details with position in the path.
enroll_user_in_learning_path
Enroll a user in a learning path in Reach 360. Optionally set a due date. Use list_learning_paths and list_users to find IDs.
unenroll_user_from_learning_path
Unenroll a user from a learning path in Reach 360. Use list_learning_paths and list_users to find IDs.
enroll_group_in_learning_path
Enroll a group in a learning path in Reach 360. Use 'everyone' as group_id to enroll all users. Optionally set a due date.
unenroll_group_from_learning_path
Unenroll a group from a learning path in Reach 360. Use 'everyone' as group_id to unenroll all users.
get_learner_report
Get learning report for a specific user in Reach 360. Returns course completion data including status, score, and duration.
get_course_report
Get learner completion report for a specific course in Reach 360. Returns completion status, scores, and duration for all enrolled learners.
get_group_courses_report
Get courses report for a specific group in Reach 360. Returns enrollment and completion statistics for each course.
get_learning_path_courses_report
Get courses report for a learning path in Reach 360. Returns enrollment and completion statistics for each course in the path.
get_learning_path_learners_report
Get learners report for a learning path in Reach 360. Returns completion status and due dates for all enrolled learners.
list_users
List all users in Reach 360 with optional filtering by email. Returns user details including role, groups URL, and learner report URL.
get_user
Get details of a specific user in Reach 360 by their ID including email, name, role, and associated URLs.
delete_user
Delete a user from Reach 360. Only learners without SSO or Articulate ID can be deleted. Use list_users to find valid user IDs.
validate_credential
Validate Articulate credentials. Verifies credentials during setup.
list_webhooks
List all webhooks in Reach 360. Returns webhook details including target URL, subscribed events, and API version.
get_webhook
Get details of a specific webhook in Reach 360 by its ID including target URL and subscribed events.
create_webhook
Create a webhook in Reach 360 to receive notifications for events like course completion, user creation, or enrollments.
delete_webhook
Delete a webhook from Reach 360 by its ID. Use list_webhooks to find webhook IDs.

How to set up Merge Agent Handler
In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}FAQs on using Merge's Articulate Reach 360 MCP server
FAQs on using Merge's Articulate Reach 360 MCP server
What is an Articulate Reach 360 MCP?
It's an MCP server that gives your agents access to learning data and course management in Articulate Reach 360 via tools. Your agents can invoke these tools to enroll learners in courses, check completion status, retrieve course libraries, pull registration records, and more.
Articulate doesn't offer an MCP server purpose built for Reach 360, but you can use one from a third-party platform, like Merge Agent Handler.
How can I use the Articulate Reach 360 MCP server?
The use cases naturally depend on the agent you've built, but here are a few common ones:
- New hire onboarding enrollment: When a new employee is added to an HR system like Workday, an agent enrolls them in the required onboarding courses in Reach 360 and logs the enrollment details back to the HR record
- Compliance deadline monitoring: An agent checks for learners whose mandatory compliance course registrations haven't reached completion status within five days of the deadline, then sends a reminder via Slack or email to the learner and their manager
- Course sequence gating: When a learner completes a prerequisite course in Reach 360, an agent detects the completion and automatically enrolls them in the next course in the sequence, without any manual intervention
- Learning progress reporting: On a scheduled cadence, an agent pulls completion data across a set of required courses and posts a structured summary to a manager's Slack channel with a breakdown by learner status
What are popular tools for Articulate Reach 360's MCP server?
Here are some of the most commonly used tools:
list_courses: retrieves the catalog of courses available in Reach 360, including title, duration, and status. Good for agents that need to identify which courses to enroll a learner in or include in a compliance report
get_course: fetches details for a single course by ID, including modules, estimated duration, and completion requirements. Use this when an agent needs to verify course attributes before enrolling a learner or surfacing course info to a user
create_enrollment: enrolls a learner in a specified course and triggers access and tracking. Call this when an agent detects a qualifying condition in another system, like a new hire event or a certification trigger
list_enrollments: retrieves enrollment records filtered by learner, course, or status. Helpful when an agent needs to check whether a learner is already enrolled before attempting to create a duplicate record
get_registration: fetches the completion status, score, and progress for a specific learner-course pair. Use this when an agent needs to confirm that a learner has met a course requirement before triggering a downstream action
list_registrations: retrieves all registration records across a course or learner group. Good for workflows that generate compliance summaries or flag learners who haven't completed required training by a deadline
What makes Merge Agent Handler's Articulate Reach 360 MCP server better than alternative Articulate Reach 360 MCP servers?
Here's what sets Merge Agent Handler's Reach 360 MCP server apart from a custom build or community alternative:
- Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Reach 360, this means you can prevent learner completion scores, enrollment records, and personally identifiable training data from being exposed even when the agent has broad read access
- Managed authentication and credentials: Merge stores and refreshes Reach 360 credentials on your behalf. You never expose raw API keys or OAuth tokens to an agent or rebuild your auth setup when credentials change
- Real-time observability and audit trail: Every tool call made against Reach 360 is logged with timestamp, tool name, input parameters, and response metadata. L&D and compliance teams can audit exactly which learner records an agent accessed without writing any logging infrastructure themselves
- Tool Packs and controlled access: Tool Packs let you bundle specific Reach 360 tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An agent gets exactly the tools it needs, nothing more
How can I start using Merge Agent Handler's Articulate Reach 360 MCP server?
You can take the following steps:
1. Create or log into your Merge Agent Handler account.
2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.
3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.
4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Articulate Reach 360 and complete the auth flow. Merge stores and manages the credentials going forward.
5. Open a Claude Code session and start querying Reach 360 data directly. The first time you use a Reach 360 tool, a Magic Link may appear to complete connector authentication.
If you want to connect Merge Agent Handler's Articulate Reach 360 MCP with internal or customer-facing agentic products, you can follow the steps in our docs.
Ready to try it out?
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now

























