Connect your AI.

The askcalls agent is a local MCP server that holds your keys. It searches, decrypts and ingests on your machine, so Claude, Cursor or any MCP client can work with your calls.

Add it to your client.

Claude Code

~
$ claude mcp add --scope user askcalls -- bunx askcalls mcp

Claude Desktop

Open Settings → Developer → Edit Config, or edit the file directly. Restart Claude Desktop after saving.

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "askcalls": {
      "command": "bunx",
      "args": ["askcalls", "mcp"]
    }
  }
}

Cursor

~/.cursor/mcp.json for all projects, or .cursor/mcp.json for one.

mcp.json
{
  "mcpServers": {
    "askcalls": {
      "command": "bunx",
      "args": ["askcalls", "mcp"]
    }
  }
}

VS Code

.vscode/mcp.json in your workspace.

.vscode/mcp.json
{
  "servers": {
    "askcalls": {
      "type": "stdio",
      "command": "bunx",
      "args": ["askcalls", "mcp"]
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json.

mcp_config.json
{
  "mcpServers": {
    "askcalls": {
      "command": "bunx",
      "args": ["askcalls", "mcp"]
    }
  }
}

Codex CLI

~
$ codex mcp add askcalls -- bunx askcalls mcp

Or in ~/.codex/config.toml.

config.toml
[mcp_servers.askcalls]
command = "bunx"
args = ["askcalls", "mcp"]

Desktop apps don't always inherit your shell's PATH. If a client can't start the server, replace bunx with its full path from which bunx.

Tools.

Transcripts are returned as untrusted content in a delimited field, never as instructions.

ToolWhat it does
search_callsKeyword, contact, tag, intent, date and semantic search, with decrypted results
get_callFull transcript and metadata, within a per-session decrypt budget
list_recent_callsRecent calls with decrypted metadata
ingest_call, ingest_batchImport a single call or a whole folder
star_call, tag_callUpdate stars and tags
list_tags, list_contactsYour decrypted catalogs

Bulk import.

Bulk import from the command line uses the same pipeline as the app.

~
$ askcalls ingest ./calls --manifest manifest.csv --backup-recordings

Remote MCP.

A remote MCP endpoint serves clients that can't run a local process. It has no keys, so it offers only inbox_upload, list_recent_calls (ids, days and durations) and account_status. Inbox uploads are visible to the server in transit, encrypted to your inbox public key on arrival, and indexed the next time one of your devices unlocks.

Create a personal access token in Settings → API and MCP, then:

~
$ claude mcp add --transport http askcalls-remote https://askcalls.com/api/mcp \
  --header "Authorization: Bearer ac_..."

For clients configured with JSON:

mcp.json
{
  "mcpServers": {
    "askcalls-remote": {
      "url": "https://askcalls.com/api/mcp",
      "headers": { "Authorization": "Bearer ac_..." }
    }
  }
}

Ask your calls anything.