your AI agent makes phone calls for you
homeexamplesinstall mcpblogsign up / sign inrules

blog > muse-code-mcp-phone-calls

Muse Code MCP: connect phone calling tools

Keep a business phone inquiry in your terminal task. Connect the caller, supply the exact question and inspect the returned outcome, transcript and available recording.

Nick Khami · · 6 min read
[ 💬 0 ]
Muse Code connects to Call4me through MCP, checks account access and returns evidence from an authorized task

Use Muse Code MCP to connect a phone caller to your terminal task. Call4me supplies the calling tools. Give Muse Code a specific business inquiry, then ask it to follow the approved call and report what the business actually answered.

This is the terminal client, not the consumer Muse app. Our consumer Muse guide describes a different custom connector workflow. Configuring one client does not configure the other.

We installed Muse Code 1.4.3 (1.4.3-R5018.1) on Linux on October 5, 2026 and checked its native commands and configuration behavior. A local MCP fixture successfully initialized and listed its tool through the native client. Production discovery identified Call4me's OAuth requirement. Meta sign in was approved, but the client then required a payment method and signed out. We have not completed a model driven account read or phone call in Muse Code.

Start with the question the phone call must answer

Suppose your terminal task is planning dinner. The restaurant's website says it accepts walk ins, but you still need to ask about your party, date and arrival time. Give Muse Code those facts and a specific inquiry before connecting tools. A useful result will identify whether a person answered that question, whether a recording supplied only general policy, or whether the question remains open.

Our recorded Grok restaurant call established general walk in policy without confirming availability for the party. That is a concrete example of why the phone brief and evidence matter. It is a Grok result, not a completed Muse Code task.

The setup below leads to a downloadable phone inquiry brief. Fill in the business, exact question, relevant facts and permitted call duration. After the connection check, approve the particular attempt and require its actual outcome before acting on the answer.

get new posts by email · 1 reader subscribed

Start with the right client and settings

Check the installed client:

muse --version
muse mcp --help

Meta's configuration reference places user settings at ~/.config/muse/settings.json. When XDG_CONFIG_HOME is set, our test confirmed the selected path is $XDG_CONFIG_HOME/muse/settings.json. If you already have settings, merge the server entry into the existing object. Replacing the whole file could discard other connections and preferences.

The MCP documentation describes remote HTTP servers, environment variable interpolation and the interactive /mcp inventory. Authentication to the model provider and authentication to an MCP service are separate. Completing muse login does not establish access to your Call4me account.

Add the remote calling server

Sign in to your Call4me account. The calling server URL is https://call4.me/mcp.

Our tested client accepted this settings fragment:

{
  "schema_version": 1,
  "mcpServers": {
    "call4me": {
      "type": "streamable-http",
      "url": "https://call4.me/mcp",
      "enabled": true,
      "mode": "required"
    }
  }
}

Authenticate the calling service with the native command:

muse mcp login call4me

Complete the service's authorization in the browser. Then start Muse Code and use /mcp to inspect the connection. We verified that unauthenticated production startup recognized the OAuth requirement and requested this exact login command. We have not completed the browser authorization or an authenticated account read in Muse Code.

mode: "required" made our isolated run fail when its test server was unreachable. mode: "optional" allowed that run to continue without the server. Whichever you choose, inspect actual tool availability before a phone task.

A configuration mismatch we caught

The current documentation uses mcp_servers and transport: "streamable_http". That legacy combination worked in our isolated test. The installed client's help and migration instructions use mcpServers and type: "streamable-http", which also worked and is the shape above. Do not mix both top level server blocks: our test then contacted neither server.

There is a more consequential difference. Although the documentation describes environment variable interpolation, our configured HTTP header Bearer ${MUSE_CONFIG_PROBE_TOKEN} was sent literally to the local fixture. Setting that synthetic environment variable did not substitute its value. A literal synthetic header did arrive correctly.

For this tested version, do not assume an HTTP header placeholder carries your API key. The OAuth configuration above avoids putting a key in that header or a shared settings file. If you choose key authentication, establish how your exact client version supplies the credential before relying on it. Do not paste a real key into a downloadable example.

What our isolated test establishes

The fixture was an HTTP MCP server on localhost, with one harmless tool and no account credentials or dialer. Muse Code used its deterministic echo provider to start the connection without a paid model session. We recorded actual initialize, notifications/initialized and tools/list requests.

That establishes configuration loading and MCP discovery. It does not establish model reasoning, tool selection, access to your account or calling quality. The configuration probe results publish the sanitized test cases and observations. No fixture result is presented as a live Call4me result.

Check access without dialing

Open a fresh session and inspect /mcp. Then send this access check prompt:

Use the actual call4me_get_balance tool to check my calling connection. Report whether the tool succeeded and whether calling tools are available. Do not place or schedule a call, buy a number, change my account or print private profile details. If the tool is absent or returns an error, report that exact limitation instead of describing a hypothetical success.

Look for a real tool invocation and a returned result. An agent saying “the connection is ready” from memory is insufficient. This check establishes access to the calling account; it does not establish a dialed call or an answered question.

Check Evidence to retain
Client Installed Muse Code version
Configuration Server loaded without a settings warning
Tool discovery Calling tools appear in the live inventory
Account authentication call4me_get_balance returns an actual result
Phone task A separate authorized call produces a record and useful evidence

Give the caller a bounded inquiry

Use a specific gap in research you already did. Replace every bracketed field in this inquiry brief:

We need to establish [one unresolved fact] about [business].
The business's official contact page is [source URL].
Our relevant task facts are [facts needed to answer the question].

Find the published phone number and show me the proposed question and
call duration. Wait for my permission for this specific attempt.
Check call4me_get_requirements and gather any missing required facts.

Once I approve, place one inquiry with call4me_place_call. Set max_minutes
to the duration I approved. Do not book, purchase, cancel, disclose other
personal details, request a callback or leave a message.
Follow the returned call id using call4me_get_call until it ends or needs
my input. Do not create a duplicate call when a status request is slow.

Return the actual outcome and transcript. Use call4me_get_recordings to
retrieve available recording evidence. Identify whether the answer came
from a person or a recording, and keep unresolved questions visible.
A menu may establish policy without answering our specific question.
Never fill in the missing answer.

Call4me's calling interface separates placing a call from following it. The first response can return while dialing is still underway. Retrieve that same call's result before deciding that the task is complete.

Our recorded private dining research shows this distinction in executed Codex and Claude Code tasks. Automated concierges and unanswered questions are part of those actual results. They are not Muse Code performance evidence.

Troubleshoot the stage that failed

Settings warning: check the configuration key and transport spelling for your installed version. Inspect the warning before retrying. muse config validate is for managed enterprise documents, not a general validator for your flat user settings file.

Server missing: inspect /mcp in the session doing the work. Confirm that the edited settings belong to this machine and user, and that enabled is true.

Authentication failure: inspect the current OAuth state and complete the named MCP login. If you chose a header with a literal ${VAR} placeholder, exporting the variable again does not fix the behavior we observed in this version. Keep the credential out of the error report.

Account read succeeds but no call happens: check whether the current request supplies the required facts and authorizes that particular call. Account access and permission to act are separate requirements.

Call ended but the question remains unanswered: inspect the outcome and transcript. Return the missing answer as unresolved. The caller reaching a menu is a narrower result than a person confirming availability.

For reusable consumer workflows, use our Grok Bot templates or first Muse task. For the developer client, finish the configuration and access checks here before trying a bounded inquiry.

meta muse · muse code · mcp · ai phone assistant

Nick Khami @skeptrunebuilds call4me, the phone for your AI agent. software engineer; previously founded Trieve. email me@call4.me.

get new posts by email · 1 reader subscribed
no tracking, no spam; one email per post, unsubscribe in one click. or use the atom feed. posts marked paid need a supporter subscription (monthly, cancel any time).

0 comments

read next

Grok Bot and Meta Muse phone workflows compared by calling setup, call evidence and unanswered questions
Grok Bot vs Meta Muse for phone calls: setup, evidence and three inquiry briefs
Compare how each agent connects a calling service, prepares an approved inquiry and checks the answer. Includes three matching call briefs and a worksheet for recording actual results.
OCT 5 · Nick Khami
Meta Muse AI agent connectors, with phone calls as the worked example
Muse MCP: connect Meta Muse to phone calling tools
Connect Meta Muse to a phone calling service through a custom connector. Here is our tested setup, what a live balance check proves, how native calling differs and what to check before dialing.
OCT 1 · Nick Khami
A shared Grok phone calling template needs the recipient's Call4Me access and call brief
Why a Grok Bot phone calling template fails after sharing
A recipient needs their own working Call4Me connection, call brief and permission. Find the missing prerequisite before asking the Bot to dial again.
OCT 5 · Nick Khami

newer: How to use Meta Muse for your first informational phone call
older: Grok Bot vs Meta Muse for phone calls: setup, evidence and three inquiry briefs
all posts · archive · atom feed