Foxy.io MCP by usefulapi
Read Foxy transactions, subscriptions, customers, carts and coupons; update customers and subs.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"foxyio": {
"url": "https://foxyio.usefulapi.io/mcp"
}
}
}Remote endpoints
https://foxyio.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (14)
π’foxy_get_api_home
Get the Foxy hAPI home document β its _links / rels (including fx:store for the authenticated default store). Useful for HAL discovery. Foxy hAPI: GET /.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_get_default_store
Resolve and return the authenticated user's default store (and its id) by fetching the API home and following the fx:store link. Use this to discover the store_id the list tools accept. Foxy hAPI: GET / then GET fx:store.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_get_store(store_id)
Get a single store resource by id, including its settings and _links to sub-collections. Foxy hAPI: GET /stores/{store_id}.
Input Schema
{
"type": "object",
"properties": {
"store_id": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
],
"description": "Store id (get it from foxy_get_default_store)."
}
},
"required": [
"store_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_list_transactions(store_id, limit, offset, zoom, is_test, ...)
List a store's transactions (orders), newest first. Returns a HAL collection embedding fx:transactions. Foxy hAPI: GET /stores/{store_id}/transactions.
Input Schema
{
"type": "object",
"properties": {
"store_id": {
"description": "Store id. If omitted, the default store (fx:store) is used.",
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
]
},
"limit": {
"description": "Max results per page (Foxy default 20).",
"type": "integer",
"minimum": 1,
"maximum": 300
},
"offset": {
"description": "Pagination offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"zoom": {
"description": "Comma-separated related resources to embed, e.g. 'items,customer,payments'.",
"type": "string"
},
"is_test": {
"description": "Filter to test (true) or live (false) transactions.",
"type": "boolean"
},
"customer_email": {
"description": "Filter by the transaction's customer email.",
"type": "string"
},
"order": {
"description": "Sort expression, e.g. 'transaction_date desc'.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_get_transaction(id, zoom)
Get a single transaction by id, optionally zooming related resources (items, customer, payments, applied_taxesβ¦). Foxy hAPI: GET /transactions/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
],
"description": "Transaction id."
},
"zoom": {
"description": "Comma-separated related resources to embed, e.g. 'items,customer'.",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_list_subscriptions(store_id, limit, offset, is_active, zoom)
List a store's subscriptions (recurring orders). Returns a HAL collection embedding fx:subscriptions. Foxy hAPI: GET /stores/{store_id}/subscriptions.
Input Schema
{
"type": "object",
"properties": {
"store_id": {
"description": "Store id. If omitted, the default store (fx:store) is used.",
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
]
},
"limit": {
"description": "Max results per page (Foxy default 20).",
"type": "integer",
"minimum": 1,
"maximum": 300
},
"offset": {
"description": "Pagination offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"is_active": {
"description": "Filter to active (true) or inactive (false) subscriptions.",
"type": "boolean"
},
"zoom": {
"description": "Comma-separated related resources to embed, e.g. 'transaction_template,last_transaction'.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_get_subscription(id, zoom)
Get a single subscription by id, optionally zooming related resources. Foxy hAPI: GET /subscriptions/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
],
"description": "Subscription id."
},
"zoom": {
"description": "Comma-separated related resources to embed, e.g. 'transaction_template,original_transaction'.",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_list_customers(store_id, limit, offset, email)
List a store's customers. Returns a HAL collection embedding fx:customers. Foxy hAPI: GET /stores/{store_id}/customers.
Input Schema
{
"type": "object",
"properties": {
"store_id": {
"description": "Store id. If omitted, the default store (fx:store) is used.",
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
]
},
"limit": {
"description": "Max results per page (Foxy default 20).",
"type": "integer",
"minimum": 1,
"maximum": 300
},
"offset": {
"description": "Pagination offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"email": {
"description": "Filter by exact customer email.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_get_customer(id, zoom)
Get a single customer by id, optionally zooming related resources (default_billing_address, subscriptionsβ¦). Foxy hAPI: GET /customers/{id}.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
],
"description": "Customer id."
},
"zoom": {
"description": "Comma-separated related resources to embed.",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_list_carts(store_id, limit, offset, zoom)
List a store's carts (in-progress / abandoned checkouts). Returns a HAL collection embedding fx:carts. Foxy hAPI: GET /stores/{store_id}/carts.
Input Schema
{
"type": "object",
"properties": {
"store_id": {
"description": "Store id. If omitted, the default store (fx:store) is used.",
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
]
},
"limit": {
"description": "Max results per page (Foxy default 20).",
"type": "integer",
"minimum": 1,
"maximum": 300
},
"offset": {
"description": "Pagination offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"zoom": {
"description": "Comma-separated related resources to embed, e.g. 'items,customer'.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_list_coupons(store_id, limit, offset, zoom)
List a store's coupons (discount codes and their rules). Returns a HAL collection embedding fx:coupons. Foxy hAPI: GET /stores/{store_id}/coupons.
Input Schema
{
"type": "object",
"properties": {
"store_id": {
"description": "Store id. If omitted, the default store (fx:store) is used.",
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
]
},
"limit": {
"description": "Max results per page (Foxy default 20).",
"type": "integer",
"minimum": 1,
"maximum": 300
},
"offset": {
"description": "Pagination offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"zoom": {
"description": "Comma-separated related resources to embed, e.g. 'coupon_codes'.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’foxy_list_items(transaction_id, limit, offset, zoom)
List the line items of a transaction (the products purchased). Returns a HAL collection embedding fx:items. Foxy hAPI: GET /transactions/{transaction_id}/items.
Input Schema
{
"type": "object",
"properties": {
"transaction_id": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
],
"description": "Transaction id whose line items to list."
},
"limit": {
"description": "Max results per page (Foxy default 20).",
"type": "integer",
"minimum": 1,
"maximum": 300
},
"offset": {
"description": "Pagination offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"zoom": {
"description": "Comma-separated related resources to embed, e.g. 'item_options'.",
"type": "string"
}
},
"required": [
"transaction_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π΄foxy_update_customer(id, first_name, last_name, email)
UPDATES a customer's profile fields (first_name, last_name, email). This MODIFIES live store data. Foxy hAPI: PATCH /customers/{id}. Provide only the fields you want to change.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
],
"description": "Customer id to update."
},
"first_name": {
"description": "New first name.",
"type": "string"
},
"last_name": {
"description": "New last name.",
"type": "string"
},
"email": {
"description": "New email address.",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π΄foxy_update_subscription(id, next_transaction_date, frequency, is_active)
UPDATES a subscription β reschedule its next run (next_transaction_date), change its frequency, or activate/pause it (is_active). This MODIFIES live store data and affects future billing. Foxy hAPI: PATCH /subscriptions/{id}. Provide only the fields you want to change.
Input Schema
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "string"
}
],
"description": "Subscription id to update."
},
"next_transaction_date": {
"description": "Next run date, YYYY-MM-DD (reschedules the subscription).",
"type": "string"
},
"frequency": {
"description": "Billing frequency, e.g. '1m' (monthly), '2w' (2 weeks), '1y' (yearly).",
"type": "string"
},
"is_active": {
"description": "Set true to activate or false to pause the subscription.",
"type": "boolean"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence