AlayaCare MCP Server
Enables n8n AI agents to query and manage AlayaCare data through MCP, allowing automation of home care workflows.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AlayaCare MCP ServerShow me all missed visits in the last 7 days."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AlayaCare MCP Server
An MCP (Model Context Protocol) server that bridges the AlayaCare home care platform with AI agents — including N8N AI Agent workflows powered by Claude or GPT.
Architecture
N8N Workflow
└── AI Agent Node (LLM: Claude / GPT)
└── MCP Client Node ← built into N8N
└── AlayaCare MCP Server ← this project
└── AlayaCare REST API (basic auth)Related MCP server: MaterCare Homes MCP Server
Tools exposed to the AI agent
Tool | What it answers |
| Who are all the active PSWs and where do they live? |
| Details on a specific PSW |
| Who are all the active clients and where are their service addresses? |
| Details on a specific client |
| What visits are scheduled in a date range? |
| What is a specific PSW's full schedule? |
| Which PSWs are over/under-utilized? |
| Which clients live closest to a given PSW? |
| Which PSWs live closest to a given client? |
| What are the travel distances between a PSW's visits on a given day? |
Prerequisites
Node.js 18+
An AlayaCare account with API access enabled
Basic auth credentials (username + password) for the AlayaCare API
Addresses in AlayaCare must have latitude/longitude populated for geo tools to work (use a geocoding step or AlayaCare's built-in geocoding if available)
Setup
# 1. Clone and install
git clone https://github.com/deathracr/alayacare-mcp.git
cd alayacare-mcp
npm install
# 2. Configure environment
cp .env.example .env
# Edit .env with your AlayaCare credentials
# 3. Build
npm run build
# 4. Run
npm startConfiguration (.env)
# Your AlayaCare instance URL
ALAYACARE_BASE_URL=https://yourcompany.alayacare.com
# Basic auth credentials
ALAYACARE_USERNAME=your_api_username
ALAYACARE_PASSWORD=your_api_password
# Transport mode: "stdio" for N8N stdio node, "sse" for HTTP
MCP_TRANSPORT=stdio
# Port — only used when MCP_TRANSPORT=sse
MCP_PORT=3000Connecting to N8N
Option A: SSE transport (recommended for N8N cloud / remote)
Run the server with
MCP_TRANSPORT=sseon a host reachable by N8NIn N8N, add an MCP Client node
Set the SSE URL to
http://your-server:3000/sse
Option B: stdio transport (N8N self-hosted, same machine)
Run with
MCP_TRANSPORT=stdio(default)In N8N MCP node, choose stdio and point to
node /path/to/dist/index.js
Example questions your AI agent can answer
"Which PSWs are under-utilized this week?"
"Find the 5 clients closest to PSW #42."
"Show me all missed visits in the last 7 days."
"How many hours is Sarah Johnson scheduled for next week?"
"Which PSW lives closest to client #107?"
"Analyze the travel efficiency of PSW #15's schedule for tomorrow."
Important notes
Geocoding: The distance-based tools (find_nearest_clients, find_nearest_psw_for_client, analyze_schedule_travel) require that addresses in AlayaCare have latitude and longitude fields populated. If your AlayaCare instance stores only street addresses, you will need to run a geocoding step to enrich the data.
API endpoint paths: AlayaCare API paths are configured in src/alayacare/client.ts. If your instance uses different URL patterns, update the paths in getEmployees, getPatients, and getVisits.
Rate limiting: The client paginates automatically (100 records per page). For large datasets, consider adding caching.
Available Tools
10 toolsanalyze_schedule_travelA
Analyze a PSW's day schedule: visit order, gaps between visits, travel distances between consecutive stops, and total care hours. Identifies inefficient routing.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date to analyze in YYYY-MM-DD format | 2026-08-02 |
| employee_id | Yes | The PSW's AlayaCare employee ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the analysis outputs (visit order, gaps, distances, care hours) and its purpose ('Identifies inefficient routing'), making the tool's behavior transparent. However, it does not explicitly state that it is read-only or describe any side effects, though this is strongly implied by the word 'Analyze'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The first sentence front-loads the verb and scope, and the second adds value by stating the analytical purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, but the description enumerates exactly what it computes (visit order, gaps, travel distances, care hours, routing efficiency), giving an agent a solid idea of the expected result. It doesn't detail output format, but for a 2-param read-only analysis tool, this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the schema (100% coverage), so the description adds little beyond the schema. It mentions the schedule context but does not elaborate on parameter semantics, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Analyze' with a well-defined resource ('a PSW's day schedule') and lists concrete aspects (visit order, gaps, travel distances, total care hours). This clearly distinguishes it from sibling tools like get_psw_schedule or get_visits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for evaluating routing efficiency but does not explicitly state when to use it over siblings or mention exclusions. The context is clear enough for selection, but there is no direct 'use this instead of X' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_nearest_clientsA
Given a PSW, rank all active clients by distance from the PSW's home address. Useful for identifying which clients are geographically closest and reducing travel time.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of clients to return | |
| employee_id | Yes | The PSW's AlayaCare employee ID | |
| max_distance_km | No | Only return clients within this distance in kilometers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the ranking basis and active-client filter, but it does not clarify the effect of the limit parameter (default 10) or max_distance_km, potentially misleading an agent into thinking all clients are returned. The phrase 'rank all active clients' overlooks the default limit, creating a transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core action in the first sentence and a use case in the second. Every word contributes value, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers the core functionality and context for a moderate-complexity tool. It lacks an explicit return format, but given the schema's clarity and the tool's straightforward purpose, the description is reasonably complete. A slight deduction is made for not addressing the limit behavior beyond the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with descriptions for employee_id, limit, and max_distance_km. The description adds no parameter-specific meaning beyond saying 'Given a PSW,' which maps to employee_id. Since the schema already documents each parameter, the description provides no additional semantics, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Given a PSW, rank all active clients by distance from the PSW's home address.' It specifies the verb (rank), resource (active clients), and input (PSW), and differentiates from the sibling tool find_nearest_psw_for_client by focusing on the PSW-to-clients direction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating it is 'useful for identifying which clients are geographically closest and reducing travel time.' It implicitly suggests when to use the tool, but it does not explicitly mention alternatives or exclusions, such as when to use list_clients or find_nearest_psw_for_client instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_nearest_psw_for_clientA
Given a client, rank all active PSWs by how close their home is to the client's service address. Useful for finding the most travel-efficient PSW assignment.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of PSWs to return | |
| patient_id | Yes | The client's AlayaCare patient ID | |
| max_distance_km | No | Only return PSWs within this distance in kilometers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context by specifying it ranks active PSWs and uses proximity to service address. However, with no annotations provided, it does not explicitly state read-only behavior, permissions, or side effects, and the phrase 'all active PSWs' is slightly ambiguous given the limit parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and has no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should clarify return values; it does not specify what is returned (e.g., PSW IDs, distances). Additionally, interactions with limit and max_distance_km are not described. However, the core behavior is clear enough for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have descriptions in the schema (100% coverage), and the description does not add any parameter-specific semantics. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool ranks active PSWs by proximity to the client's service address, using a specific verb (rank) and resource (active PSWs). It distinguishes from sibling tools by focusing on travel-efficient assignment for a single client.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context ('Useful for finding the most travel-efficient PSW assignment') but does not explicitly mention alternatives or when not to use it. This gives clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clientA
Get detailed information about a single client / patient by their ID.
| Name | Required | Description | Default |
|---|---|---|---|
| patient_id | Yes | The AlayaCare patient ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of explaining behavior. It only says 'Get detailed information' without disclosing return structure, error handling (e.g., if ID not found), or any permissions needed. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero waste. It immediately states the action and resource, making it easy for an agent to parse efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool, the description is minimally adequate. However, with no output schema, it doesn't clarify what 'detailed information' includes, leaving a notable gap. It's functional but not rich enough for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter patient_id is well-documented in the schema. The description simply reiterates 'by their ID' and adds no extra meaning beyond what the schema already provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed information about a single client by ID, using a specific verb ('Get') and resource ('client / patient'). This distinguishes it from siblings like list_clients (which lists multiple) and get_psw (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use the tool: when you have a specific patient ID and need details for one client. It doesn't explicitly mention alternatives or when not to use it, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pswA
Get detailed information about a single PSW / employee by their ID.
| Name | Required | Description | Default |
|---|---|---|---|
| employee_id | Yes | The AlayaCare employee ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It clearly states this is a read operation ('Get') but does not disclose the return structure, error behavior, or any data scope. The phrase 'detailed information' is vague and adds little beyond the tool name and schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is front-loaded with the action and resource, scoring high on conciseness, though it may be terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only one parameter and no output schema, so the description is the sole indicator of what 'detailed information' means. It does not specify the fields returned or differentiate from schedule/utilization getters, making it incomplete for an AI to predict the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter employee_id (with description 'The AlayaCare employee ID'), giving 100% coverage. The description's 'by their ID' adds no additional meaning, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and identifies the resource as 'detailed information about a single PSW / employee by their ID.' It distinguishes from sibling tools like list_psws by emphasizing 'single' and 'by their ID,' clearly indicating an individual lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a specific employee ID is known, but it does not explicitly contrast with alternatives such as list_psws, get_psw_schedule, or get_psw_utilization. The context is clear but no exclusions or alternative guidance are provided, leaving it at an implied level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psw_scheduleA
Get the full visit schedule for a specific PSW within a date range. Shows all their assigned clients, times, and locations.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End date in YYYY-MM-DD format | 2026-08-09 |
| start_date | No | Start date in YYYY-MM-DD format | 2026-08-02 |
| employee_id | Yes | The PSW's AlayaCare employee ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It clearly indicates a read operation through 'Get' and 'Shows', and it describes the content of the response (clients, times, locations). However, it does not disclose potential pitfalls such as permission requirements, pagination limits, or the behavior when no visits exist or when the date range is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the first sentence stating the core function and the second adding relevant output details. It is front-loaded and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, no output schema, and complete parameter documentation in the schema, the description adequately explains the tool's purpose and expected output. It covers the key aspects: the scope (specific PSW, date range) and the content (clients, times, locations). It is sufficient for an agent to decide when to use it and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since all three parameters have descriptions in the input schema, the schema coverage is 100%. The description adds no new semantic detail beyond what the schema already provides; it merely restates the date-range concept and 'specific PSW' without elaborating on the parameter meanings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the explicit verb 'Get' and specifies the resource as 'full visit schedule for a specific PSW within a date range'. It also clarifies the output ('assigned clients, times, and locations'), which distinguishes it from sibling tools like get_psw (returns PSW profile) or get_visits (likely general visits).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it name any sibling tools or exclusions. The context is implied by the phrase 'for a specific PSW', but no direct comparison or alternative is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psw_utilizationA
Calculate utilization rates for PSWs — how many hours they are scheduled versus how many hours they are available. Identifies under- or over-utilized workers.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End of the analysis period (YYYY-MM-DD). Defaults to end of current week. | |
| start_date | No | Start of the analysis period (YYYY-MM-DD). Defaults to start of current week. | |
| employee_ids | No | Limit analysis to specific PSW IDs. Omit to analyze all active PSWs. | |
| max_utilization_pct | No | Only return PSWs with utilization at or below this threshold | |
| min_utilization_pct | No | Only return PSWs with utilization at or above this threshold |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains the calculation and outcome (identifies under/over-utilized workers), but does not disclose return format, whether it's a read-only operation, or any edge cases. It adds some value but lacks full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two coherent sentences, front-loaded with the primary action and outcome. It wastes no words and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema, the description is moderately complete. It conveys the purpose but does not specify the return shape, how thresholds affect results, or any default behavior. The schema covers parameters, so the description could be more detailed about outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context about the utilization concept but does not elaborate on individual parameters like date ranges, employee_ids, or utilization thresholds. It does not go beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Calculate') and resource ('PSWs'), and explains the metric (scheduled vs. available hours). It distinguishes itself from siblings like get_psw_schedule or list_psws by focusing on utilization analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this to calculate utilization rates and identify under/over-utilized workers. It implies when to use it, but does not explicitly mention alternatives or state when not to use it, so it stops short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_visitsB
Retrieve scheduled visits within a date range, optionally filtered by PSW or client. Returns each visit's timing, status, assigned PSW, and client.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by visit status | all |
| end_date | No | End date in YYYY-MM-DD format (default: 7 days from today) | 2026-08-09 |
| patient_id | No | Limit to a specific client | |
| start_date | No | Start date in YYYY-MM-DD format (default: today) | 2026-08-02 |
| employee_id | No | Limit to a specific PSW |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the burden of behavioral disclosure. It indicates a read-only operation ('Retrieve') and describes the return fields, which is useful. However, it does not mention default date ranges, status filtering behavior, or any limitations, leaving some behavioral traits undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb, and contains no extraneous information. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 5 optional parameters and no output schema. The description specifies return fields, which helps, but it omits the status filter and default date behavior, and it doesn't explain how this relates to sibling tools. It is adequate for a simple retrieval but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minimal value by mentioning PSW and client filters, but it does not map these to parameter names or explain the status and date parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves visits within a date range, with optional filters for PSW or client, and specifies returned fields. This distinguishes it from sibling tools like get_psw_schedule. However, the phrase 'scheduled visits' is potentially misleading because the status filter includes completed, missed, and cancelled, suggesting all visits rather than only status=scheduled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but provides no guidance on when to choose it over alternatives such as get_psw_schedule or analyze_schedule_travel. There are no exclusions or recommended contexts, making it hard for an agent to select among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_clientsA
List all clients (patients) receiving care, including their service addresses. Use this to understand where visits take place geographically.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter clients by their care status | active |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns service addresses and frames the geographic use case. However, it does not mention the status filter or default behavior (active), which is only in the schema, nor does it address pagination or result size. The description adds some context but is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first states the core function and key included field, and the second gives a practical usage example. There is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description plus schema provide a solid understanding. It states what the tool does, the key data returned (service addresses), and a use case. The only gap is lack of mention of pagination or explicit default behavior, but these are relatively minor for this simple list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% for the only parameter (status), including enum values, default, and an explanation. The tool description adds no additional parameter semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and clearly identifies the resource as 'clients (patients) receiving care'. It adds a distinguishing detail: 'including their service addresses', and the phrasing 'List all clients' distinguishes it from sibling tools like get_client (singular) or list_psws (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: 'Use this to understand where visits take place geographically.' This tells the agent when to invoke the tool. However, it does not explicitly mention alternatives or when not to use it, which prevents a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pswsA
List all Personal Support Workers (PSWs / employees) with their home addresses and status. Use this to understand who is on the team and where they live.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter employees by employment status | active |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It discloses that the tool returns home addresses and status, which is useful. However, it says 'List all PSWs' while the schema default is 'active', potentially misleading about the default behavior. It also does not mention privacy/sensitivity of address data or pagination, though those are less critical for a simple list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the main action and outcome and immediately gives practical usage context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with a well-documented single parameter and no output schema, the description adequately covers what the tool returns and why to use it. It loses one point for not clarifying the active-by-default filter, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'status' parameter, including an enum and default value, so the schema already fully explains parameter semantics. The description adds no new parameter details, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all Personal Support Workers (PSWs/employees) with their home addresses and status, using the specific verb 'list' plus the resource. It naturally distinguishes from sibling tools like get_psw (single PSW) and list_clients (different resource type).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'Use this to understand who is on the team and where they live,' giving clear context for when to use it. It does not explicitly name alternatives or exclusions, but the purpose is straightforward enough that this is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v1.0.0- First observed
analyze_schedule_travel - First observed
find_nearest_clients - First observed
find_nearest_psw_for_client - First observed
get_client - First observed
get_psw - First observed
get_psw_schedule - First observed
get_psw_utilization - First observed
get_visits - First observed
list_clients - First observed
list_psws
TDQS
Scored across 10 tools
Each tool targets a distinct resource and action: PSW management, client management, visit retrieval, schedule analysis, utilization, and distance-based matching. Even similar tools like get_visits and get_psw_schedule differ by scope and filter, causing no real ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_psws, get_client, find_nearest_clients). The naming is predictable and clearly indicates the operation and target resource.
Ten tools is well-scoped for a home-care scheduling domain. Each tool serves a clear purpose without redundancy, covering list/get, scheduling, analysis, and optimization in a balanced way.
The server covers the read and analysis side thoroughly: PSW/client info, visit retrieval, schedule analysis, and travel optimization. Missing write operations (create/update/delete) might be intentional for an analytics tool, but there is no direct way to modify schedules or assignments, which is a minor gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Build and manage AI-native customer support agents from Claude or any MCP client.
CRM, relationship intelligence, and multi-agent orchestration for AI agents.
Connect, monitor, and control AI agents — tasks, approvals, schedules, and governance.
Connect AI agents to financial institution origination, analytics, and compliance workflows.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables LLM-based agents to interact with FHIR healthcare data through natural language prompts, providing full CRUD operations on FHIR resources, document processing, and semantic search capabilities.1398MIT
- AlicenseNot gradedqualityDmaintenanceAn AI-powered eldercare platform that enables AI agents to monitor passive sensors, generate personalized care plans, and access specialized healthcare knowledge bases. It provides tools for passive monitoring of senior activities, medical document OCR, and real-time alert management for caregivers.MIT

Watsonx.data Document Libraryofficial
AlicenseNot gradedqualityCmaintenanceBridges AI agents with watsonx.data document libraries, enabling natural language queries and intelligent retrieval from document libraries.4Apache 2.0
vClinic MCP Serverofficial
FlicenseNot gradedqualityCmaintenanceEnables AI agents to manage virtual clinic data including patients, visits, diagnoses, treatments, lab/radiology orders, and search medical literature and internal knowledge base.-