# io.github.shatch/banjo

Self-hosted AI assistant that places real phone calls for you: bookings, reservations, errands.

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the content rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 0.1.11
- **Author:** io.github.shatch
- **License:** Unknown
- **Source:** https://github.com/shatch/banjo

## Trust

60/100 (B), scored on the content rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: clean
- Obfuscation scan: clean
- Evidence age: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-10-17T15:28:40.294Z
- **Version scanned:** HEAD
- **CVEs:** no coverage — this entry has no package coordinates to query OSV against, so "no known CVEs" is NOT asserted for it.

## Tools

29 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `check_availability` — Check whether a specific date and time the caller is proposing is free on the calendar and within business hours. Use this before agreeing to any specific time.
- `suggest_times` — Suggest a few open times on a specific day, within business hours, when the caller does not have a specific time in mind yet.
- `book_appointment`
- `find_my_booking` — Look up the current caller's own active booking, if any. Takes no arguments — it always looks up whoever is calling right now. The result includes callerName, t
- `reschedule_booking`
- `end_call` — Call this once you have said everything you need to say and are ready to end the call normally — e.g. right after book_appointment or reschedule_booking has suc
- `flag_for_owner_and_end_call` — Use this when you are genuinely stuck and cannot proceed — a request outside what your tools support, a hostile or nonsensical caller, or anything you cannot re
- `place_call` — Place an outbound phone call to a contact to accomplish a task (e.g. book an appointment, or ask
- `get_task_status` — Check the current status and (if finished) outcome of a previously started task, whether it was
- `get_call_transcript` — Read what was said on a task's phone calls, line by line, when the owner wants to know what the other
- `cancel_task` — Call off a phone call that hasn't been placed yet — typically one scheduled for later with place_call's
- `stop_call` — Hang up a call that is already in progress — the one thing cancel_task cannot do. Use this to stop a
- `find_contact` — Fuzzy-search saved contacts by name or notes text. Call this before place_call to resolve a
- `list_contacts` — List saved contacts, optionally filtered by category.
- `add_contact` — Save a new contact (business or person) for future calls/bookings.
- `update_contact` — Update an existing contact — e.g. record the assistant's owner's stated preferred booking channel so future
- `record_task_outcome` — Log the outcome of a task that was completed OUTSIDE the phone-call path (typically an online
- `list_recent_tasks` — List the most recently updated tasks (phone calls and online bookings), most recent first. An ask call's answers saved before it ended some other way aren't inc
- `press_digits` — Send DTMF tones on the phone line, e.g. to navigate an IVR menu.
- `check_my_availability`
- `confirm_appointment`
- `undo_confirmed_appointment`
- `leave_voicemail_and_end_call`
- `report_negotiation_failed` — Use this when you reached and properly engaged with a human, but none of the times offered by either side fit the constraints of the task, and no further negoti
- `escalate_and_end_call`
- `end_conversation_call` — Use this once this open-ended conversation has reached a natural close — you've said what you called to
- `record_answer` — Save one answer as soon as it is settled: call this right after the other party confirms your read-back of an
- `report_answers_and_end_call` — Use this to end the call once you have asked every question on your list and they have answered what they
- `wait_on_hold` — Use this, without saying anything first, as soon as you are in a hold queue: hold music, "please hold", "your call

## Install

This entry has no npm package and no hosted endpoint, so there is nothing for an MCP client to launch or connect to. It is indexed as source only.

## Blast radius

Contained to moderate — no package coordinates and no declared endpoint — Forge cannot tell where this would run or whose authority it would borrow. Known so far: holds an api key; read-only tool surface.
- Floor 16, ceiling 28 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/io.github.shatch%2Fbanjo
- Install plan: https://forgeregistry.com/api/v1/packages/io.github.shatch%2Fbanjo/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/io.github.shatch%2Fbanjo
- HTML page: https://forgeregistry.com/registry/io.github.shatch%2Fbanjo
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
