Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Echtpost MCP server

Vendor MCP
Open markdown

The Echtpost MCP connector routes your AI agent's tool calls to Echtpost's own MCP server through Scalekit. Each user signs in to Echtpost once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 22 tools.

Tools
22
What they doRead · write · destructive
0 · 22 · 00 read22 write0 destructive
Users sign in with
OAuth app
Your own Echtpost MCP server app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Echtpost MCP connection

    In AgentKit > Connections, create an Echtpost MCP connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    Echtpost MCP server connections use your own OAuth app. Register one with Echtpost MCP server and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Echtpost MCP connection.

  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'echtpostmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Echtpost MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'echtpostmcp_get_me',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • echtpostmcp_cancel_cardCancel a scheduled postcard.Write

    Cancel Card

    Cancel a scheduled postcard. Only cards where "cancelable" is true can be cancelled. Cancellation is asynchronous and may take a few minutes.

    Inputs

    idstringrequired
    UUID of the card to cancel.
  • echtpostmcp_create_cardCreate a postcard with custom message and font.Write

    Create Card

    Create a postcard with custom message and font. Validates that text fits on the card. Use preview_fit first to check if your message fits. Specify recipients via existing contact IDs, group IDs, or inline recipient objects (combinable). For simpler creation from a saved template, use create_card_from_template instead.

    Inputs

    contentstringrequired
    Main message text to print on the postcard.
    deliver_atstringrequired
    Delivery date. Accepted values: today, tomorrow, YYYY-MM-DD, or N-days-from-now.
    motive_idintegerrequired
    Numeric ID of the motive (front image design) to use on the card.
    content_psstring
    Optional postscript line printed after the main message (P.S.).
    content_verticalstring
    Optional text printed in the vertical side panel of the card.
    font_colorstring
    Font color for the card text. Accepted values: black, blue.
    font_familystring
    Font family for the card text. Accepted values: architects_daughter, reenie_beanie, special_elite.
    font_sizeinteger
    Font size in pt. Allowed ranges: architects_daughter 12–14, reenie_beanie 15–17, special_elite 11–13.
    group_idsarray
    Array of contact group IDs. All members of each group receive the card.
    notification_emailstring
    Email address to receive delivery notifications.
    notification_send_onstring
    Date to send the notification (ISO 8601, YYYY-MM-DD). Defaults to the delivery date.
    notification_typestring
    When to send a delivery notification. Accepted values: before_send, after_sent.
    qr_code_urlstring
    URL to encode as a QR code printed on the card.
    recipient_idsarray
    Array of existing contact IDs to send the card to.
    recipientsarray
    Array of inline recipient objects. Each requires last_name, street, zip, city, and country_code.
  • echtpostmcp_create_card_from_templateCreate a postcard from an existing template.Write

    Create Card From Template

    Create a postcard from an existing template. The template provides the message, font, and motive. Specify recipients via existing contact IDs, group IDs, or inline recipient objects (combinable). Use list_templates to find templates.

    Inputs

    deliver_atstringrequired
    Delivery date. Accepted values: today, tomorrow, YYYY-MM-DD, or N-days-from-now.
    template_idintegerrequired
    Numeric ID of the template to use for this card.
    group_idsarray
    Array of contact group IDs. All members of each group receive the card.
    recipient_idsarray
    Array of existing contact IDs to send the card to.
    recipientsarray
    Array of inline recipient objects. Each requires last_name, street, zip, city, and country_code.
  • echtpostmcp_create_contactCreate a new contact for the account.Write

    Create Contact

    Create a new contact for the account. At minimum, provide last_name and a postal address (street, zip, city, country_code). Optionally assign to groups via group_ids or group_names (group_names auto-creates groups if they do not exist).

    Inputs

    citystringrequired
    City for the recipient's postal address.
    country_codestringrequired
    ISO 3166-1 alpha-2 country code (e.g. DE for Germany).
    last_namestringrequired
    Recipient's last name.
    streetstringrequired
    Street name and house number.
    zipstringrequired
    Postal code for the recipient's address.
    birthdatestring
    Contact's birthdate in ISO 8601 format (YYYY-MM-DD).
    company_namestring
    Company name for the recipient.
    custom_salutationstring
    Custom greeting line. Use when greeting_style is set to custom.
    departmentstring
    Department within the company.
    external_idstring
    Your own reference ID for this record.
    first_namestring
    Recipient's first name.
    genderstring
    Gender identifier. Accepted values: male_user, female_user, diverse_user.
    greeting_stylestring
    Greeting style for the card. Accepted values: formal, informal, custom.
    group_idsarray
    Array of contact group IDs. All members of each group receive the card.
    group_namesarray
    Array of group names. Groups are created automatically if they do not exist.
    state_codestring
    State or province code (e.g. BY for Bavaria).
    titlestring
    Academic or professional title (e.g. Dr., Prof.).
  • echtpostmcp_create_groupCreate a new contact group.Write

    Create Group

    Create a new contact group. Provide a name; optionally an external_id for your own reference.

    Inputs

    namestringrequired
    Group name.
    external_idstring
    Your own reference ID for this record.
  • echtpostmcp_delete_contactDelete a contact by ID.Write

    Delete Contact

    Delete a contact by ID. This is permanent and cannot be undone.

    Inputs

    idintegerrequired
    Numeric ID of the contact to delete.
  • echtpostmcp_delete_groupDelete a contact group.Write

    Delete Group

    Delete a contact group. Fails if the group has attached workflows.

    Inputs

    idintegerrequired
    Numeric ID of the group to delete.
  • echtpostmcp_get_cardGet details of a specific postcard by its ID.Write

    Get Card

    Get details of a specific postcard by its ID. Returns status, content, font, delivery date, and whether the card is cancelable.

    Inputs

    idstringrequired
    UUID of the card to retrieve.