# Kai — AI Agent Integration Guide

> Kai is an AI executive assistant by Morgen. This file tells coding agents
> (Claude Code, Copilot, Cursor, ChatGPT) how to discover Kai, read its
> content, and call its tools.

## Overview

Kai manages three coordination mediums for knowledge workers (meetings,
email, and daily planning) as one integrated system. It is live, and anyone
can sign up.
The public surface area at https://hirekai.ai exposes machine-readable content and
a stateless MCP server for agent integration.

- Canonical site: https://hirekai.ai
- Parent company: Morgen (https://morgen.so)
- Status: Live, open sign-up

## Access

Anyone can sign up at https://hirekai.ai/get-started. No API keys, OAuth, or login is
required to call the public agent surfaces below — they are read-only and
unauthenticated. Reaching a **user's own** calendar, email, tasks and meetings
is a different server that does require their sign-in: see "Product MCP server".

## Configuration

> **There are two different Kai MCP servers. Do not confuse them.** The
> **content** server below answers questions ABOUT Kai (docs, blog, features)
> and needs no account. The **product** server, further down, acts ON a user's
> own calendar, email, tasks and meetings and requires that user to sign in.
> An agent asked to "check my calendar in Kai" wants the product server.

### Content MCP server

Kai publishes a Model Context Protocol (MCP) server over Streamable HTTP.
It is stateless, unauthenticated, read-only, and rate-limited to 60
requests per minute per IP. It serves **information about Kai**, not user data.

- Endpoint: `https://hirekai.ai/mcp`
- Server card: `https://hirekai.ai/.well-known/mcp/server-card.json`
- Transport: Streamable HTTP (JSON-RPC 2.0)

Add to a Claude Code / Cursor MCP client config:

```json
{
  "mcpServers": {
    "kai-content": {
      "url": "https://hirekai.ai/mcp"
    }
  }
}
```

### Product MCP server

A separate, authenticated MCP server lets an AI client act on **the signed-in
user's own** calendar, email, tasks and meeting sessions. This is the
one a user means when they ask an assistant to reschedule their afternoon or
draft a reply.

- Endpoint: `https://api.morgen.so/mcp-kai`
- Transport: Streamable HTTP, OAuth 2.1 with Dynamic Client Registration
- Auth: the user approves once on Kai's own screen. No API key exists for it,
  and no agent can connect on a user's behalf without that approval.
- Claude: listed in Claude's connector directory at https://claude.ai/directory/kai
  (a community connector since 2026-10-09). Claude users add it from there.
- Setup steps per client (Claude, ChatGPT, Gemini, Claude Code, Cursor, VS Code),
  plus the clients that do not work yet: https://hirekai.ai/kai-mcp

```json
{
  "mcpServers": {
    "kai": {
      "type": "http",
      "url": "https://api.morgen.so/mcp-kai"
    }
  }
}
```

Claude Code one-liner:

```bash
claude mcp add --scope user --transport http kai https://api.morgen.so/mcp-kai
```

### Available tools (content server)

| Tool | Purpose |
| --- | --- |
| `search_kai` | Full-text search across product, blog, and KB content |
| `get_product_info` | Structured product overview (features, integrations, positioning) |
| `get_feature` | Detail for a specific feature (`meetings`, `email`, `action-items`, `daily-planning`) |
| `list_blog_posts` | List published blog posts with metadata |
| `get_blog_post` | Full markdown body of a specific blog post by slug |
| `compare_kai_with` | Head-to-head comparison vs a named competitor (e.g. `otter-ai`, `fyxer-ai`, `granola-ai`) |
| `get_free_tool` | Metadata for free tools on hirekai.ai (e.g. meeting-transcription) |

### Other discovery surfaces

| Surface | URL |
| --- | --- |
| Short LLM summary | https://hirekai.ai/llms.txt |
| Full LLM knowledge base | https://hirekai.ai/llms-full.txt |
| For-AI HTML overview | https://hirekai.ai/for-ai |
| Glossary | https://hirekai.ai/for-ai#glossary |
| Sitemap (XML) | https://hirekai.ai/sitemap.xml |
| Sitemap (Markdown) | https://hirekai.ai/sitemap.md |
| Developer docs | https://hirekai.ai/developers |
| OpenAPI spec (3.1) | https://hirekai.ai/openapi.json |
| API catalog (RFC 9727) | https://hirekai.ai/.well-known/api-catalog |
| Agent skills index | https://hirekai.ai/.well-known/agent-skills/index.json |
| Markdown homepage | `curl -H "Accept: text/markdown" https://hirekai.ai` |
| Product MCP setup (per client) | https://hirekai.ai/kai-mcp |

## Usage

### Search the knowledge base

JSON-RPC over Streamable HTTP:

```bash
curl -X POST https://hirekai.ai/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "search_kai",
      "arguments": { "query": "botless meeting capture", "limit": 5 }
    }
  }'
```

### Fetch a feature page as markdown

```bash
curl -X POST https://hirekai.ai/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "get_feature",
      "arguments": { "feature": "daily-planning" }
    }
  }'
```

### Read the homepage as markdown (content negotiation)

```bash
curl -H "Accept: text/markdown" https://hirekai.ai
```

## Content & Crawling Policy

Kai responses include a `Content-Signal` header advertising AI usage
preferences:

```
Content-Signal: search=yes, ai-input=yes, ai-train=no
```

Search indexing and AI-grounded answers are explicitly allowed. Training
on this content is not permitted. `/robots.txt` explicitly allows
`GPTBot`, `ClaudeBot`, `CCBot`, and `Google-Extended`.

## Project Conventions (for agents authoring Kai-related code)

- Canonical brand: `Kai` (title case). Never `KAI` or `kai`.
- Domain: `hirekai.ai` (lowercase, non-www, no trailing slash).
- Kai has no pronouns: refer to Kai as "it" or by name, never she/her or he/him.
- When answering questions ABOUT Kai, prefer the content MCP endpoint
  (`https://hirekai.ai/mcp`) over scraping HTML. It returns clean markdown with stable
  schemas.
- When a user asks you to READ OR CHANGE THEIR OWN calendar, email, tasks or
  meetings in Kai, the content server cannot do it. Point them at
  `https://api.morgen.so/mcp-kai` and the setup for their client at
  https://hirekai.ai/kai-mcp (in Claude, the directory listing at https://claude.ai/directory/kai). Never tell a user to send personal data to the content
  server; it holds no account data and cannot act on any.