> ## 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.

# Agent Integration

> How to use Cekura from AI coding agents like Claude Code, Cursor, and VS Code Copilot

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 />

Cekura is designed to work seamlessly with AI coding agents. Whether you're using Claude Code, Cursor, or VS Code, you can manage your voice agent testing and observability directly from your development environment.

## Integration Options

<CardGroup cols={2}>
  <Card title="MCP & Skills" icon="plug" href="/mcp/overview">
    Install Cekura Skills so your assistant knows Cekura workflows, plus the MCP server so it can act on your workspace. Recommended setup.
  </Card>

  <Card title="AGENTS.md preset" icon="file-code" href="/documentation/guides/agents-md-template">
    Portable fallback: drop an AGENTS.md file in your repo for assistants that don't load Agent Skills.
  </Card>
</CardGroup>

## Quick Setup

### 1. Install Skills, then connect MCP

First install Cekura Skills so your assistant knows Cekura workflows:

```bash theme={null}
npx skills add cekura-ai/cekura-skills --all
```

<Note>
  Claude Code users: install the plugin instead — it bundles Skills, slash commands, and MCP config in one step. See [MCP & Skills setup](/mcp/overview).
</Note>

Then connect the MCP server so your assistant can act on your workspace:

<Tabs>
  <Tab title="Claude Code">
    ```bash theme={null}
    claude mcp add --transport http cekura --scope user https://api.cekura.ai/mcp
    ```

    OAuth opens a browser to sign in — no API key needed. For API-key auth, see [API-key setup](/mcp/mcp-only#api-key-setup).
  </Tab>

  <Tab title="Cursor / VS Code">
    Add to your MCP config (see [manual setup](/mcp/mcp-only)):

    ```json theme={null}
    {
      "mcpServers": {
        "cekura": {
          "command": "npx",
          "args": ["-y", "mcp-remote", "https://api.cekura.ai/mcp"]
        }
      }
    }
    ```
  </Tab>
</Tabs>

### 2. Add AGENTS.md to Your Repo

Drop an [AGENTS.md template](/documentation/guides/agents-md-template) into your project root. This teaches any AI assistant the Cekura-specific workflows and terminology for your project.

### 3. Discover Documentation

Cekura's documentation is available in agent-friendly formats:

| Resource          | URL                                    | Purpose                                       |
| ----------------- | -------------------------------------- | --------------------------------------------- |
| **llms.txt**      | `https://docs.cekura.ai/llms.txt`      | Page index with descriptions for AI discovery |
| **llms-full.txt** | `https://docs.cekura.ai/llms-full.txt` | Full documentation content in markdown        |
| **OpenAPI Spec**  | `https://api.cekura.ai/api/schema/`    | Complete API specification                    |

## Common Agent Workflows

### Test Your Agent After a Deploy

```plaintext theme={null}
User: "Run our regression tests against the staging agent"

AI: [Uses list-agents, then scenarios-run-scenarios-create]
"I've kicked off 12 scenarios against your staging agent.
Results will be ready in ~3 minutes. I'll check the results."
```

### Create Metrics from Agent Description

```plaintext theme={null}
User: "Generate quality metrics for our customer support agent"

AI: [Uses metrics-generate-metrics-create]
"I've generated 5 metrics based on the agent's system prompt:
1. Greeting Quality (boolean)
2. Issue Resolution (boolean)
3. Empathy Score (numeric 1-5)
4. Policy Compliance (boolean)
5. Call Wrap-up Quality (boolean)"
```

### Review Call Quality

```plaintext theme={null}
User: "Show me the worst performing calls from last week"

AI: [Uses call-logs-list with filters]
"Here are the 5 lowest-scoring calls from the past 7 days..."
```

### Generate Evaluators from Real Calls

```plaintext theme={null}
User: "Create test scenarios from our recent support calls"

AI: [Uses call-logs-create-scenarios-create]
"I've created 8 test scenarios from your recent call logs.
Each scenario captures the conversation flow and expected outcomes."
```

## Best Practices

<AccordionGroup>
  <Accordion title="Start with read-only operations">
    Begin with listing agents, viewing results, and reading call logs before using write operations like creating metrics or running scenarios.
  </Accordion>

  <Accordion title="Use project scoping">
    If you have multiple projects, always specify the `project_id` parameter to scope your queries. This prevents cross-project data leakage.
  </Accordion>

  <Accordion title="Monitor context window usage">
    Large responses (detailed transcripts, full result sets) can consume significant context. Use pagination parameters (`page`, `limit`) to control response size.
  </Accordion>

  <Accordion title="Combine with CI/CD">
    Use Cekura's [GitHub Actions integration](/documentation/guides/github-actions-ci-cd) alongside MCP to run evals on every PR and review results from your agent.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Manual setup (Skills + MCP)" icon="gear" href="/mcp/mcp-only">
    Install Skills, then configure the MCP server — for clients without a plugin
  </Card>

  <Card title="AGENTS.md Template" icon="file" href="/documentation/guides/agents-md-template">
    Copy-paste template for your project
  </Card>

  <Card title="API Reference" icon="book" href="/api-reference">
    Complete API documentation
  </Card>

  <Card title="Testing Guide" icon="flask" href="/documentation/guides/testing-agents/overview">
    Learn how to create and run evaluators
  </Card>
</CardGroup>
