For developers · Model Context Protocol

MCP server

Give agent clients a direct, scoped interface to kailenty invites, meetings, availability, calendars, and the knowledge base — secured by the same Microsoft 365 identity your team already signs in with.

Overview

Each kailenty workspace exposes an MCP endpoint at https://<workspace>.kailenty.com/api/v1/mcp using Streamable HTTP and JSON-RPC 2.0 (protocol version 2025-06-18). It is scoped to your workspace and serves the same data as the dashboard, with every tool name prefixed kailenty_.

The server advertises the OAuth endpoints that protect it through standard discovery documents, so compatible clients can connect with nothing but the URL.

shell
# Discover the OAuth endpoints that protect the MCP server
curl https://<workspace>.kailenty.com/.well-known/oauth-protected-resource/api/v1/mcp
shell
# List the available tools (JSON-RPC 2.0 over HTTP)
curl -X POST https://<workspace>.kailenty.com/api/v1/mcp \
  -H "Authorization: Bearer <access-token>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Connect

kailenty’s MCP server authenticates with OAuth 2.0, not static API keys. Point your client at the workspace URL and it will run the authorization flow automatically: on first connect kailenty opens a sign-in and consent page, you authenticate with Microsoft 365 and approve access, and the client stores the issued bearer token.

mcp client config
{
  "mcpServers": {
    "kailenty": {
      "url": "https://<workspace>.kailenty.com/api/v1/mcp"
    }
  }
}

One scope

Every token carries the mcp scope. Access is then shaped by your role and the confirmation step on writes.

Short-lived tokens

Access tokens are short-lived and refreshed automatically; refresh tokens last up to 30 days.

Active accounts only

Only active accounts can connect. Pending or disabled users are turned away at sign-in.

Invite tools

Draft, publish, and manage the scheduling invites you send to candidates and guests.

  • kailenty_invites_listread

    List or search invites you can see, filtered by status, type, recruiter, or label.

  • kailenty_invites_getread

    Fetch one invite with its full configuration.

  • kailenty_invites_draft_from_textread

    Extract candidate and invite fields from pasted text. Returns a draft only.

  • kailenty_invites_create_draftread

    Build a structured invite draft from fields, with validation and the next question to ask.

  • kailenty_invites_update_draftread

    Merge changes into an invite draft and report the remaining required fields.

  • kailenty_invites_publishwrite

    Publish a complete, validated invite draft.

  • kailenty_invites_updatewrite

    Update an active invite.

  • kailenty_invites_revokewrite

    Revoke an invite so it can no longer be booked.

  • kailenty_invites_unrevokewrite

    Restore a previously revoked invite.

  • kailenty_invites_create_sub_invitewrite

    Issue a candidate sub-invite from a multi-use pool invite.

  • kailenty_invite_cards_listread

    List the invite card templates available to you.

Meeting & calendar tools

Read, schedule, and reschedule meetings, and inspect the mirrored Outlook calendar.

  • kailenty_meetings_listread

    List or search meetings in a date range by recruiter, attendee, or status.

  • kailenty_meetings_getread

    Fetch one meeting with its full details.

  • kailenty_meetings_find_available_slotsreadManagers & admins

    Find common open slots for a set of users across one week.

  • kailenty_meetings_createwrite

    Create a meeting directly in Outlook and Teams without sharing an invite.

  • kailenty_meetings_updatewrite

    Update or reschedule an existing meeting.

  • kailenty_meetings_cancelwrite

    Cancel an existing meeting.

  • kailenty_calendar_events_listread

    List mirrored Outlook calendar events for the signed-in user.

Availability tools

Inspect and adjust base availability and the per-invite overrides that shape bookable times.

  • kailenty_availability_get_baseread

    Read base availability settings for you or a selected recruiter.

  • kailenty_availability_update_basewrite

    Update base availability settings.

  • kailenty_availability_upsert_day_overridewrite

    Add or change a single base-availability date override.

  • kailenty_availability_delete_day_overridewrite

    Remove a single base-availability date override.

  • kailenty_availability_overrides_listread

    List active invite-specific availability overrides.

  • kailenty_availability_get_day_overridesread

    Read effective per-day availability for a range, with base and override flags.

  • kailenty_availability_overrides_upsertwrite

    Create or update invite-specific availability.

  • kailenty_availability_overrides_deletewrite

    Delete one invite-specific availability override.

  • kailenty_availability_overrides_delete_allwrite

    Clear all invite-specific availability overrides for a recruiter.

Knowledge & workspace tools

Ground answers in the product knowledge base and read the workspace objects agents reference.

  • kailenty_knowledgebase_listread

    Browse the knowledge base index of entries, tags, and related tools.

  • kailenty_knowledgebase_searchread

    Search the knowledge base by topic, workflow, or feature.

  • kailenty_knowledgebase_getread

    Fetch full knowledge base entries by id.

  • kailenty_templates_listread

    List the message templates available to you.

  • kailenty_notification_profiles_listread

    List the notification profiles available to you.

  • kailenty_labels_listreadManagers & admins

    List the attendee-group labels used to route bookings.

  • kailenty_users_list_recruitersread

    List active recruiters; regular users see only themselves.

  • kailenty_contact_forms_listread

    List the contact forms visible to you.

  • kailenty_contact_forms_createwriteManagers & admins

    Create a contact form with a unique slug.

  • kailenty_time_get_currentread

    Get the current time and local day boundaries before resolving relative dates.

Human in the loop

Confirmations

Every write tool is a two-step action. The first call never changes anything — it returns a preview describing exactly what will happen, along with a confirmation id that expires after ten minutes. The agent shows that preview to the human, who approves or rejects it.

kailenty_action_confirm

Execute a pending preview after the human approves it. The confirmation is claimed atomically so it can run only once.

kailenty_action_cancel

Discard a pending preview the human rejected or abandoned, before it is ever applied.

Security

MCP calls are workspace-scoped by the bearer token, and each tenant is isolated with its own signing keys — a token issued for one workspace is rejected everywhere else. Within a workspace, what a token can see and do follows the signed-in user’s role: regular users act only on their own data, while a handful of tools are reserved for managers and admins.

Mutations always pass through the preview-and-confirm step above, so an agent can never silently change an invite, meeting, or availability rule. Keep MCP access on read-only agents where you only need diagnostics, and reserve approval of write previews for workflows where automated changes are intended.

Tokens are short-lived and tied to active accounts; disable a user or let the refresh token lapse and the agent loses access. Requests share the dashboard’s rate limits, and previews log only a short summary — not candidate contact details.