kairos
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KAIROS_DISABLED | No | Set to 1 to disable all tools. | |
| KAIROS_AUDIT_LOG | No | Overrides the audit log path. | |
| KAIROS_CLIENT_ID | Yes | The Application (client) ID from your Entra app registration. | |
| KAIROS_TENANT_ID | Yes | The Directory (tenant) ID from your Entra app registration. | |
| KAIROS_CONFIG_DIR | No | Moves the cache, log and kill-switch file elsewhere. | |
| KAIROS_TOKEN_CACHE | No | Overrides the token cache path. | |
| KAIROS_DEFAULT_PLAN | No | Optional default plan name. If not set, each call must name a plan unless only one is visible. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| kairos_loginA | Start a device-code sign-in to Microsoft 365. Returns a URL and a code for the human to enter in a browser; then call kairos_login_finish() to complete. Only needed once, or after the refresh token lapses (for example after a password change). |
| kairos_login_finishA | Complete a device-code sign-in started with kairos_login(). Call after entering the code in the browser. Waits up to ~60s; if the code has not been entered yet, it says so and can simply be called again. |
| kairos_auth_statusA | Report whether kairos is signed in, as whom, whether Graph is reachable, and how many plans are visible. |
| list_planner_plansA | List the Planner plans this account can see, each with its buckets and IDs. Results are cached for a few minutes; pass refresh=true to force a re-read (for example after someone added a bucket in the Planner UI). |
| create_planner_taskA | Create a task in Microsoft Planner. This is a real write: the task exists the moment this returns. Args: title: Short, action-oriented task title (required). notes: Longer context for the task body (Planner "Notes"). plan: Plan name (case-insensitive) or ID. Empty uses KAIROS_DEFAULT_PLAN, or the only plan if the account has exactly one. bucket: Bucket within the plan, by name or ID. Empty uses the plan's first bucket. Call list_planner_plans to see what exists. due_on: Due date as YYYY-MM-DD, or empty for none. |
| create_planner_bucketA | Create a bucket (board column) in a Planner plan. Idempotent: if a bucket with that name already exists (case-insensitive) its ID is returned and nothing is created. Args: bucket_name: Name of the bucket. plan: Plan name or ID. Empty uses KAIROS_DEFAULT_PLAN / the only plan. |
| list_planner_tasksA | List Planner tasks with their IDs, so a task can be referenced or completed. Args: plan: Plan name or ID. Empty uses KAIROS_DEFAULT_PLAN / the only plan. Pass "" to list every plan the account can see. bucket: Optional bucket name to filter by (ignored with plan=""). include_completed: Include tasks already at 100%. Defaults to open only. |
| complete_planner_taskA | Mark a Planner task complete (or reopen it). This is a real write. Give either task_id (exact, preferred) or title. A title is matched against OPEN tasks only (COMPLETED tasks when reopen=true); if it matches more than one, this refuses and lists the candidates rather than guessing. Args: task_id: Exact Planner task ID. Preferred when known. title: Task title or a distinctive part of it. Used only if task_id is empty. plan: Plan to search when matching by title. Empty uses the default plan. reopen: Set true to undo a completion (sets 0%) instead. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool maps to a distinct action/resource: auth bootstrap/finish/status, plan listing, task creation, bucket creation, task listing, and task completion. The two-step login flow is clearly sequenced, and there is no meaningful overlap between tools.
Most names follow a clear verb_noun snake_case pattern (list_planner_plans, create_planner_task, complete_planner_task). Minor inconsistency: auth tools use a kairos_ prefix while planner tools do not, and kairos_login_finish is a verb+adverb rather than a noun, but the overall pattern remains readable.
Eight tools is well-scoped for an authentication flow plus Planner task management. Each tool earns its place, and there are no redundant or overwhelming additions.
Core Planner workflows are covered: list plans, create buckets, create tasks, list tasks, and complete/reopen tasks. However, there is no way to update task details, delete a task or bucket, or fetch a single task in isolation, which leaves notable lifecycle gaps.