PlaceCall

io.github.voygr-techv1.0.0更新於 Oct 2, 2026

Real phone calls to US businesses: book, ask, get quotes. Returns outcome and transcript.

已驗證Streamable HTTP可網頁執行Location & LifestyleCommunication & Collaboration

概覽

AI 產生的概覽

讓助理撥打美國商家的真實電話,完成訂位、詢問或詢價,並回傳結果與通話紀錄。

功能
PlaceCall 讓助理撥打美國商家電話,並用自然語言描述任務,例如訂位、取消或改期、查證資訊、查詢庫存或索取報價。它會處理語音選單與等待接通,必要時可在通話中提問,並回傳 17 種經驗證的結果之一,以及通話紀錄和錄音。在沒有電話號碼時,它也能推薦地點,並支援同時聯絡多家商家。
適用情境
當任務必須透過真實電話聯絡美國商家、而不是網頁表單或電子郵件時使用,例如訂位、訂單追蹤、庫存查詢或價格詢問。當你只有某家店的描述、需要先找出候選商家再致電時也適用。
執行需求
遠端 MCP 端點 streamable HTTP,不需要本機執行環境或安裝套件。驗證方式為 OAuth 登入,或在 X-API-Key 標頭中送出 API 金鑰(也可用 Authorization: Bearer)。金鑰由服務商結帳頁面以電子郵件寄送;前 250 通電話免費,之後需付費加值。需要能連線至 api.voygr.tech。
安裝前請注意
通話是真實的,會撥打真實電話並被錄音;錄音與通話紀錄保留 90 天。只撥打你有權撥打的號碼,且僅限美國目的地。X-API-Key 是可計費的憑證:不要貼到聊天、shell 歷史或提交到檔案,支援時優先使用 OAuth。通話與地點建議共用同一額度餘額,請求時會凍結一筆可退還的預授權,因此即使餘額看似足夠也可能回傳 402。部分用戶端需要明確把 api.voygr.tech 加入網域允許清單,否則通話會被阻擋。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 PlaceCall,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "placecall": {
      "type": "http",
      "url": "https://api.voygr.tech/mcp"
    }
  }
}

README

PlaceCall ☎️

The internet has APIs. The real world has phone numbers.

Give your agent a voice to call any US business, handle reservations, gather information, get quotes. Handles IVRs & hold. Returns outcome + transcript. First 250 calls free.

sh
curl -s -X POST https://api.voygr.tech/calls \  -H "X-API-Key: $PLACECALL_API_KEY" -H "Content-Type: application/json" \  -H "X-Client-Surface: gh-repo" \  -H "X-Client-Agent: ${CLAUDECODE:+claude-code}${CURSOR_AGENT:+cursor}${CODEX_SANDBOX:+codex}${GEMINI_CLI:+gemini-cli}" \  -d '{"target_phone":"+1XXXXXXXXXX","brief":"Call this restaurant and ask what time the kitchen closes tonight.","language":"en"}'

Authentication: every request carries your key in the X-API-Key header. Get one at https://api.voygr.tech/checkout - it arrives by email.

What PlaceCall does

Give PlaceCall a US number (or a list) and a task in plain English - from making an inquiry to requesting a quote or completing a booking - and it dials, navigates IVRs and hold, talks to a business, and returns a verified outcome + transcript + recording.

No number? Just describe the place: "a romantic restaurant in Chicago, Saturday 8pm". PlaceCall finds candidates, explains why it picked them, and writes the call brief for you.

Put the full job in the brief - what to ask, who it's for, names, dates, party size, callback number, and desired outcome. The agent reads the brief, then gets things done. If necessary - agents will ask questions mid-call.

What your agents can finally do

  • 🍽️ Book / cancel / reschedule tables and appointments
  • 📦 Verify info, follow up on orders, check stock, get quotes
  • ⚡️ Contact many businesses at once
  • 📍 Recommend the best venue, service, or vendor when you don't have a number
  • ✅ Report exactly what happened, raise a question mid-call if needed

What you get back

Every call returns one of 17 verified outcomes, plus the full transcript and recording - including clear failure reasons like dropped calls, busy lines, voicemail, or wrong numbers.

Why developers use PlaceCall

Built for agents that need to get shit done. Built by developers who mapped the world - ex-Google Maps & Search team.

🎁 Your first 250 calls are on us.

If PlaceCall is useful, drop us a ⭐ - it helps a lot.

Install

Installing the skill needs no key - it just teaches your agent how to call the API. You add your key separately (next section) before placing real calls.

Claude Code (recommended)

Two commands, no shell, no git - and it auto-updates from this repo:

/plugin marketplace add voygr-tech/placecall/plugin install placecall@placecall

Claude Code asks where to install it - choose user scope ("Install for you") unless you specifically want it confined to one repository. The skill then answers to /placecall:placecall, and Claude reaches for it on its own whenever you ask to call someone.

Claude Code, without the plugin

sh
git clone https://github.com/voygr-tech/placecall && cd placecall./install.sh     # copies skills/placecall/SKILL.md -> ~/.claude/skills/placecall/

install.sh is a tiny convenience script - it only copies skills/placecall/SKILL.md into your skills dir (no network, no other side effects); you can also copy it by hand. Then start a fresh Claude Code session (skills load at startup). Note that a copy never updates itself - if you want new skills and fixes as we ship them, prefer the plugin above.

Cowork

Same package as the Claude Code plugin, no terminal at all:

  1. Customize > Plugins > Add marketplace
  2. Paste voygr-tech/placecall
  3. Click Install on the PlaceCall card

Auto-updates from this repo, like the Code plugin.

Then do both of these, in ~/.claude/settings.json. Cowork has no terminal, so the export in the next section has nothing to run in, and the Bash sandbox blocks our API until you allow it:

json
{  "env": { "PLACECALL_API_KEY": "<your key>" },  "sandbox": { "network": { "allowedDomains": ["api.voygr.tech"] } }}

Restart Cowork afterwards. Why each half matters:

  • env puts the key somewhere that survives a reboot. Setting it in a shell does not reach a desktop app, which never sees that shell.
  • allowedDomains pre-allows api.voygr.tech. Claude Code pre-allows no domains, so without this you get a permission prompt on the first call, and if your organisation sets strictAllowlist or allowManagedDomainsOnly the call is blocked outright with no prompt. That is the "deep admin setting" people hit.

Your key sits in plaintext in that file, same trust level as the 600 env file in the next section. chmod 600 ~/.claude/settings.json if you want the file permissions to match.

claude.ai chat

Works on every plan via a custom connector with sign-in. No key to copy.

Setup. Personal plans: Settings > Connectors > Add custom connector. Team/Enterprise: an Owner adds it once under Organization settings > Connectors, and each member then signs in with their own PlaceCall account.

  1. Name it PlaceCall, URL https://api.voygr.tech/mcp. Keep the sign-in setting Claude detects.
  2. Add, then sign in with Google or email. On first sign-in you accept the Terms of Service and Privacy Policy, and a PlaceCall account is created with free credits.
  3. Allow access. PlaceCall appears in a chat's tools menu, where it can find places worth calling, place a call (it always confirms first), and fetch the result.

Prefer one API key for a whole workspace? Add the connector with No sign-in and a Request header x-api-key carrying your key. All calls then bill to that key.

ChatGPT

Add PlaceCall as a custom app in ChatGPT on the web. Custom apps depend on your ChatGPT plan.

  1. Open Plugins, then + > Create plugin > Create MCP App.
  2. Name it PlaceCall, server URL https://api.voygr.tech/mcp, authentication OAuth. Leave the OAuth settings ChatGPT discovers as they are, accept the custom-app notice, and Create.
  3. Sign in with Google or email. On first sign-in you accept the Terms of Service and Privacy Policy, and a PlaceCall account is created with free credits.
  4. In a chat, pick PlaceCall from the tools menu.

Any MCP client (Cursor, Windsurf, MCP Inspector, ...)

Point the client at https://api.voygr.tech/mcp (streamable HTTP transport). It is listed in the official MCP Registry as io.github.voygr-tech/placecall. Sign in with OAuth where your client supports it, or send your key on every request - either header works:

X-API-Key: <your key>

or Authorization: Bearer <your key>.

Claude Code keeps its own MCP config (it does not pick up claude.ai connectors), so add it there with one command:

sh
claude mcp add --transport http --scope user placecall https://api.voygr.tech/mcp \  --header "X-API-Key: <your key>"

--scope user makes it available in every project. The plugin at the top of this page is still the richer path for Claude Code - it carries the full skill, not just the three tools.

Codex

Type this inside Codex, not in your shell. $skill-installer is a system skill bundled with Codex, so there is nothing to set up first:

$skill-installer install the skill at https://github.com/voygr-tech/placecall/tree/main/skills/placecall and name it placecall

It is a skill rather than a command, so plain English works and is what it expects. It runs the install for you and reports where the skill landed. No restart needed, it is available on your next turn, and it answers to $placecall.

If the phrasing above is not understood, this is the script it runs, and you can run it yourself from a normal shell:

sh
python3 ~/.codex/skills/.system/skill-installer/scripts/install-skill-from-github.py \  --url https://github.com/voygr-tech/placecall/tree/main/skills/placecall \  --name placecall

Two things worth knowing. The installer refuses to overwrite, so if you already have a placecall (or older callwright) skill in ~/.codex/skills, delete it first or the install aborts. And don't run install.sh on Codex, that is the Claude Code path.

The skill folder moved from skills/call to skills/placecall in October 2026, so an install line that still says .../tree/main/skills/call no longer finds it. A copy you already installed keeps working and still answers to $placecall. To pick up newer versions, delete it and reinstall from the skills/placecall URL above.

On older Codex without $skill-installer, or as an alternative on any Codex, paste this repo's AGENTS.md into your project's AGENTS.md.

Hermes Agent

One command, and it prompts for the key rather than taking it on the command line, so nothing lands in your shell history:

sh
hermes mcp add placecall --url https://api.voygr.tech/mcp/ --auth header

Answer Y to "Does this server require authentication?", paste the key at the masked prompt, and Y to enable all four tools. Hermes stores the key in ~/.hermes/.env (as MCP_PLACECALL_API_KEY) and writes only a ${...} reference into config.yaml, so the value is never in the config file. Verify with hermes mcp test placecall, then start a new session - tools load at session start.

Do not use the skill route on Hermes. hermes skills install placecall is refused by Hermes's own scanner: a skill that sends an API key with curl to any non-loopback host is a critical finding by that scanner's design, which is what our skill does on every call. MCP has no shell and no env var in the request, so the rule does not apply. The trailing slash on the URL matters.

Gemini CLI

This repo is also a Gemini CLI extension: the skill plus the PlaceCall MCP server. Install it from your shell:

sh
gemini extensions install https://github.com/voygr-tech/placecall

The install asks for your PlaceCall API key and keeps it in the system keychain (change it later with gemini extensions config placecall). Gemini hands that stored key to the MCP server only. The skill's curl commands run in your shell and read PLACECALL_API_KEY from there, so export it as well (see Get a key). If the key is exported but not stored, the MCP server picks it up from your environment too.

Cursor

This repo is also a Cursor plugin (.cursor-plugin/plugin.json): the skill plus the PlaceCall MCP server at https://api.voygr.tech/mcp, which signs you in with OAuth, so the plugin holds no key. To load it before it is in the Cursor Marketplace, clone it into Cursor's local plugins folder and run Developer: Reload Window:

sh
git clone https://github.com/voygr-tech/placecall ~/.cursor/plugins/local/placecall

The skill's curl commands read PLACECALL_API_KEY from the environment Cursor's agent runs in. To send a key to the MCP server instead of signing in, see Any MCP client.

Any agent / plain shell

No install needed - the API is just HTTP. skills/placecall/SKILL.md is the full reference; a model with a shell tool can place calls straight from it.

No shell on your side? Assistants with their own computer (e.g. Meta Muse) integrate from this repo directly: paste the repo URL into the chat and ask it to use PlaceCall for phone calls. If it offers secure credential storage for the API key, use that - never paste the key into the chat itself.

Known to work this way: Meta Muse, OpenClaw (DeepSeek backend). Hermes needs the MCP route above rather than the skill. If you are an agent building this integration, send X-Client-Surface: <your-platform> on every request so we can see which surfaces need love.

Apify Store (no code, a whole list)

Have a list of businesses rather than an agent? PlaceCall on the Apify Store calls every business on it, asks the questions you set, and returns one row per call. No PlaceCall key: Apify runs it and bills it.

  1. Open the Actor and press Try for free (you need an Apify account).
  2. Bring the list: upload a CSV, link a Google Sheet, paste rows, or use another Actor's dataset, for example Google Maps results.
  3. Type your questions, keep Check my list, don't call ticked and press Start. You see exactly what each business would be asked, for free.
  4. Accept the PlaceCall terms, untick the check and start again.

$0.10 for each call that reaches a real conversation; unanswered calls, voicemail and busy lines are free. The first 10 calls on each Apify account are free, then a paid Apify plan is needed. Agents connected to the Apify MCP server can find and run it too.

Get a key (self-serve) and set it

Installing the skill does not need a key; placing calls does. Keys are self-serve - no need to contact anyone:

  1. Open https://api.voygr.tech/checkout?src=gh-repo and click "Get free API key" (name + email).
  2. The key arrives by email (it is never shown in the browser or API response). What a new key includes, and the current credit rates, are shown on the checkout page.
  3. Lost the key? https://api.voygr.tech/recover emails you a new one.
  4. Need more credits? Top up on the same https://api.voygr.tech/checkout?src=gh-repo page (Stripe-hosted payment).

Then set the key in your shell:

Quick way - just export it for the current session:

sh
export PLACECALL_API_KEY="<your key>"

Nicer way - save it once (no echo to screen, 600 perms) and load it per session:

sh
mkdir -p ~/.codexread -rsp "PLACECALL_API_KEY: " KEY; echoprintf 'export PLACECALL_API_KEY=%q\n' "$KEY" > ~/.codex/placecall.envchmod 600 ~/.codex/placecall.envunset KEY# then, in any new shell where you want to place calls:source ~/.codex/placecall.env

No shell at all? A desktop app never sees your shell environment, so neither of the above reaches it. Put the key in the env block of ~/.claude/settings.json instead, which survives restarts. See the Cowork section, which also covers the sandbox domain allowlist you need there.

Verify (prints your quota, never the key):

sh
curl -s -H "X-API-Key: $PLACECALL_API_KEY" https://api.voygr.tech/users/me

Never commit ~/.codex/placecall.env or paste the key into chat - keep it in the env var / the 600 file above.

Installed this before August 2026?

This project was called Callwright until 2026-08, and the repo lived at voygr-tech/callwright-skill. Two things to know:

  • Your existing setup keeps working. install.sh copies the skill rather than linking it, so an older copy is frozen at whatever it was when you installed - the rename cannot break it. It also means it will never pick up new skills or fixes, which is the reason to migrate.
  • To migrate, delete the old copy first. It is still a working phone skill, so leaving it in place gives your agent two of them and the routing between them is ambiguous. install.sh now warns you if it finds one.
    sh
    rm -rf ~/.claude/skills/callwright ~/.claude/skills/callwright-skill
    Then install the plugin above, and re-export your key under its new name: PLACECALL_API_KEY. The key itself is unchanged - only the variable is renamed, so no need to reissue anything.

If you previously installed a phone-call skill from someone else (e.g. ai-call-agent), remove or disable that too, for the same reason.

The one rule

Everything goes in the brief - the bot reads only your brief. Put every detail in it (what to ask, who you're calling for, names/dates/party size/callback number, how to wrap up). One endpoint, describe the task, done.

Good to know

  • Two things draw on one credit balance: answered calls and answered place suggestions. Calls: only successful ones are billed — voicemails, hangups and no-answers cost nothing. Suggestions: 5 credits per answered POST /v1/places/suggest, nothing when it returns no cards or is refused. Both take a refundable hold at request time that is larger than the charge, so either can return 402 while your balance still looks sufficient for the charge alone (GET /users/me for your balance; rates and top-ups are self-serve at https://api.voygr.tech/checkout?src=gh-repo). The free tier is one shared pot: 250 free calls means 2,500 credits, and suggestions spend from the same 2,500.
  • After a call completed, the outcome/transcript can populate a moment after the status flips - poll GET /calls/{id} until outcome_type is non-null.
  • 13 language codes accepted (en, es, fr, de, hi, ru, pt, ja, it, nl, sr, tr, pl) plus auto (the default, resolves to en). en is the most reliable; non-English is best-effort.
  • Only call numbers you're authorized to - real calls ring real phones. US destinations only; every call opens by identifying PlaceCall and stating that the line is recorded.

Network access

The skill ships nothing that runs on its own. It is instructions your agent follows with its own shell, using curl, and every request goes over HTTPS to one host: api.voygr.tech. Nothing is sent anywhere else.

  • Calls: POST /calls sends the number to dial, your brief and the language. GET /calls, GET /calls/{id}, GET /calls/{id}/events (polled while a call runs), POST /calls/{id}/answer (your reply to a question the call agent asks mid-call), POST /calls/{id}/cancel, GET /calls/{id}/transcript-merged and GET /calls/{id}/recording follow and read it.
  • Finding a place to call: POST /v1/places/suggest sends your request in plain words, plus the name and callback number when you give them.
  • Account: GET /users/me, GET /v1/usage, GET /checkout/packs, GET /skills/{id}/manifest and PUT /users/me/limits.

Every request carries your key in the X-API-Key header, so PLACECALL_API_KEY goes to api.voygr.tech and nowhere else. POST /calls also sends three headers that never affect auth or billing: an Idempotency-Key so a retry cannot dial twice, X-Client-Surface naming the listing these instructions came from, and X-Client-Agent naming the tool that placed the call (claude-code, cursor, codex or gemini-cli, worked out from which of CLAUDECODE, CURSOR_AGENT, CODEX_SANDBOX and GEMINI_CLI is set; only the name is sent, never a variable's value).

The only local file the skill reads is ~/.codex/placecall.env, your saved key, and only when PLACECALL_API_KEY is unset. install.sh makes no network calls. The Cursor plugin and the Gemini CLI extension also connect to the PlaceCall MCP server at https://api.voygr.tech/mcp, the same host. The checkout, recovery and docs links in this README are pages for you to open; the skill does not fetch them.

On our side, a call rings a real phone and is recorded. Recordings and transcripts are kept for 90 days. Security reports: SECURITY.md.

Full reference: skills/placecall/SKILL.md (Claude Code) · AGENTS.md (Codex).

Live API docs: https://api.voygr.tech/docs - log in with your PlaceCall key (the same one you set as PLACECALL_API_KEY).

來源:README.md,提交 9fbfef5

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v1.0.0最新Oct 2, 2026