> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modernloop.io/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Tools

> Reference for every tool exposed by the ModernLoop MCP Server.

The ModernLoop MCP Server exposes read and write tools on the default endpoint. Tool availability is specific to your endpoint, OAuth scopes, and organization entitlements. Call `tools/list` after connecting for the authoritative tool list and input schema for your session.

Two of the read tools are skill guides rather than data operations: `list_modernloop_skills` and `load_modernloop_skill` document the correct workflow, tool order, safety rules, and pitfalls for a scheduling domain. Load a guide before starting domain work — see [Skill guides](#skill-guides).

Use [the data model](/mcp/data-model) to find the right object and canonical ID, and [MCP setup](/mcp/setup) to troubleshoot missing tools or scopes. Call `get_me` first: its `tool_access` field predicts whether each public MCP tool can succeed with the token's scopes. Endpoint variant and connection-level `include_tools`/`exclude_tools` filtering can further restrict visibility, while a listed tool can still return `INSUFFICIENT_SCOPE`; use `tools/list` for the active connection's visible tools.

## Tool reference

| Tool                                | Description                                                                                                                                                                                                                                                          | Scope                              | Read-only toolset |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | ----------------- |
| `list_candidates`                   | Lookup candidates by id, name, email, ATS details, or creation and update timestamps.                                                                                                                                                                                | `candidates:read`                  | Yes               |
| `get_candidate`                     | Get details for one candidate.                                                                                                                                                                                                                                       | `candidates:read`                  | Yes               |
| `update_candidate`                  | Update a candidate.                                                                                                                                                                                                                                                  | `candidates:write`                 | No                |
| `list_applications`                 | List applications by candidate, job, status, ATS id, or timestamps.                                                                                                                                                                                                  | `applications:read`                | Yes               |
| `get_application`                   | Get details for one application.                                                                                                                                                                                                                                     | `applications:read`                | Yes               |
| `update_application`                | Update an application.                                                                                                                                                                                                                                               | `applications:write`               | No                |
| `list_jobs`                         | List jobs by name, status, ATS id, or timestamps.                                                                                                                                                                                                                    | `jobs:read`                        | Yes               |
| `get_job`                           | Get one job, including its resolved scheduling settings.                                                                                                                                                                                                             | `jobs:read`                        | Yes               |
| `update_job`                        | Update a job's fallback name or internal note.                                                                                                                                                                                                                       | `jobs:write`                       | No                |
| `list_job_stages`                   | List job stages by job id or by ids. Includes stage settings. At least one of ids or job\_id is required; when both are supplied, only stages that satisfy both are returned.                                                                                        | `jobs:read`                        | Yes               |
| `get_job_stage`                     | Get one job stage by id, including its settings.                                                                                                                                                                                                                     | `jobs:read`                        | Yes               |
| `update_job_stage`                  | Update a job stage's settings: automation, candidate notifications, self-schedule or availability-request defaults.                                                                                                                                                  | `jobs:write`                       | No                |
| `list_users`                        | List user load, limits, pause status, and module training.                                                                                                                                                                                                           | `users:read`                       | Yes               |
| `get_user`                          | Get details for one user.                                                                                                                                                                                                                                            | `users:read`                       | Yes               |
| `update_user`                       | Update a user's admin-managed profile, scheduling controls, load limits, or organization attributes.                                                                                                                                                                 | `users:write`                      | No                |
| `get_me`                            | Get the acting user, organization, and granted scopes for the current token.                                                                                                                                                                                         | No scope (any authenticated token) | Yes               |
| `list_help_articles`                | Search the ModernLoop help knowledge base by relevance-ranked query. Returns title, URL, snippet, and score.                                                                                                                                                         | No scope (any authenticated token) | Yes               |
| `get_help_article`                  | Read one help article as Markdown with its canonical URL.                                                                                                                                                                                                            | No scope (any authenticated token) | Yes               |
| `list_interview_modules`            | List interview modules by name, including member-count aggregates and training status. Use list\_interview\_module\_members to retrieve the member list.                                                                                                             | `interview_modules:read`           | Yes               |
| `get_interview_module`              | Get details for one interview module.                                                                                                                                                                                                                                | `interview_modules:read`           | Yes               |
| `create_interview_module`           | Create an interview module with training requirements and graduation rules.                                                                                                                                                                                          | `interview_modules:write`          | No                |
| `update_interview_module`           | Update an interview module's name, training requirements, graduation rules, or weekly limit.                                                                                                                                                                         | `interview_modules:write`          | No                |
| `delete_interview_module`           | Permanently delete one interview module and all of its interviewer memberships. This hard delete is irreversible.                                                                                                                                                    | `interview_modules:write`          | No                |
| `create_interview_module_member`    | Add one interviewer to an interview module, optionally with training overrides.                                                                                                                                                                                      | `interview_modules:write`          | No                |
| `get_interview_module_stats`        | Get member training counts for one interview module.                                                                                                                                                                                                                 | `interview_modules:read`           | Yes               |
| `list_interview_module_members`     | List the interviewers in one interview module with their training progress, optionally filtered by training status.                                                                                                                                                  | `interview_modules:read`           | Yes               |
| `get_interview_module_member`       | Get details for one interview module member.                                                                                                                                                                                                                         | `interview_modules:read`           | Yes               |
| `get_interview_module_member_stats` | Get detailed training statistics for one interview module member.                                                                                                                                                                                                    | `interview_modules:read`           | Yes               |
| `update_interview_module_member`    | Update an interviewer's training membership, pause state, required counts, timestamps, or weekly limit in one interview module.                                                                                                                                      | `interview_modules:write`          | No                |
| `delete_interview_module_member`    | Remove one interviewer from an interview module, deleting their membership and training progress in it.                                                                                                                                                              | `interview_modules:write`          | No                |
| `get_organization`                  | Get the caller's organization and its scheduling defaults.                                                                                                                                                                                                           | `organization:read`                | Yes               |
| `update_organization`               | Update the organization's scheduling defaults: work hours, interviewer load limits, interview buffers, feedback writing time, or conflict keywords.                                                                                                                  | `organization:write`               | No                |
| `list_interview_events`             | List interview events using person, candidate, application, job, status, and date filters.                                                                                                                                                                           | `interviews:read`                  | Yes               |
| `get_interview_event`               | Get details for one interview event.                                                                                                                                                                                                                                 | `interviews:read`                  | Yes               |
| `list_schedules`                    | List schedule groups with nested interviews, optionally bounded by timestamps.                                                                                                                                                                                       | `schedules:read`                   | Yes               |
| `get_schedule`                      | Get details for one schedule.                                                                                                                                                                                                                                        | `schedules:read`                   | Yes               |
| `list_scheduling_tasks`             | List scheduling tasks by status, flagged, urgency, queue IDs, tags, delegation status, assignee, job, or application. By default, results cover all tasks in the organization; use `my_tasks: true` as the my tasks shorthand for tasks assigned to the acting user. | `tasks:read`                       | Yes               |
| `get_scheduling_task`               | Get details for one scheduling task.                                                                                                                                                                                                                                 | `tasks:read`                       | Yes               |
| `create_scheduling_task`            | Create a scheduling task for an application and job stage.                                                                                                                                                                                                           | `scheduling:write`                 | No                |
| `update_scheduling_task`            | Update assignee, urgency, queue, tags, debrief requirement, or meeting location.                                                                                                                                                                                     | `scheduling:write`                 | No                |
| `cancel_scheduling_task`            | Cancel a scheduling task with an optional reason.                                                                                                                                                                                                                    | `scheduling:write`                 | No                |
| `list_task_queues`                  | List active scheduling task queues, optionally filtered by name.                                                                                                                                                                                                     | `tasks:read`                       | Yes               |
| `get_task_queue`                    | Get details for one scheduling task queue.                                                                                                                                                                                                                           | `tasks:read`                       | Yes               |
| `list_templates`                    | List organization email and calendar templates by name or type.                                                                                                                                                                                                      | `templates:read`                   | Yes               |
| `get_template`                      | Get details for one organization email or calendar template.                                                                                                                                                                                                         | `templates:read`                   | Yes               |
| `list_modernloop_skills`            | List available ModernLoop skill guides, optionally ranked by a fuzzy `query`.                                                                                                                                                                                        | No scope (any authenticated token) | Yes               |
| `load_modernloop_skill`             | Load one skill guide by exact name, its header only, or one bundled reference.                                                                                                                                                                                       | No scope (any authenticated token) | Yes               |
| `submit_mcp_feedback`               | Submit feedback about the MCP server itself: a tool bug, a missing capability, or workflow friction. Never includes candidate or customer data, PII, secrets, or raw tool arguments.                                                                                 | No scope (any authenticated token) | No                |

<Note>
  `delete_interview_module`, `delete_interview_module_member`, and `cancel_scheduling_task` are
  destructive. Read the current record and obtain explicit confirmation before calling them.
  `create_scheduling_task` requires an `idempotency_key`; reuse that key only when retrying the same
  intended create.
</Note>

## Skill guides

Skill guides are Markdown playbooks served over MCP. They describe the correct tool order, required inputs, safety rules, and common pitfalls for one scheduling domain, so an agent does not have to infer a workflow from `tools/list`.

1. Call `list_modernloop_skills` with topic keywords in `query` and a brief `telemetry.intent`. Omit `query` to list every applicable guide. Add `include_header: true` for descriptions, related guides, and bundled reference paths.
2. Call `load_modernloop_skill` with the **exact** `skill_name` from that response. Skill names are case-sensitive and are never inferred from topic words.
3. Use `header_only: true` to preview a guide, or `resource_path` to load one bundled reference without reloading the whole guide.

Both tools require `telemetry.intent`: a brief English statement of what you are doing. Never put candidate or employee data, argument values, or secrets in it — ModernLoop does not retain the raw text, and it is not a place for sensitive input.

The beta catalog covers `modernloop/task-triage`, `modernloop/candidate-investigation`, `modernloop/scheduling-task-creation`, and `modernloop/interviewer-capacity`.

<Note>
  A guide is only listed and loadable when **every** tool it documents is visible to your token,
  endpoint, and connection filters. On `/mcp/readonly`, guides covering task writes are absent. An
  unavailable or unknown skill name returns the same `NOT_FOUND` response, so a failed load is never
  evidence that a guide exists.
</Note>

## Workflow prompts

Copy one of these into a connected MCP client. Replace the bracketed text with your context.

### Triage my scheduling tasks

> Use `get_me` first, then call `list_scheduling_tasks` with `my_tasks: true` for your open scheduling tasks. Group them by urgency, status, and queue; call `get_scheduling_task` for the highest-priority items. Do not change anything.

### Create a scheduling task for a candidate

> Find candidate \[name or email], then find their active application for \[job]. Read the application and its job stages, identify the requested stage, and summarize the target application and stage before creating a scheduling task. After I confirm, call `create_scheduling_task` with a new idempotency key and report the result.

### Investigate why a candidate is not scheduled

> Find candidate \[name or email], then inspect their applications, scheduling tasks, schedules, and interview events. Explain the current status and blockers using only the returned data. Do not make changes.

### Review interviewer capacity

> List users matching \[team, name, or module], then inspect the relevant users and interview-module training statistics. Identify people who are paused or near their configured limits. Do not make changes.

### Troubleshoot a ModernLoop issue

> Search the help knowledge base for \[issue or error message] with `list_help_articles`, read the best matches with `get_help_article`, and summarize the recommended steps with canonical article links. If nothing relevant is found, say so and ask one clarifying question.

### Find stale tasks in a queue

> Find the task queue named \[queue name], then list its scheduling tasks that have not been updated since \[date]. Summarize status, assignee, urgency, and the next useful follow-up. Do not make changes.

## Further reading

* [MCP Data Model](/mcp/data-model) — object relationships, IDs, discovery, and pagination
* [ModernLoop MCP](/mcp/setup) — scopes and troubleshooting
* [MCP Toolsets](/mcp/toolsets) — read-only versus default endpoint
