github re-analysis due

pghdma/callrail-mcp

github

Model Context Protocol (MCP) server for the CallRail REST API v3 — query calls, form submissions, transcripts, and more from Claude Code, Claude Desktop, Cursor, or any MCP client.

maintainer
pghdma
license
MIT
first seen
2026-06-08
last seen
2026-06-09
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 25 tools
transport stdio · http counts 25 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • call_eligibility_check

    Audit whether a specific call qualifies as a Google Ads conversion. Checks gclid presence, answered-status, duration vs. Google's threshold (default 60s), and source. Useful for "where did my conversi

  • call_summary

    Aggregate stats (total, answered, by source, duration) for a window

  • create_outbound_call

    Place an outbound call (CallRail dials your tracker first, then bridges to recipient). Requires confirm_dialing=True as a safety guard — actually dials a real phone, costs minutes, has legal implicati

  • create_tracker

    Provision a new tracking number. Requires confirm_billing=True as a safety guard against accidental AI provisioning

  • delete_tracker

    Soft-delete a tracker (releases the phone number, preserves history)

  • get_call

    Full detail for a specific call

  • get_call_recording

    Recording URL (if recording enabled)

  • get_call_transcript

    Conversation Intelligence transcript

  • get_form_submission

    Single form-submission detail (was list+update only)

  • get_tag

    Single tag detail (completes tag CRUD)

  • get_text_message

    Single SMS conversation detail with all messages

  • get_tracker

    Full detail for one tracker

  • list_accounts

    List accessible CallRail accounts

  • list_calls

    Paginated call list — filter by company / date / source / answered

  • list_companies

    List companies (clients) under an account. Optional status="active" filter

  • list_form_submissions

    CallRail Form Tracking submissions

  • list_tags

    List tags in account or filtered to one company

  • list_text_messages

    SMS conversations

  • list_trackers

    List tracking phone numbers + their source mapping. Optional status="active" filter

  • list_users

    Account users

  • search_calls_by_number

    Find calls by phone number across a window

  • update_call

    Update note, tags, spam flag, customer name, lead status

  • update_form_submission

    Same field surface as update_call, plus value (numeric, supported on form submissions but NOT on calls — CallRail returns 500)

  • update_tracker

    Update mutable settings: name, destination, whisper, greeting, SMS

  • usage_summary

    Per-company cost-attribution breakdown for the cycle. Returns minutes used, active numbers, estimated $ cost share — sorted by biggest cost driver. Useful for "which client is burning my CallRail budg

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 48c7ee6 · analyzer v17 · 1d ago

skills & prompt files 1

code evidence vv1.0.3 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 1

  • fs pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/client.py :21 from pathlib import Path

network 1

  • net pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/client.py :24 from urllib.parse import quote, urljoin

secrets 1

  • secrets pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/client.py :119 key = os.environ.get("CALLRAIL_API_KEY", "").strip()

tool registrations 50

  • list_accounts pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :485
  • list_companies pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :498
  • list_trackers pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :540
  • get_tracker pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :574
  • create_tracker pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :595
  • update_tracker pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :748
  • delete_tracker pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :853
  • list_calls pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :881
  • get_call pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :932
  • call_summary pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :957
  • list_form_submissions pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1035
  • list_text_messages pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1084
  • list_users pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1130
  • get_call_recording pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1152
  • get_call_transcript pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1185
  • search_calls_by_number pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1217
  • update_call pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1284
  • add_call_tags pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1394
  • remove_call_tags pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1437
  • update_form_submission pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1464
  • list_tags pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1527
  • create_tag pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1548
  • update_tag pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1580
  • delete_tag pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1627
  • usage_summary pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :1712
  • call_eligibility_check pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :2001
  • compare_periods pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :2171
  • bulk_update_calls pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :2368
  • spam_detector pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :2582
  • get_company pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :2805
  • create_company pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :2830
  • update_company pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :2897
  • delete_company pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :2980
  • get_user pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3004
  • create_user pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3031
  • update_user pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3108
  • delete_user pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3192
  • get_form_submission pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3216
  • get_text_message pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3249
  • list_webhooks pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3273
  • get_webhook pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3301
  • get_tag pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3345
  • list_integrations pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3365
  • get_integration pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3400
  • create_form_submission pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3424
  • create_outbound_call pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3516
  • create_notification pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3577
  • update_notification pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3657
  • delete_notification pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3748
  • list_notifications pghdma-callrail-mcp-48c7ee6/src/callrail_mcp/server.py :3780

declared dependencies 2

  • mcp@>=1.23.0
  • requests@>=2.33.0