MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · File & docs

Rinkel MCP by usefulapi

Read Rinkel calls, voicemails, contacts and numbers; add call notes, edit contacts, block numbers.

Checks passed
14 / 22

0 failed · 8 not measured

Median response
53 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
27

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 53 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name rinkel-mcp.

  • Pass
    Lists tools

    tools/list returned 27 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 53 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 53 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    84 of 92 parameters have a description (91%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-10T23:34:14.653796Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using Rinkel MCP by usefulapi

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http rinkel-mcp-by-usefulapi https://rinkel.usefulapi.io/mcp

Capabilities

Tools 27

rinkel_add_call_note

WRITE: add a note to a call record (visible to everyone in the account who sees the call). The id is the call record's `id`; if Rinkel answers 404, retry with the record's `callId`. Rinkel API: PUT /call-detail-records/{callId}/note.

Discovered
rinkel_block_number

WRITE: block a number from calling ANY of the account's numbers. Accepts an E.164 number, 'anonymous', or a prefix wildcard such as '+31*' (a wildcard must end the value and include a country code; a broad wildcard blocks every caller from that country). Undo with rinkel_unblock_number. Rinkel API: POST /privacy/block-number.

Discovered
rinkel_count_new_voicemails

Number of voicemails that have not been played yet. Rinkel API: GET /voicemails/new-count.

Discovered
rinkel_create_contact

WRITE: create a contact. It is shared with everyone in the Rinkel account (all users see it and calls from its numbers show its name). Rinkel API: POST /contacts.

Discovered
rinkel_delete_call_note

WRITE, irreversible: delete one note from a call record. Needs confirm=true after the user approved it. Rinkel API: DELETE /call-detail-records/{callId}/note/{noteId}.

Discovered
rinkel_delete_contact

WRITE, irreversible: delete a contact for the whole account. Needs confirm=true after the user approved it. The Rinkel system contact cannot be deleted. Rinkel API: DELETE /contacts/{id}.

Discovered
rinkel_find_contact_by_number

Find the contact that owns a phone number (E.164 such as +31612345678 works best). 404 when there is none. Rinkel API: GET /contacts/find-by-number/{number}.

Discovered
rinkel_get_call

Get one call detail record by its Rinkel id (the `id` field of rinkel_list_calls): numbers, users, status, duration, notes, voicemail and call-recording ids, AI insights. Rinkel API: GET /call-detail-records/{id}.

Discovered
rinkel_get_call_by_network_id

Get one call detail record by its network `callId` (the id Rinkel sends in webhook events), optionally with insights and notes. Rinkel API: GET /call-detail-records/by-call-id/{callId}.

Discovered
rinkel_get_call_recording_url

Get a temporary URL (valid 3 hours) to stream or download a call recording. The id is `callRecording.id` of a call record. Append `download` as a query parameter to the URL to download instead of stream. Rinkel API: GET /call-recordings/{id}/stream.

Discovered
rinkel_get_call_transcription

Get the raw transcription of a call by its network `callId` (needs Rinkel AI insights on the account; 404 when the call has none). Rinkel API: GET /call-detail-records/by-call-id/{callId}/transcription.

Discovered
rinkel_get_contact

Get one contact by id. Rinkel API: GET /contacts/{id}.

Discovered
rinkel_get_number

Get one Rinkel number with its full dial plan: greeting, business hours schedule, call forwarding targets and ring logic, voice menu, call recording and caller-id settings. Rinkel API: GET /numbers/{id}.

Discovered
rinkel_get_user

Get one user by id, including preferences, notification settings, schedule and `deviceId`. Rinkel API: GET /users/{id}.

Discovered
rinkel_get_voicemail_url

Get a temporary URL (valid 3 hours) to stream or download a voicemail. The id is `voicemail.id` of a call or voicemail record. Rinkel API: GET /voicemails/{id}/stream.

Discovered
rinkel_list_calls

List call detail records (inbound and outbound calls) with date, direction, status (ANSWERED, MISSED, VOICEMAIL, ANSWERING_SERVICE), duration, external and internal number, the users involved, notes, and (when the account has Rinkel AI insights) the AI summary and sentiment. Use for 'who called today', 'which calls did we miss this week', 'calls longer than 5 minutes'. Newest first by default. Rinkel API: GET /call-detail-records.

Discovered
rinkel_list_contacts

List the contacts shared with everyone in the account (plus the Rinkel system contact, tag 'system'): names, company, phone numbers, email. Rinkel API: GET /contacts.

Discovered
rinkel_list_numbers

List the account's Rinkel phone numbers: id, label, number, status (ACTIVE, SUSPENDED, PENDING_PORTING_IN ...), activation date and the users assigned. Rinkel API: GET /numbers.

Discovered
rinkel_list_recordings

List the uploaded audio recordings used in the dial plan (greetings, announcements, voice-over scripts): name, description, duration and where each is used. Not call recordings. Rinkel API: GET /recordings.

Discovered
rinkel_list_users

List the account's users: name, email, phone number, role (ADMIN, USER, ANSWERINGSERVICE), availability schedule and status, and `fixed`/device info (`deviceId` is needed to start a call). Rinkel API: GET /users.

Discovered
rinkel_list_voicemails

List voicemail messages (call records with status VOICEMAIL): caller, date, duration, whether new, and the voicemail id. Newest first. With is_new=true Rinkel ignores every other filter and returns only unplayed voicemails. Rinkel API: GET /voicemails.

Discovered
rinkel_list_webhooks

List the webhook subscriptions (events incomingCall, outgoingCall, callStart, callEnd, callInsights) with URL and active flag. Webhooks need the Expert plan. Rinkel API: GET /webhooks.

Discovered
rinkel_start_call

WRITE, COSTS CALL MINUTES: starts a real phone call. Rinkel rings the given user device first and, once it is answered, dials `to` using the chosen Rinkel number as caller id, so call charges apply to the account and the person called sees the number. Needs confirm=true, set only after the user explicitly asked to place this call. Get device_id from rinkel_list_users (`fixed`/device info or `deviceId`) and number_id from rinkel_list_numbers. Rinkel API: POST /dial.

Discovered
rinkel_unblock_number

WRITE: remove a number (or the same wildcard pattern that was blocked) from the block list so it can call again. Rinkel API: DELETE /privacy/unblock-number.

Discovered
rinkel_update_call_note

WRITE: replace the text of an existing note on a call record (the note id is in `notes[].id` of the call record). Rinkel API: PATCH /call-detail-records/{callId}/note/{noteId}.

Discovered
rinkel_update_contact

WRITE: update a contact (PUT semantics). `numbers` is required and REPLACES all stored numbers, and an omitted default_outbound_number_id CLEARS it; omitted names, company and email keep their stored value. Read the contact first (rinkel_get_contact) and resend what must stay. The system contact cannot be changed. Rinkel API: PUT /contacts/{id}.

Discovered
rinkel_validate_phone_number

Check a phone number for a country and return its normalised form. With check_inventory=true Rinkel also checks whether the number is available to order. Rinkel API: GET /misc/validate-phone-number.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected53 ms27