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

# Set up Cekura in your AI assistant

> Install Cekura Skills and MCP so your AI assistant can design, run, and improve voice-agent evaluations.

export const CopyPageButton = () => {
  if (typeof window !== 'undefined') {
    setTimeout(function () {
      if (document.getElementById('ck-tools')) return;
      var anchor = document.getElementById('content-area') || document.querySelector('.mdx-content');
      if (!anchor) return;
      if (!document.getElementById('ck-style')) {
        var s = document.createElement('style');
        s.id = 'ck-style';
        s.textContent = '#ck-tools{position:absolute;top:6px;right:0;z-index:100;font-family:inherit;}' + '.ck-row{display:inline-flex;align-items:stretch;border:1px solid rgba(0,0,0,0.15);border-radius:8px;overflow:hidden;background:#fff;}' + ':root.dark .ck-row{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.12);}' + '.ck-btn{padding:5px 12px;border:none;background:none;cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;color:#374151;}' + ':root.dark .ck-btn{color:#d1d5db;}' + '.ck-btn:hover{background:rgba(0,0,0,0.04);}' + ':root.dark .ck-btn:hover{background:rgba(255,255,255,0.06);}' + '.ck-chevron{padding:5px 8px;border:none;background:none;cursor:pointer;font-size:14px;font-family:inherit;color:#374151;}' + ':root.dark .ck-chevron{color:#d1d5db;}' + '.ck-chevron:hover{background:rgba(0,0,0,0.04);}' + ':root.dark .ck-chevron:hover{background:rgba(255,255,255,0.06);}' + '.ck-divider{width:1px;background:rgba(0,0,0,0.12);flex-shrink:0;}' + ':root.dark .ck-divider{background:rgba(255,255,255,0.12);}' + '.ck-dd{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:#fff;border:1px solid rgba(0,0,0,0.12);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,0.1);padding:4px;display:none;z-index:200;}' + ':root.dark .ck-dd{background:#1f2937;border-color:rgba(255,255,255,0.1);box-shadow:0 4px 16px rgba(0,0,0,0.35);}' + '.ck-item{display:block;width:100%;padding:7px 12px;border:none;background:none;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit;text-align:left;color:#374151;}' + ':root.dark .ck-item{color:#d1d5db;}' + '.ck-item:hover{background:rgba(0,0,0,0.05);}' + ':root.dark .ck-item:hover{background:rgba(255,255,255,0.07);}';
        document.head.appendChild(s);
      }
      var wrap = document.createElement('div');
      wrap.id = 'ck-tools';
      var row = document.createElement('div');
      row.className = 'ck-row';
      var mainBtn = document.createElement('button');
      mainBtn.className = 'ck-btn';
      mainBtn.textContent = 'Copy page';
      var divider = document.createElement('span');
      divider.className = 'ck-divider';
      var chevron = document.createElement('button');
      chevron.className = 'ck-chevron';
      chevron.textContent = '▾';
      var dd = document.createElement('div');
      dd.className = 'ck-dd';
      function closeDD() {
        dd.style.display = 'none';
      }
      function openDD() {
        dd.style.display = 'block';
      }
      chevron.onclick = function (e) {
        e.stopPropagation();
        if (dd.style.display === 'block') {
          closeDD();
        } else {
          openDD();
        }
      };
      document.addEventListener('click', function (e) {
        if (!e.target.closest('#ck-tools')) {
          closeDD();
        }
      });
      document.addEventListener('keydown', function (e) {
        if (e.key === 'Escape') {
          closeDD();
        }
      });
      function makeItem(label, fn) {
        var b = document.createElement('button');
        b.className = 'ck-item';
        b.textContent = label;
        b.onclick = function () {
          fn();
          closeDD();
        };
        return b;
      }
      function getMarkdown() {
        var walk = function (node) {
          if (!node) return '';
          if (node.nodeType === 3) return node.textContent || '';
          if (node.nodeType !== 1) return '';
          var tag = node.tagName.toLowerCase();
          var skip = ['script', 'style', 'svg', 'noscript', 'button', 'iframe'];
          if (skip.indexOf(tag) !== -1) return '';
          if (node.id === 'ck-tools') return '';
          var ch = Array.from(node.childNodes).map(walk).join('');
          if (tag === 'h1') return '\n# ' + ch.trim() + '\n\n';
          if (tag === 'h2') return '\n## ' + ch.trim() + '\n\n';
          if (tag === 'h3') return '\n### ' + ch.trim() + '\n\n';
          if (tag === 'p') return '\n' + ch.trim() + '\n\n';
          if (tag === 'pre') return '\n```\n' + node.textContent.trim() + '\n```\n\n';
          if (tag === 'li') return '- ' + ch.trim() + '\n';
          if (tag === 'code') return '`' + ch.trim() + '`';
          return ch;
        };
        var content = document.querySelector('.mdx-content') || document.getElementById('content-area') || document.body;
        return walk(content).replace(/\n\n\n+/g, '\n\n').trim();
      }
      function copyMd() {
        var md = getMarkdown();
        navigator.clipboard.writeText(md).then(function () {
          mainBtn.textContent = 'Copied!';
          setTimeout(function () {
            mainBtn.textContent = 'Copy page';
          }, 2000);
        });
      }
      function viewMd() {
        var md = getMarkdown();
        var safe = md.split('&').join('&amp;').split('<').join('&lt;').split('>').join('&gt;');
        var html = '<!DOCTYPE html><html><head><meta charset="utf-8"><style>body{font-family:monospace;max-width:860px;margin:40px auto;padding:0 24px;line-height:1.7;white-space:pre-wrap;word-wrap:break-word}</style></head><body>' + safe + '</body></html>';
        window.open(URL.createObjectURL(new Blob([html], {
          type: 'text/html'
        })), '_blank');
      }
      function openClaude() {
        var prompt = 'Can you read this Cekura docs page ' + window.location.href + ' so I can ask you questions?';
        window.open('https://claude.ai/new?q=' + encodeURIComponent(prompt), '_blank');
      }
      mainBtn.onclick = copyMd;
      dd.appendChild(makeItem('Copy page', copyMd));
      dd.appendChild(makeItem('View as Markdown', viewMd));
      dd.appendChild(makeItem('Open in Claude', openClaude));
      row.appendChild(mainBtn);
      row.appendChild(divider);
      row.appendChild(chevron);
      wrap.appendChild(row);
      wrap.appendChild(dd);
      anchor.style.position = 'relative';
      anchor.insertBefore(wrap, anchor.firstChild);
    }, 50);
  }
  return null;
};

<CopyPageButton />

<Note>
  Recommended setup: install both **Cekura Skills** and the **Cekura MCP server**.

  Skills teach your assistant how to work with Cekura. MCP lets it safely act in your Cekura workspace.
</Note>

## Set up

Install the Cekura plugin for your assistant — it bundles Skills **and** MCP. Pick your tab.

<Tabs>
  <Tab title="Claude Code">
    The plugin bundles Skills, slash commands, and MCP config in one install. In a Claude Code session, run:

    ```plaintext theme={null}
    /plugin marketplace add cekura-ai/cekura-skills
    /plugin install cekura@cekura-skills
    ```

    The plugin already includes the MCP server **config**; `/setup-mcp` signs you in (OAuth) and verifies the connection. Once the plugin loads (restart the session if prompted), run:

    ```plaintext theme={null}
    /setup-mcp
    ```

    OAuth opens a browser to sign in — no API key. Then run `/cekura-onboarding` for a guided first run. [Full guide →](/mcp/claude-code-guide)
  </Tab>

  <Tab title="Claude Desktop">
    The plugin bundles Skills + MCP (Skills work in Chat and Cowork). In Claude Desktop:

    1. Open **Customize → Plugins**
    2. **Personal plugins → + → Add marketplace → Add from a repository**, and enter `cekura-ai/cekura-skills`
    3. Install **cekura**, and authorize MCP via OAuth when prompted

    [Full guide →](/mcp/claude-desktop-guide)
  </Tab>

  <Tab title="Cursor">
    The plugin includes Skills + MCP. In Cursor:

    1. Open **Settings → Plugins → Team Marketplaces → Add Marketplace → Import from Repo**
    2. Enter `https://github.com/cekura-ai/cekura-skills`
    3. Install **cekura**, and authorize MCP via OAuth when prompted

    [Full guide →](/mcp/cursor-guide)
  </Tab>

  <Tab title="Codex">
    The plugin bundles Skills + MCP. Add the marketplace, install, then authenticate:

    ```bash theme={null}
    codex plugin marketplace add cekura-ai/cekura-skills
    codex plugin add cekura@cekura
    codex mcp login cekura
    ```

    `codex mcp login` opens a browser for OAuth — no API key. [Full guide →](/mcp/codex-guide)
  </Tab>

  <Tab title="Gemini CLI">
    Install the extension — it includes the Cekura MCP server and context:

    ```bash theme={null}
    gemini extensions install https://github.com/cekura-ai/cekura-skills
    ```

    OAuth runs on first use of a Cekura tool. [Details →](/mcp/other-agents#gemini-cli)
  </Tab>
</Tabs>

## Which setup fits you?

| Setup                                      | Best for                                               | What you get                                                                     |
| ------------------------------------------ | ------------------------------------------------------ | -------------------------------------------------------------------------------- |
| ⭐ **Native plugin**                        | Claude Code, Claude Desktop, Cursor, Codex, Gemini CLI | Skills **+** MCP, auto-configured (Claude Code also adds slash commands + hooks) |
| [**Manual (Skills + MCP)**](/mcp/mcp-only) | Clients without a plugin                               | Install Skills, then connect MCP separately                                      |
| [**Skills only**](/mcp/skills)             | Any Agent Skills client, no live tools                 | Workflow guidance via `npx skills add`; no MCP                                   |
| [**Behavior preset**](/mcp/other-agents)   | Windsurf & assistants without a plugin                 | Domain knowledge via rules / `AGENTS.md`; no MCP                                 |

Per-client install commands are in **Set up** above. Not sure? Use the plugin — it's the least setup.

## Verify your setup

After setup, ask your assistant:

```plaintext theme={null}
Use the Cekura skills and MCP. List my Cekura agents, pick one, and propose 3 evaluators I should create first. Do not create anything until I approve.
```

You should see two things:

* The assistant can access your Cekura workspace and list real agents.
* The assistant reasons in Cekura terms like evaluators, metrics, expected outcomes, test profiles, and run results.

<Note>
  On an **MCP-only** setup (no Skills), verify with just `List my Cekura agents` — you'll get live tool access but not the workflow guidance that Skills add.
</Note>

## Why install both?

<CardGroup cols={2}>
  <Card title="Skills add judgment" icon="sparkles" color="#A6A7EA">
    Skills tell your assistant what good Cekura work looks like: how to design evaluators, choose metrics, debug failing runs, and improve prompts safely.
  </Card>

  <Card title="MCP adds action" icon="plug" color="#A6A7EA">
    MCP gives your assistant permissioned tools to list agents, create metrics, generate evaluators, run tests, inspect transcripts, and analyze results.
  </Card>
</CardGroup>

With Skills only, your assistant can advise. With MCP only, your assistant can call tools. With both, it can choose the right workflow and complete it.

## What you can ask next

<AccordionGroup>
  <Accordion title="First-time onboarding">
    ```plaintext theme={null}
    I'm new to Cekura. Walk me through setting up my first agent, metrics, evaluators, and test run.
    ```
  </Accordion>

  <Accordion title="Create evaluator coverage">
    ```plaintext theme={null}
    Read my agent's purpose and propose a coverage plan with workflow, edge-case, and regression evaluators. Wait for approval before creating them.
    ```
  </Accordion>

  <Accordion title="Run scenarios over the right connection">
    Each `scenarios_run_*` tool drives one connection type, and only works if that connection is configured on the agent. Common ones include `scenarios_run_voice` (telephony), `scenarios_run_sip` (SIP), `scenarios_run_vapi_webrtc` / `scenarios_run_retell_webrtc` (provider WebRTC), and `scenarios_run_text` (chat) — with more for ElevenLabs, LiveKit, Pipecat, Agora, and raw WebSocket. Retrieve the agent first and check `provider.type` and the `telephony` block to pick the right one.
  </Accordion>

  <Accordion title="Design better metrics">
    ```plaintext theme={null}
    Create a metric that checks whether the agent resolves the caller's issue without escalating unnecessarily. Show me the rubric before saving.
    ```
  </Accordion>

  <Accordion title="Triage failed tests">
    ```plaintext theme={null}
    Pull the failures from my latest Cekura run, group them by root cause, and tell me which ones are real bugs versus flaky runs.
    ```
  </Accordion>
</AccordionGroup>

## Reference

<CardGroup cols={2}>
  <Card title="Skills Catalog" icon="sparkles" href="/mcp/skills">
    See every Cekura Skill, install path, update path, and compatibility note.
  </Card>

  <Card title="Manual setup (Skills + MCP)" icon="wrench" href="/mcp/mcp-only">
    For clients without a plugin: install Skills, then OAuth/API-key MCP config for Claude Code, Claude Desktop, Cursor, VS Code, and Codex.
  </Card>
</CardGroup>
