Integration

Hamsa integration

Hamsa is an Arabic-first voice AI platform. Generate Arabic (many dialects) or English speech, transcribe media and turn transcripts into summaries, articles and social posts, browse and clone voices, build voice agents with knowledge bases and pronunciation dictionaries, place outbound calls and calling campaigns, manage phone numbers, and read call records, logs and analytics. Calls and campaigns ring real people and cost money; call records are personal data. Left out: web tools, their collections and project secrets (they carry credentials), adding a phone number (it takes a Twilio token or SIP password), streamed and base64 real-time audio, TTS history, jobs that need the key in the body, and deprecated v1 agent routes. Authentication is a Hamsa API key (Settings, API Keys) sent as 'Authorization: Token <key>'.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Hamsa.Built from the 70 Hamsa tools below, on the connection you add once.

What you can do with Hamsa

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Campaign, 5 operations

  • create_campaignCreate campaignPOSTCreates an outbound calling campaign: a voice agent calls every recipient from your phone number, now or at a scheduled date, within the allowed days and hours. Places real phone calls to real people.
  • delete_campaignDelete campaignDELETEDeletes a campaign (Hamsa marks it as deleted).
  • get_campaignGet campaignGETReturns one campaign with its settings and its recipients grouped by status (pending, queued, in progress, completed, failed, no answer), with attempts and errors. Personal data.
  • list_campaignsList campaignsGETLists your outbound calling campaigns with their status, schedule, calling window and number of recipients, optionally for one voice agent or matching a name or id.
  • rename_campaignRename campaignPATCHRenames a campaign; no other setting can be changed.

Job, 4 operations

  • delete_jobDelete jobDELETEDeletes a job.
  • get_job_resultGet job resultGETReturns a job with its status, cost, usage time, media URL and, once completed, its result (jobResponse: the transcript, the generated audio or the AI content). Use it to read the outcome of start_transcription or start_text_to_speech_job.
  • list_jobsList jobsGETLists the project's transcription or AI content jobs page by page (title, media URL and type, cost, status), sorted and optionally filtered by status or text.
  • rename_jobRename jobPATCHRenames a job.

Knowledge base, 4 operations

  • create_knowledge_base_itemsCreate knowledge base itemsPOSTAdds knowledge base items that voice agents answer from: TEXT (content of 50 to 5000 characters), URL (itemUrls, up to 100 web pages) or FILE (itemUrl to a PDF, DOCS, DOC, TXT, HTML or EPUB file).
  • delete_knowledge_base_itemDelete knowledge base itemDELETEDeletes a knowledge base item. Refused while the item is active in a voice agent: deactivate it first with set_knowledge_base_item_active.
  • get_knowledge_base_itemGet knowledge base itemGETReturns one knowledge base item: name, type, processing status and failure reason, content or URLs, size, word count and whether a voice agent uses it.
  • rename_knowledge_base_itemRename knowledge base itemPATCHRenames a knowledge base item.

Voice, 4 operations

  • create_cloned_voiceCreate cloned voicePOSTCreates a cloned voice from a sample recording: give its public URL, its exact transcription, a name, the language (and dialect for Arabic) and two tags (a gender and a style). Clone only a voice you are authorized to use.
  • delete_voiceDelete voiceDELETEDeletes a voice.
  • get_voiceGet voiceGETReturns one voice: name, language, dialect, tags, audio sample URL, avatar and whether it is a favourite or used by jobs or voice agents.
  • list_voicesList voicesGETLists text-to-speech voices page by page, for media jobs (source jobs) or voice agents (source voice_agents), filtered by name, gender, language, style, dialect, owner, favourite or recent use. Each voice has an audio sample URL.

Voice agent, 4 operations

  • create_voice_agentCreate voice agentPOSTCreates a voice agent: a phone or web assistant that talks with callers using a prompt or a flow graph, a voice, an LLM, call settings, knowledge base items, pronunciation dictionaries and an optional phone number.
  • get_voice_agentGet voice agentGETReturns one voice agent with its full configuration: conversation, voice, LLM settings, call settings, knowledge base and dictionary ids, phone number and flow graph.
  • list_voice_agentsList voice agentsGETLists voice agents page by page with their full configuration (conversation, voice, LLM settings, call settings, knowledge base and dictionary ids, phone number), filtered by name, type or language.
  • update_voice_agentUpdate voice agentPATCHUpdates a voice agent. Nested settings (conversation, voice, llm, callSettings) are merged; knowledge base and dictionary id lists replace the current ones; workflow nodes, edges and variables are each replaced when given.

Voice dictionary, 4 operations

  • create_voice_dictionaryCreate voice dictionaryPOSTCreates a pronunciation dictionary: words with the way a voice agent should pronounce them.
  • delete_voice_dictionaryDelete voice dictionaryDELETEDeletes a pronunciation dictionary permanently.
  • get_voice_dictionaryGet voice dictionaryGETReturns one pronunciation dictionary with all its words and pronunciations.
  • update_voice_dictionaryUpdate voice dictionaryPATCHRenames a pronunciation dictionary or replaces its words.

List, 3 operations

  • list_knowledge_base_itemsList knowledge base itemsGETLists knowledge base items with their type, processing status, size and usage, filtered by agent, activity, type, status, file extension or name, and sorted.
  • list_phone_numbersList phone numbersGETLists your phone numbers with their label, provider (TWILIO or SIP), SIP routing settings and assigned voice agent, optionally for one agent or provider.
  • list_voice_dictionariesList voice dictionariesGETLists your pronunciation dictionaries with their word count and whether a voice agent uses them, filtered by name, usage or agent.

Ai content, 2 operations

  • create_ai_contentCreate ai contentPOSTGenerates AI content from a completed transcription job: any of introduction, titles, summary, SEO web article, key topics, keywords, FAQ and social posts (Facebook, LinkedIn, X thread, Threads, YouTube description).
  • get_ai_contentGet ai contentGETReturns an AI content job with its status, cost and, once completed, the generated parts (summary, titles, keywords, FAQ, social posts and the others requested).

Log, 2 operations

  • get_call_logGet call logGETReturns one call log entry: level (ERROR, WARNING, INFO or DEBUG), category, message, payload and time.
  • list_call_logsList call logsGETLists the log entries of one call (level, category, message, payload, time), to understand what happened during it.

Phone number, 2 operations

  • delete_phone_numberDelete phone numberDELETERemoves a phone number from your Hamsa account.
  • get_phone_numberGet phone numberGETReturns one of your phone numbers: number, label, provider (TWILIO or SIP), SIP routing settings and the voice agent it is assigned to.

Toggle activation, 2 operations

  • set_knowledge_base_item_activeSet knowledge base item activePOSTActivates a knowledge base item for a voice agent, so the agent answers from it, or deactivates it (isActive false).
  • set_voice_dictionary_activeSet voice dictionary activePOSTActivates a pronunciation dictionary for a voice agent, or deactivates it (isActive false).

Url, 2 operations

  • add_knowledge_base_urlAdd knowledge base urlPOSTAdds a web page URL to an existing URL-type knowledge base item, which Hamsa then processes.
  • remove_knowledge_base_urlRemove knowledge base urlDELETERemoves one web page URL from a URL-type knowledge base item.

All, 1 operation

  • search_jobsSearch jobsPOSTLists the project's jobs of every type (transcription, translation, text to speech, AI content) with search, a status or type filter, sorting and offset paging.

Assign number, 1 operation

  • assign_phone_numberAssign phone numberPOSTAssigns one of your phone numbers to a voice agent, which then answers calls to that number.

By api key, 1 operation

  • get_projectGet projectGETReturns the Hamsa project the API key belongs to (id, name, creation date). Its data.id is the projectId that many other tools require.

Call, 1 operation

  • start_outbound_callStart outbound callPOSTPlaces a real phone call: the voice agent calls toNumber from one of your phone numbers and talks with the person who answers. Returns the call jobId. Calls cost money and reach a real person.

Cancel, 1 operation

  • cancel_campaignCancel campaignPOSTCancels a running or scheduled campaign so no further calls are placed. A cancelled campaign cannot be restarted.

Chart, 1 operation

  • get_usage_chartGet usage chartGETReturns the project's usage over time for a period: cost, requests, transcription and tokens, each as a list of dated values with a unit.

Clone, 1 operation

  • clone_voice_agentClone voice agentPOSTCreates a copy of a voice agent, one of yours or one of Hamsa's ready-made templates, optionally under a new name, and returns the new agent.

Conversation, 1 operation

  • get_conversationGet conversationGETReturns one call: status, duration, channel, caller number, recording URL, result and analysis, detailed logs and performance metrics. Personal data (the caller's number and what was said).

Current, 1 operation

  • get_default_voiceGet default voiceGETReturns the project's default text-to-speech voice for the current language, with its name, dialect, tags and audio sample URL.

Custom, 1 operation

  • create_custom_ai_contentCreate custom ai contentPOSTGenerates custom AI content from a completed transcription job: each part has a title, a language (ar or en) and your own prompt. Give webhookUrl to receive the result when it is ready.

Dialect, 1 operation

  • list_dialectsList dialectsGETLists the Arabic dialects available for text-to-speech voices, with their id, name and language code; the id is the dialectId other voice tools take.

Estimate, 1 operation

  • estimate_ai_content_costEstimate ai content costGETReturns the estimated cost of generating AI content from a transcription job, before you run create_ai_content.

Export, 1 operation

  • export_conversationsExport conversationsGETExports a voice agent's calls for a period, optionally one status, as an Excel file. Personal data.

Extract transcription, 1 operation

  • transcribe_voice_sampleTranscribe voice samplePOSTTranscribes a voice sample recording and returns the text, to use as audioTranscription when cloning or previewing a voice.

Favourite, 1 operation

  • set_voice_favouriteSet voice favouritePOSTMarks a voice as favourite, or removes the mark, for quicker filtering in list_voices.

Minimal list, 1 operation

  • list_callsList callsGETLists voice agent calls page by page with status, agent, duration, channel and the phone numbers involved; filter by agent, statuses and a time range in UTC epoch milliseconds. Personal data.

Number, 1 operation

  • get_usage_statisticsGet usage statisticsGETReturns the project's usage totals for a period: tokens, transcription time, price and request count, each with its unit.

Overview, 1 operation

  • get_overview_analyticsGet overview analyticsGETReturns call volume analytics for one voice agent or all: live and total sessions, average and total duration, messages per session, transfers to a human, calls over time and by duration.

Pause, 1 operation

  • pause_campaignPause campaignPOSTPauses a running or scheduled campaign; resume_campaign continues it.

Performance, 1 operation

  • get_performance_analyticsGet performance analyticsGETReturns latency analytics for one voice agent or all: average speech recognition, LLM and speech generation times, overall latency and the share of sessions with errors.

Preload, 1 operation

  • preload_cloned_voicePreload cloned voicePOSTLoads a cloned voice so generate_speech and start_text_to_speech_job can use it as speaker or voiceId. Needed once per voice; doing it at start-up lowers latency.

Preview, 1 operation

  • preview_cloned_voicePreview cloned voicePOSTGenerates a short preview clip of a voice that would be cloned from a sample recording, speaking your text, and returns the clip's URL. Nothing is saved; create_cloned_voice saves the voice.

Resume, 1 operation

  • resume_campaignResume campaignPOSTResumes a paused campaign, which goes on placing its calls.

Retry, 1 operation

  • retry_campaignRetry campaignPOSTCalls again the recipients of a campaign whose call failed or went unanswered. Places real phone calls.

Satisfaction, 1 operation

  • get_satisfaction_analyticsGet satisfaction analyticsGETReturns satisfaction analytics for one voice agent or all: NPS, CSAT, sentiment split, first call resolution and escalation rate, as percentages.

Size info, 1 operation

  • get_knowledge_base_sizeGet knowledge base sizeGETReturns the total size of your knowledge base items and the size limit of your plan, both in bytes.

Terminate, 1 operation

  • terminate_conversationTerminate conversationGETEnds a call that is in progress or pending, hanging up on the person on the line.

Text to speech, 1 operation

  • start_text_to_speech_jobStart text to speech jobPOSTStarts a text-to-speech job with a voice and returns the job, whose jobResponse carries the generated audio file once it completes. Give webhookUrl to receive the result. A cloned voice must be loaded first with preload_cloned_voice.

Transcribe, 1 operation

  • start_transcriptionStart transcriptionPOSTStarts a transcription job for an audio or video URL (Arabic or English) and returns its jobId. The job runs in the background: read the result with get_job_result, or give webhookUrl to receive it.

Tt, 1 operation

  • generate_speechGenerate speechPOSTConverts text to speech in one call and returns the WAV audio as a file. Choose a speaker voice that fits the dialect (Arabic dialects or English); a cloned voice must be loaded first with preload_cloned_voice.

Unassign, 1 operation

  • unassign_phone_numberUnassign phone numberPOSTDetaches a phone number from the voice agents it is assigned to.

View, 1 operation

  • get_jobGet jobGETReturns one transcription or AI content job: title, type, status, cost, model, source media URL and creation details.

Use Hamsa from Claude Code, Cursor or Codex

Connect Hamsa in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Hamsa operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Hamsa

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Hamsa once

    Add your Hamsa connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Hamsa integration FAQ

What can you do with the Hamsa integration?

LiveContext exposes 70 operations on Hamsa, covering campaign, job, knowledge base and voice.

Popular integrations

Browse the whole catalog