# MCP tools

The EkLine MCP server offers these tools. To connect a client, see [Connect an MCP client](/agent/mcp/).

## Server

| Item | Value |
|------|-------|
| URL | `https://ekline.io/api/mcp` |
| Transport | Streamable HTTP |
| Authentication | An `Authorization: Bearer <key>` header with a personal API key. No OAuth. |
| Key format | `ek_<id>_<secret>` |
| Key scope | One member in one organization. Membership is checked on every call. |
| Missing, revoked or unknown key | The server answers with no tools rather than an error. |

## Tools

| Tool | What it does | Main parameters |
|------|--------------|-----------------|
| `create_session` | Starts a Docs Agent or Marketing Agent session and returns its id and a link to follow it. Returns once the session starts, not when it finishes. | `prompt` (required): the task. `agent`: `docs` (default) or `marketing`. |
| `get_session_status` | Reports a session's status and up to six of its most recent messages. | `sessionId` (required) |
| `send_session_message` | Sends a correction, extra requirement or reference to a session that is running. Returns once the agent has the message. | `sessionId` and `prompt` (both required) |
| `list_sessions` | Lists your organization's sessions: what each was asked and when it was last active. A pasted pull request, merge request, Jira or session URL finds the sessions related to it. Does not report whether a session is still running. | `query`: text to search for, or a URL. `agent`: `docs`, `marketing` or `all` (default). `limit`: 1 to 100 (default 20). |
| `search_ekline_docs` | Answers a question about EkLine from the published docs, with up to four sections and the URL of the page each came from. | `query` (required) |
| `get_company_profile` | Reads your organization's company profile, including its named personas, competitors, brand terms and documentation sites. | None |
| `update_company_profile` | Replaces the profile fields you give, with no review step, and reports what each held before. Cannot clear a field or change named personas, competitors, brand terms or documentation sites. | At least one of `companyProfile`, `keyFeatures`, `audience`, `competitors`, `toneAndVoice`, `visualStyle`, `additionalContext`, each 1 to 10,000 characters |
| `create_rules` | Creates a Docs Agent rule, with no review step. Refuses a name your organization already uses. Cannot change, turn off or delete a rule. | `name` (required, up to 200 characters), `content` (required, up to 20,000 characters), `ruleType`: `general` (default) or `review`, `paths`: up to 20 file globs |

## Session status values

`get_session_status` returns one of these.

| Status | Meaning |
|--------|---------|
| `working` | The agent is still running the session. |
| `completed` | The session finished. |
| `failed` | The session ran into a problem, or has had no activity for more than 15 minutes without finishing. |
| `cancelled` | The session was stopped. |

## Rule types

| `ruleType` | Applies |
|------------|---------|
| `general` | On every task the agent works on |
| `review` | Before the agent opens or updates a documentation pull request |

## Journeys tools

| Tool | What it does | Main parameters |
|------|--------------|-----------------|
| `list_journeys` | Lists your organization's journeys: each one's id, title, kind, whether it is a draft or published, and how many reports it has. | None |
| `get_journey` | Reads one journey: what it asks, as which persona, its checks, which agents run it and how many times, and a summary of its latest report. | `journeyId` |
| `get_journey_report` | Reads one report: how each agent did on each check, the report's findings, and an excerpt of each answer with the sources it cited. | `journeyId`, `reportId` |
| `get_journey_run` | Reads one run in full: every answer, every source cited, and each check result with its reason. | `journeyId`, `reportId`, `runId` |
| `create_journey` | Creates a draft journey. It does not run until you call `run_journey`. | `sourcePrompt`, `title`, `kind` (`research` or `task`), `definition` (1 to 20 turns, a persona, up to 50 checks), `runConfig` (`agentIds` and `runCount`) |
| `update_journey` | Changes a journey that has not run yet. Each field you give replaces the stored one in full. | `journeyId`, plus at least one of the `create_journey` fields |
| `run_journey` | Queues a run. It sends real requests to the AI agents and writes a report, usually within a few minutes. Returns once the run is queued. | `journeyId` |

| `runConfig` field | Values |
|-------------------|--------|
| `agentIds` | One or more of `chatgpt`, `claude`, `perplexity`, `gemini`, `claude-code`, `codex`. A `task` journey runs only on `claude-code` and `codex`. |
| `runCount` | How many times each agent runs the journey, 1 to 25 |
| `webSearch` | Optional. On by default. |
| `agentModels` | Optional. Each agent uses its default model when left out. |