Famly MCP by usefulapi

Review Famly sites, staff, invoices and payments through its public API.

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
82%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'famly_list_sites' description lacks action verbin famly_list_sites

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,222Tokens (tool definitions)
~1.5 KBTypical response size
Significant attention impact (2.52% of 128k context)

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": {
    "famly": {
      "url": "https://famly.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

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

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢famly_list_sites(siteIds, organizationId)

Site IDs and titles accessible to this API token. Sites are currently not paginated by Famly. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "organizationId": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_list_groups(siteSetIds)

Room/group IDs, titles, institution IDs and staffing ratios for the requested site sets. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteSetIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    }
  },
  "required": [
    "siteSetIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_list_employees(siteIds, employeeIds, includeFuture, includePast, pageSize, ...)

Staff directory and employment dates. No home address, birth date, gender, telephone or photographs. Continue using next, including after an empty page. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "employeeIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "includeFuture": {
      "default": false,
      "type": "boolean"
    },
    "includePast": {
      "default": false,
      "type": "boolean"
    },
    "pageSize": {
      "default": 100,
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "next": {
      "description": "Opaque next cursor from the previous page. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 4096,
      "pattern": "^[^\\x00-\\x1f\\x7f]+$"
    }
  },
  "required": [
    "siteIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_list_invoices(siteIds, nextToken, createdDateRange, invoiceDateRange)

Invoice IDs, numbers, totals and dates, excluding line descriptions, child records and PDF links. One page per call. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "nextToken": {
      "description": "Opaque next cursor from the previous page. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 4096,
      "pattern": "^[^\\x00-\\x1f\\x7f]+$"
    },
    "createdDateRange": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string"
        }
      },
      "required": [
        "from"
      ]
    },
    "invoiceDateRange": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string"
        }
      },
      "required": [
        "from"
      ]
    }
  },
  "required": [
    "siteIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_get_invoices(invoiceIds)

Invoice summaries for known invoice IDs: numbers, totals, dates and bill payer IDs. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "invoiceIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    }
  },
  "required": [
    "invoiceIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_list_payments(siteIds, nextToken, paymentDateRange, createdDateRange, pageSize, ...)

Payment amounts, dates, method, currency and transaction status. Excludes notes, bank details, child records and payment metadata. One page per call. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "nextToken": {
      "description": "Opaque next cursor from the previous page. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 4096,
      "pattern": "^[^\\x00-\\x1f\\x7f]+$"
    },
    "paymentDateRange": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string"
        }
      },
      "required": [
        "from"
      ]
    },
    "createdDateRange": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string"
        }
      },
      "required": [
        "from"
      ]
    },
    "pageSize": {
      "default": 100,
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "includeDeleted": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "siteIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_list_purchases(siteIds, nextToken, purchaseDateRange, pageSize)

Ad-hoc purchase IDs, status, totals and invoice IDs, excluding child records and booking details. With a date range request one site at a time. One page per call. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "nextToken": {
      "description": "Opaque next cursor from the previous page. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 4096,
      "pattern": "^[^\\x00-\\x1f\\x7f]+$"
    },
    "purchaseDateRange": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string"
        }
      },
      "required": [
        "from"
      ]
    },
    "pageSize": {
      "default": 50,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "siteIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_list_account_codes(siteIds, includeDeleted)

Accounting code IDs, titles and references for the requested sites. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "includeDeleted": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "siteIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_list_bill_payers(siteIds, nextToken, includeDeleted)

Billing identities, names, balances and billing references. Excludes bank accounts, social security numbers, contact details, notes and child records. One page per call. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "nextToken": {
      "description": "Opaque next cursor from the previous page. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 4096,
      "pattern": "^[^\\x00-\\x1f\\x7f]+$"
    },
    "includeDeleted": {
      "default": false,
      "type": "boolean"
    }
  },
  "required": [
    "siteIds"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_list_work_tags(siteSetId)

Staff work-tag IDs, names, colour and payroll codes for a site set. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteSetId": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    }
  },
  "required": [
    "siteSetId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_get_staff_hours_totals(siteSetId, dateRange, employeeIds, groupIds, pageSize, ...)

Staff contracted, attended, scheduled and break minutes plus differences. Excludes leave categories, health information and notes. Date range maximum 365 days; one page per call. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "siteSetId": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "dateRange": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string"
        }
      },
      "required": [
        "from",
        "to"
      ]
    },
    "employeeIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "groupIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
      }
    },
    "pageSize": {
      "default": 50,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "next": {
      "description": "Opaque next cursor from the previous page. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 4096,
      "pattern": "^[^\\x00-\\x1f\\x7f]+$"
    }
  },
  "required": [
    "siteSetId",
    "dateRange"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢famly_list_employee_checkins(SiteSetId, range, nextToken)

Staff check-in/out timestamps and work-tag IDs. Excludes manager notes and all child check-ins. Famly may return the full date range when nextToken is omitted: narrow the range. If next is returned, pass it as nextToken. Uses the Famly Public API; results depend on token permissions.

Input Schema

{
  "type": "object",
  "properties": {
    "SiteSetId": {
      "type": "string",
      "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    },
    "range": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string"
        }
      },
      "required": [
        "from",
        "to"
      ]
    },
    "nextToken": {
      "description": "Opaque next cursor from the previous page. Omit for the first page.",
      "type": "string",
      "minLength": 1,
      "maxLength": 4096,
      "pattern": "^[^\\x00-\\x1f\\x7f]+$"
    }
  },
  "required": [
    "SiteSetId",
    "range"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools