Awtomic MCP by usefulapi

Read Awtomic subscriptions, customers and billing attempts; pause, skip, reschedule, cancel.

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
96%
이름 품질
72%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (8)

  • LOWTool 'awtomic_list_customer_subscriptions' name length outside 3-30 rangeawtomic_list_customer_subscriptions에서
  • LOWTool 'awtomic_get_successful_billing_count' name length outside 3-30 rangeawtomic_get_successful_billing_count에서
  • LOWTool 'awtomic_get_origin_order_fulfillments' name length outside 3-30 rangeawtomic_get_origin_order_fulfillments에서
  • LOWTool 'awtomic_get_customer_payment_methods' name length outside 3-30 rangeawtomic_get_customer_payment_methods에서
  • LOWTool 'awtomic_list_selling_plan_groups' name length outside 3-30 rangeawtomic_list_selling_plan_groups에서
  • LOWTool 'awtomic_reactivate_subscription' name length outside 3-30 rangeawtomic_reactivate_subscription에서
  • LOWTool 'awtomic_cancel_customer_subscription' name length outside 3-30 rangeawtomic_cancel_customer_subscription에서
  • LOWTool 'awtomic_send_payment_update_email' name length outside 3-30 rangeawtomic_send_payment_update_email에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~5,381토큰 (도구 정의)
~1.7 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 4.20%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "awtomic": {
      "url": "https://awtomic.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://awtomic.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (21)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢awtomic_list_subscriptions(limit, cursor, reverse)

List the shop's subscription contracts (id, status, next billing date and more), 100 per page by default. Use reverse to read the newest first. Pass next_cursor back as cursor for the next page. GET /subscriptions.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Items per page, 1-100 (default 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "cursor": {
      "description": "Paging cursor: the next_cursor of the previous reply. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "reverse": {
      "description": "Read in reverse order.",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_get_subscription(customer_id, subscription_id)

One subscription contract with its lines (products, quantities, prices). Needs the customer id and the subscription id. GET /customers/{customerId}/subscriptions/{subscriptionId}.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    }
  },
  "required": [
    "customer_id",
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_list_customer_subscriptions(customer_id, expand_lines, limit, cursor)

List one customer's subscriptions (id, status, next billing date). Set expand_lines to include each subscription's lines; that makes the reply much larger. GET /customers/{customerId}/subscriptions.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "expand_lines": {
      "description": "Include the subscription lines (larger reply). Default false.",
      "type": "boolean"
    },
    "limit": {
      "description": "Items per page, 1-100 (default 100).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "cursor": {
      "description": "Paging cursor: the next_cursor of the previous reply. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_list_billing_attempts(customer_id, subscription_id, limit, cursor, reverse)

A subscription's billing attempts: status (SUCCESS or FAILURE), error code and message, amount, currency and dates. Use it to see why a renewal failed. GET /customers/{customerId}/subscriptions/{subscriptionId}/billing-attempts.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    },
    "limit": {
      "description": "Items per page, 1-100 (default 20).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "cursor": {
      "description": "Paging cursor: the next_cursor of the previous reply. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "reverse": {
      "description": "Read in reverse order (newest first or oldest first, as Awtomic defines it).",
      "type": "boolean"
    }
  },
  "required": [
    "customer_id",
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_get_successful_billing_count(subscription_id)

How many billing attempts of a subscription succeeded, including those made before a migration from another subscription app. GET /subscriptions/{subscriptionId}/total-successful-billing-count.

입력 스키마

{
  "type": "object",
  "properties": {
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    }
  },
  "required": [
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_get_origin_order(customer_id, subscription_id)

The Shopify order that started a subscription (id, name, creation date). GET /customers/{customerId}/subscriptions/{subscriptionId}/origin-order.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    }
  },
  "required": [
    "customer_id",
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_get_origin_order_fulfillments(customer_id, subscription_id)

Fulfillment status and the fulfillment orders (status, fulfill-at date) of a subscription's origin order. GET /customers/{customerId}/subscriptions/{subscriptionId}/origin-order/fulfillments.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    }
  },
  "required": [
    "customer_id",
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_get_customer(customer_id)

A customer: name, email, phone, orders count, amount spent, customer-since date, Awtomic overrides and the ids of their subscription contracts. GET /customers/{customerId}.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_get_customer_addresses(customer_id)

A customer's saved addresses and which one is the default. GET /customers/{customerId}/address.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_get_customer_payment_methods(customer_id)

A customer's payment methods on file: type (card, Shop Pay, PayPal), card brand, last digits, expiry and whether it was revoked. Never the full card number. Use it to spot expired cards before a renewal. GET /customers/{customerId}/payment-methods.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_list_selling_plan_groups

The shop's selling plan groups (subscription plans): name, summary, options, position and whether it is a prepaid plan. Use the ids with awtomic_get_selling_plan_group. GET /shops/selling-plan-groups.

입력 스키마

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢awtomic_get_selling_plan_group(selling_plan_group_id)

One selling plan group with its selling plans (name, prepaid orders, gift support) and the products it applies to. GET /shops/selling-plan-groups/{sellingPlanGroupId}.

입력 스키마

{
  "type": "object",
  "properties": {
    "selling_plan_group_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Selling plan group id (gId or numeric id) from awtomic_list_selling_plan_groups."
    }
  },
  "required": [
    "selling_plan_group_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴awtomic_pause_subscription(customer_id, subscription_id)

WRITE: pause a subscription so it is not billed or shipped until it is reactivated (awtomic_reactivate_subscription). A subscription in dunning is taken out of dunning. Awtomic runs the shop's own automations for this event, so the customer may get an email or SMS and webhooks may fire. Awtomic pauses it on its side even if Shopify rejects the pause. POST /customers/{customerId}/subscriptions/{subscriptionId}/pause.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    }
  },
  "required": [
    "customer_id",
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴awtomic_reactivate_subscription(customer_id, subscription_id, next_billing_date)

WRITE: reactivate a paused or cancelled subscription, so billing resumes. A cancelled prepaid subscription cannot be reactivated. Without next_billing_date Awtomic works it out from the subscription's interval; the customer is charged on that date. Awtomic runs the shop's own automations for this event, so the customer may get an email or SMS and webhooks may fire. POST /customers/{customerId}/subscriptions/{subscriptionId}/reactivate.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    },
    "next_billing_date": {
      "type": "string",
      "description": "A date yyyy-mm-dd (read in the shop's time zone, shop renewal billing time applies) or an ISO 8601 date-time with a timezone. Must be later than the end of today."
    }
  },
  "required": [
    "customer_id",
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴awtomic_skip_next_order(customer_id, subscription_id)

WRITE: skip a subscription's next order. The subscription must be active; Awtomic moves the next billing date by one interval (each call skips one more order, so do not repeat it). The reply has skipEventId: pass it to awtomic_undo_skip to undo. Awtomic runs the shop's own automations for this event, so the customer may get an email or SMS and webhooks may fire. POST /customers/{customerId}/subscriptions/{subscriptionId}/skip.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    }
  },
  "required": [
    "customer_id",
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴awtomic_undo_skip(customer_id, subscription_id, skip_event_id)

WRITE: undo a skipped order, restoring the billing date from before the skip. Needs the skipEventId returned by awtomic_skip_next_order; Awtomic refuses (409) when the skip can no longer be undone. POST /customers/{customerId}/subscriptions/{subscriptionId}/next-billing-date with eventType UNDO_SKIP.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    },
    "skip_event_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The skipEventId from awtomic_skip_next_order."
    }
  },
  "required": [
    "customer_id",
    "subscription_id",
    "skip_event_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴awtomic_set_next_billing_date(customer_id, subscription_id, next_billing_date)

WRITE: change when a subscription is next billed. The date must be later than the end of today. A paused subscription is reactivated by this call, and one in dunning is taken out of dunning. The customer is charged on the new date. POST /customers/{customerId}/subscriptions/{subscriptionId}/next-billing-date.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    },
    "next_billing_date": {
      "type": "string",
      "description": "A date yyyy-mm-dd (read in the shop's time zone, shop renewal billing time applies) or an ISO 8601 date-time with a timezone. Must be later than the end of today."
    }
  },
  "required": [
    "customer_id",
    "subscription_id",
    "next_billing_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴awtomic_update_frequency(customer_id, subscription_id, interval, interval_count)

WRITE: change how often a subscription is billed and delivered, for example every 2 WEEK or every 1 MONTH. Changes every future order of that subscription. POST /customers/{customerId}/subscriptions/{subscriptionId}/frequency.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    },
    "interval": {
      "type": "string",
      "enum": [
        "DAY",
        "WEEK",
        "MONTH",
        "YEAR"
      ],
      "description": "Interval unit."
    },
    "interval_count": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 366,
      "description": "Number of interval units between orders (2 + WEEK = every 2 weeks)."
    }
  },
  "required": [
    "customer_id",
    "subscription_id",
    "interval",
    "interval_count"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴awtomic_cancel_customer_subscription(customer_id, subscription_id, confirm_cancel, reason, details)

WRITE: cancel one shopper's subscription contract in Awtomic. Billing and shipping stop; a cancelled non-prepaid subscription can be brought back with awtomic_reactivate_subscription. This cancels the shop's customer subscription, not your usefulapi plan. Awtomic runs the shop's own automations for this event, so the customer may get an email or SMS and webhooks may fire. Awtomic cancels it on its side even if Shopify rejects the cancel. Only use it when the user explicitly asks to cancel this subscription, and confirm_cancel must be true. A cancelled prepaid subscription cannot be reactivated. POST /customers/{customerId}/subscriptions/{subscriptionId}/cancel.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    },
    "confirm_cancel": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: you confirm the user asked to cancel this shopper's subscription."
    },
    "reason": {
      "description": "Short reason code for Awtomic's analytics, e.g. too_expensive.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "details": {
      "description": "Free-text details of why the subscription is cancelled.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [
    "customer_id",
    "subscription_id",
    "confirm_cancel"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴awtomic_order_now(customer_id, subscription_id, confirm_charge, manual_retry)

WRITE: bill the customer's saved payment method and create the subscription's next order immediately, instead of waiting for the billing date. THIS CHARGES THE CUSTOMER. Awtomic refuses (409 ORDER_RECENTLY_PLACED) if the latest billing attempt is pending or succeeded under 10 minutes ago. Set manual_retry only to retry a failed billing attempt. Only use it when the user explicitly asks to place this order now, and confirm_charge must be true. Awtomic runs the shop's own automations for this event, so the customer may get an email or SMS and webhooks may fire. POST /customers/{customerId}/subscriptions/{subscriptionId}/order-now.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    },
    "confirm_charge": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: you confirm the customer is charged now."
    },
    "manual_retry": {
      "description": "Retry a failed billing attempt.",
      "type": "boolean"
    }
  },
  "required": [
    "customer_id",
    "subscription_id",
    "confirm_charge"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴awtomic_send_payment_update_email(customer_id, subscription_id, confirm_send)

WRITE: make Shopify email the customer a link to update their payment method for this subscription. This SENDS AN EMAIL TO THE CUSTOMER each time it is called. Use it for failed payments or expired cards, only when the user asks, and confirm_send must be true. POST /customers/{customerId}/subscriptions/{subscriptionId}/send-customer-payment-email.

입력 스키마

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify customer id (the number in the Shopify admin customer URL, e.g. 6012345678901). A gid://shopify/Customer/… id is accepted too."
    },
    "subscription_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Shopify subscription contract id (the SubscriptionId of a subscription, e.g. 1234567890). A gid://shopify/SubscriptionContract/… id is accepted too."
    },
    "confirm_send": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: you confirm the user asked to email this customer now."
    }
  },
  "required": [
    "customer_id",
    "subscription_id",
    "confirm_send"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 21개