freispace MCP Server
OfficialClick 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., "@freispace MCP Serverhow many vacation days do I have left this year?"
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.
freispace MCP Server
A Model Context Protocol (MCP) server that provides analytics and insights for the scheduling software freispace. This server enables AI assistants (e.g. Copilot, Gemini) to query data within freispace, such as project statistics and planning related information.
Overview
The freispace MCP Server connects any LLM with tooling capabilities to freispace to query analytical data.
Media teams using freispace can leverage the MCP server to make planning data available to the entire company using the company-wide AI (e.g. Copilot), without users having to be on freispace or even know about freispace, as well as help post-production teams make data-driven decisions while scheduling and planning.
Our MCP Server always respects user permissions, ensuring that the LLM will only be able to access data on a per-user level, ensuring data safety.
Example queries might be "Who worked with Person X in the past" or "How many vacation days do I have left?"
Related MCP server: Publora MCP Server
Prerequisites
freispace Flagship account
Valid MCP API key for freispace
During
beta, contact your freispace support team to obtain an MCP API key
Available Tools
All lookups are name-based. Partial names match; the first match is used.
get_current_user
Who the calling user is: name, email and linked staff record. No arguments. Use it to resolve "I"/"me"/"my" to a staff name.
"Who am I logged in as?"
get_staffs
List staff members with name, title and staff number.
status(optional):active(default),inactive,all
"List all staff members" · "Who are the developers in the company?"
find_resources
Search rooms/studios (suites), equipment/licenses (resources) and staff by name in one call, grouped by type.
search(optional): name or partial name; omit to list everythingstaff(optional):internalorexternalsite(optional): only suites at matching sitesstatus(optional):active(default),inactive,all
"Find Sammy" · "List external freelancers"
get_availability
Check when staff, suites or resources are free in a date window (default 14 days, max 92), considering bookings, public holidays and staff absences/work times.
type(required):staff,resource,suiteorsitesearch,staff,site,status(optional): entity selection as infind_resourcesfrom,to,days,weeks(optional): the date windowduration+duration_unit(optional): required free length (minutes,hoursordays)
"Is a studio free next Tuesday for 3 hours?" · "Who has 2 fully-free days in the next two weeks?"
get_my_schedule
The calling user's own bookings in a date window (default: next 7 days).
from,to,days,weeks(optional): the date window
"What's on my schedule this week?"
get_my_tasks
Tasks assigned to the calling user, with due date, priority and reference.
include_done(optional): also include completed tasks
"What are my open tasks?"
get_open_tasks
All open tasks of the team, with assignees.
reference(optional):project,bookingoruser
"Which project tasks are still open?"
get_staff_projects
List the projects a staff member is booked on, with date range and duration.
staff_name(required)
"What projects is Karl booked on?"
get_staff_collaborators
Show who a staff member has worked with, based on shared bookings.
staff_name(required)
"Who has Alexander worked with?"
get_staff_next_holiday
Get a staff member's next upcoming holiday (start, end, length, comment).
staff_name(optional; omit for the calling user)
"When is my next holiday?" · "When is Hendrikje on holiday?"
get_staff_holiday_quota
Get a staff member's holiday quota for one year: total, taken and remaining days.
staff_name(optional; omit for the calling user)year(optional; defaults to the current year)
"How many vacation days do I have left?"
get_project_stats
Booking statistics for one project: past vs upcoming bookings with per-status breakdown, plus the project timespan (first booking start, last booking end and the duration in days between them).
project_name(required)
"Show booking stats for Project Alpha" · "How long does Project Alpha run?"
get_project_team
List the staff members who worked on a project, with their number of bookings on it.
project_name(required)
"Who worked on the website redesign?"
get_project_tasks
Task status of one project: all tasks on the project and its bookings, with an open/done/overdue summary.
project_name(required)
"Are there open tasks on the documentary project?"
get_invoices
List invoices with filters and per-currency totals; paginated. Status buckets: draft, open, overdue, paid, partially-paid, canceled, locked.
search(optional): matches number, order number, subject, recipient addressstatus,number,date_min/date_max,due_date_min/due_date_max,sum_min/sum_max,outstanding_min/outstanding_max,sort,order,page,per_page(optional)
"Which invoices are overdue?" · "Open invoices for Acme"
get_offers
List offers (quotes) with filters and per-currency net totals; paginated. Status buckets: draft, locked, open, accepted, declined.
search,status,number,date_min/date_max,sum_min/sum_max,sort,order,page,per_page(optional)
"Show declined offers from this year"
get_orders
List orders (jobs) with their connected offers and invoices inline; paginated.
search(optional): matches order number and namestatus,number,date_min/date_max,sort,order,page,per_page(optional)
"What was quoted and billed on order 2026-014?"
search_docs
Search the freispace documentation and return the most relevant excerpts.
query(required)limit(optional): max excerpts, default 5
"How do I set up shift planning in freispace?"
Error Handling
Errors are returned to the calling model as short, actionable messages (e.g. Not found (404): Staff member with name 'X' not found. Call get_staffs to list valid staff names.). Diagnostics are logged to stderr; stdout carries only the MCP protocol.
⚠️ Beta Notice
Our freispace MCP server is currently in beta. All features are free during this period. We appreciate your feedback and patience as we continue to improve the platform.
License
MIT License - see LICENSE file for details.
Support
For support and questions:
Documentation: freispace documentation
Issues: GitHub Issues
Contact: freispace Support
Available Tools
18 toolsfind_resourcesA
Search rooms/studios (suites), equipment/licenses (resources) and staff by name in one call; results are grouped by type. Call without search to list everything. Use it to find entities and the exact names to pass to other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Only suites whose site name contains this text. | |
| staff | No | Only internal or only external staff. Omit for both. | |
| search | No | Name or partial name. Multiple words: every word must match. Omit to list everything. | |
| status | No | Entity status. Default active. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must explain behavioral traits. It discloses grouping and the ability to list everything without search, but lacks details on pagination, rate limits, authentication needs, case sensitivity, or result limits. The schema covers parameters completely, leaving some behavioral gaps.
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 three sentences long, front-loading the purpose and key behaviors. Every sentence adds value with 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?
Given moderate complexity and 100% schema coverage, the description covers the core functionality (search, list, group) and hints at the return structure (grouped by type). There is no output schema, so the description could explain the return format more fully, but it is adequate for a search tool.
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%, with each parameter described. The tool description adds value by explaining the combined search behavior (multiple words must all match) and the effect of omitting search. This provides useful context beyond the individual parameter descriptions.
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 searches for rooms/studios, equipment/licenses, and staff by name, with results grouped by type. It also distinguishes the tool's listing capability and its role in providing names for other tools, clearly differentiating from the sibling getters.
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 says to use it 'to find entities and the exact names to pass to other tools', which provides clear context. However, it does not explicitly state when not to use it or mention alternatives, though the sibling tools are all getters, making the usage guidance adequate but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_availabilityA
Check when staff, rooms (suites) or resources are FREE in a date window (default 14 days, max 92). Considers bookings, public holidays and staff absences/work times. Returns free time slots and fully-free days per entity, and whether a required duration fits. Select entities with search/site/status (names from find_resources).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Window end, YYYY-MM-DD (inclusive). | |
| days | No | Window ends this many days after start, inclusive (alternative to 'to'). Default 14. | |
| from | No | Window start, YYYY-MM-DD. Default today. | |
| site | No | Suites only: limit to suites whose site name contains this. | |
| type | Yes | Kind of entity to check. 'site' checks every suite of sites whose name matches search. | |
| staff | No | Staff type only: internal or external. Omit for both. | |
| weeks | No | Window length in weeks (overrides 'days'). | |
| search | No | Only entities matching this name/number/title. Omit for all. | |
| status | No | Entity status. Default active. | |
| duration | No | Required free length. Needs duration_unit. | |
| duration_unit | No | 'minutes'/'hours' need one contiguous free slot of that length; 'days' needs that many fully-free days. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently explains what the tool considers (bookings, holidays, absences) and what it returns (free slots, fully-free days, duration fit), compensating for lack of annotations.
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?
Two dense, informative sentences with no wasted words. First sentence covers purpose and constraints, second covers outputs and parameter hints.
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 11 parameters and no output schema, the description covers main inputs and outputs well, though it could clarify parameter interactions (e.g., to vs days vs weeks).
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 baseline is 3. The description adds minimal extra context beyond the schema, such as linking to find_resources for entity names.
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 verb 'check' and the resources (staff, rooms, resources), and distinguishes from sibling tools like find_resources by specifying it checks availability within a date window.
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 context on selecting entities using search/site/status but does not explicitly state when to use this tool over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_userA
Who the calling user is: name, email and their linked staff record. Use it to resolve 'I', 'me' or 'my' to a staff name for other tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 name, email, and linked staff record, which is adequate for a simple, read-only identity lookup. No side effects or destructive behaviors are mentioned, but none are expected.
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?
Two concise sentences with no wasted words. The first sentence states what the tool does, and the second sentence provides a practical usage hint.
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 there is no output schema, the description sufficiently covers the return values (name, email, staff record). The tool is simple and the description is complete for its purpose.
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 tool has no parameters, so the description does not need to add meaning beyond the schema. Baseline score of 4 applies as per instructions for zero-parameter tools.
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 returns the calling user's name, email, and linked staff record. It distinguishes itself from sibling tools like 'get_staffs' (which likely lists all staff) by focusing on the current user's identity.
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?
Explicitly advises using the tool to resolve pronouns like 'I', 'me', or 'my' to a staff name for other tools, providing clear context for when to invoke it. Does not explicitly mention when not to use it, but the purpose is narrow enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoicesA
List invoices with filters and per-currency totals; paginated. Status buckets: draft, open (finalized & unpaid, includes overdue), overdue, paid, partially-paid, canceled, locked. To find a client's invoices use search — it matches number, order number, subject and recipient address.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. Default 1. | |
| sort | No | Sort column. Default date. | |
| order | No | Sort direction. Default desc. | |
| number | No | Substring match on the invoice number. | |
| search | No | Match number, order number, subject or recipient address. | |
| status | No | Status bucket. Default all. | |
| sum_max | No | Maximum net total, major units. | |
| sum_min | No | Minimum net total in major currency units (e.g. euros). | |
| date_max | No | Invoice date to, YYYY-MM-DD. | |
| date_min | No | Invoice date from, YYYY-MM-DD. | |
| per_page | No | Results per page. Default 25. | |
| due_date_max | No | Payment due date to, YYYY-MM-DD. | |
| due_date_min | No | Payment due date from, YYYY-MM-DD. | |
| outstanding_max | No | Maximum outstanding balance, major units. | |
| outstanding_min | No | Minimum outstanding balance, major units. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by stating 'list invoices' and mentions pagination and per-currency totals. Since no annotations are provided, this is adequate but could explicitly confirm no side effects.
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 extremely concise: one sentence plus a list and a usage tip. Every part adds 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?
With 15 optional parameters and no output schema, the description gives a high-level view but lacks detail on return structure (e.g., which fields are in each invoice) and pagination behavior. The mention of per-currency totals is helpful but insufficient.
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 baseline is 3. The description adds minimal value beyond the schema: it introduces 'per-currency totals' (not in params) and enumerates status buckets (already in enum). It does not explain parameter format or interactions.
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 invoices with filters and pagination. It specifies the resource and action, but could be more specific about the scope (e.g., for the current user). Among sibling tools, it uniquely handles invoices.
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 advises using the 'search' parameter to find a client's invoices, providing explicit guidance for a common use case. However, it does not discuss when to avoid this tool or mention alternatives beyond the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_scheduleA
The calling user's own bookings in a date window (default: the next 7 days). Use it for questions like 'what is on my schedule this week'.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Window end, YYYY-MM-DD (inclusive). | |
| days | No | Window ends this many days after start, inclusive (alternative to 'to'). Default 7. | |
| from | No | Window start, YYYY-MM-DD. Default today. | |
| weeks | No | Window length in weeks (overrides 'days'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes read operation (calling user's own bookings) and default window (next 7 days). Does not specify whether past bookings are included or other behavioral details like cancellation status. Adequate but could be more explicit about the forward-looking nature.
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?
Two sentences, front-loaded with the main action. No redundant information. 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?
Given 4 optional parameters (all described in schema) and no output schema, the description is complete enough for a simple read tool. It explains what it does and when to use it. Could mention return type (list of bookings), but not essential.
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%, baseline 3. Description adds minimal extra beyond schema: it mentions default window and provides a usage example but does not clarify parameter interactions or constraints beyond schema definitions.
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?
Description clearly states verb ('get'), resource ('user's own bookings'), and scope ('in a date window'). Distinguishes from siblings by specifying 'calling user's own bookings', making it unique among tools like get_staff_collaborators or get_my_tasks.
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?
Explicitly says when to use it: for questions like 'what is on my schedule this week'. Implies context (user's own schedule) but does not explicitly exclude alternatives or mention when not to use. However, the context is clear from the description and sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_tasksA
Tasks assigned to the calling user, with due date, priority and what they reference. Default: open tasks only.
| Name | Required | Description | Default |
|---|---|---|---|
| include_done | No | Also include completed tasks. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It mentions returned data but lacks explicit disclosure of side effects (none implied), authentication needs, or read-only nature. Adequate but could be more explicit.
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 that conveys key information with no superfluous words. Efficiently front-loaded.
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 low-complexity tool with one parameter and no output schema, the description sufficiently covers purpose, returned fields, and default behavior. Lacks mention of read-only nature but is otherwise complete.
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 already describes the single parameter 'include_done' with 100% coverage. The tool description adds no further semantic value beyond stating the default, so baseline score 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 verb 'get' and resource 'tasks assigned to the calling user', and lists returned attributes (due date, priority, what they reference). It distinguishes from siblings like 'get_open_tasks' by specifying 'my tasks' and default behavior (open tasks only), making purpose unambiguous.
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 for retrieving the user's own tasks, defaulting to open tasks. It does not explicitly state when not to use or name alternatives, but the sibling context and default behavior provide reasonable guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_offersA
List offers (quotes) with filters and per-currency net totals; paginated. Status buckets: draft, locked, open (finalized, no decision yet), accepted, declined. Each offer shows how many invoices were created from it. Search matches number, order number, subject and recipient address.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. Default 1. | |
| sort | No | Sort column. Default date. | |
| order | No | Sort direction. Default desc. | |
| number | No | Substring match on the offer number. | |
| search | No | Match number, order number, subject or recipient address. | |
| status | No | Status bucket. Default all. | |
| sum_max | No | Maximum net total, major units. | |
| sum_min | No | Minimum net total in major currency units (e.g. euros). | |
| date_max | No | Offer date to, YYYY-MM-DD. | |
| date_min | No | Offer date from, YYYY-MM-DD. | |
| per_page | No | Results per page. Default 25. |
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 pagination, status buckets, per-currency net totals, and that each offer shows invoice count. It could mention authorization or rate limits, but for a read-only listing tool, this is good 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?
Two sentences, front-loaded with core functionality, no wasted words. Every sentence provides useful 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?
Given 11 parameters (all described), no output schema, and sibling context, the description covers filtering, pagination, statuses, search, and per-currency totals. It could explicitly state it returns a list of offers, but it's implied.
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 baseline is 3. The description adds value by explaining search behavior ('match number, order number, subject and recipient address') and that sum_min/sum_max are in major currency units, going beyond the schema.
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 starts with 'List offers (quotes) with filters and per-currency net totals; paginated,' which clearly states the tool's purpose. It distinguishes from siblings like get_invoices and get_orders by specifying 'offers (quotes)' and the specific status buckets.
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 explicitly state when to use this tool versus alternatives like get_invoices or get_orders. It implies usage for filtering and listing offers but lacks explicit guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_open_tasksA
All open (not yet completed) tasks of the team, with assignees, due dates and what they reference. For only the calling user's own tasks use get_my_tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| reference | No | Only tasks referencing this kind of entity. Omit for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It discloses return fields and optional filtering, but omits details like pagination, ordering, or authentication requirements. Adequate but not rich.
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?
Two sentences with no wasted words. First sentence succinctly describes purpose and output, second provides usage guidance.
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?
Simple tool with one optional param and no output schema. Description covers purpose, output, and filtering. Lacks details on ordering/limits, but still fairly complete given context.
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?
Single parameter 'reference' with 100% schema coverage. Description adds 'omit for all' nuance, but schema already describes enum. Baseline 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?
Description clearly states 'All open (not yet completed) tasks of the team' with specific fields (assignees, due dates, references). Distinguishes from sibling 'get_my_tasks'.
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?
Explicitly says when to use (team's open tasks) and provides alternative 'get_my_tasks' for own tasks. Clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ordersA
List orders (jobs) with their connected offers and invoices inline; paginated. Use it for questions like 'what was quoted and billed on order X'. Search matches order number and name.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. Default 1. | |
| sort | No | Sort column. Default number. | |
| order | No | Sort direction. Default desc. | |
| number | No | Substring match on the order number. | |
| search | No | Match order number or name. | |
| status | No | Order status. Default all. | |
| date_max | No | Created to, YYYY-MM-DD. | |
| date_min | No | Created from, YYYY-MM-DD. | |
| per_page | No | Results per page. Default 25. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses pagination, inline related data, and search matching. It could mention if the inline data includes full objects or summaries, but overall it is transparent.
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?
Two sentences achieve clarity: first states core function and features, second gives usage example. No wasted words, front-loaded with key info.
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 9 parameters and no output schema, the description hints at response structure (inline offers and invoices) and provides a usage question. It lacks explicit mention of pagination metadata or full response format, but is mostly complete.
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 baseline is 3. The description adds minimal new meaning beyond schema, tying parameters to a use case ('what was quoted and billed'). The search parameter clarification is redundant with schema.
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 it lists orders with connected offers and invoices inline, paginated, and provides a specific query example. It distinguishes from siblings like get_invoices or get_offers by emphasizing combined data.
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 a concrete use case ('what was quoted and billed on order X') and clarifies search behavior. It does not explicitly state when not to use it, but sibling tool names imply alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_statsA
Booking statistics for one project: how many bookings are in the past vs upcoming, with a per-status breakdown.
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | Yes | Project name. Partial names match; the first match is used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It indicates a read operation and outlines the output structure (past vs upcoming, per-status breakdown) but lacks details on side effects, authentication, or data modification. Behavioral context is adequate but not exhaustive.
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 concise sentence, front-loading the key information. It is well-structured and efficient, earning a high score.
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 explains what statistics are returned, but without an output schema, more detail on the exact structure of the per-status breakdown would be helpful. It is sufficient for a simple tool but leaves some ambiguity.
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% with a clear description for project_name. The tool description does not add additional meaning beyond the schema, meeting the baseline for full schema coverage.
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 provides booking statistics for one project, specifying past vs upcoming counts and per-status breakdown. It effectively distinguishes from sibling tools like get_project_tasks or get_offers by focusing on booking statistics.
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 for obtaining booking statistics but does not explicitly state when to use this tool versus alternatives like get_offers or get_orders. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_tasksA
Task status of one project: all tasks on the project and its bookings, with a summary of how many are open, done and overdue.
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | Yes | Project name. Partial names match; the first match is used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It states the tool returns tasks, bookings, and summary, but does not mention the partial-name matching behavior (which is only in parameter schema). It also does not disclose if it is read-only, though that can be inferred. It adds value beyond structured fields 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 a single concise sentence that conveys the essential purpose without any unnecessary words. It is front-loaded and 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?
Given the simplicity of the tool (one parameter, no output schema), the description adequately covers what the tool does. It mentions the summary counts, which is crucial. There is no missing information about return values or side effects, but could be slightly improved by explicitly noting the matching 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?
Schema coverage is 100%, so the parameter description already explains the partial-name matching. The tool description does not add new meaning beyond repeating 'one project', which is already implied by the param. 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 clearly states the tool retrieves task status for one project, including all tasks, bookings, and a summary of open/done/overdue counts. This distinguishes it from sibling tools like 'get_open_tasks' (which likely spans projects) and 'get_my_tasks' (personal).
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 use when needing task details for a specific project ('of one project'). It does not explicitly state when not to use or provide alternatives, but the context of siblings gives some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_teamA
List the staff members who worked on a project, with each person's number of bookings on it.
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | Yes | Project name. Partial names match; the first match is used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It implies a read operation ('List') but does not disclose authentication needs, rate limits, or whether the result includes all staff or paginated. For a simple listing tool, this is adequate but could state if there are any side effects or limitations.
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 concise sentence that immediately conveys the purpose and output. It is front-loaded and contains no extraneous words, earning 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?
Given the low complexity (1 parameter, no output schema, no nested objects), the description covers the essential purpose and returned data. It could be more complete by noting if only current staff are included or if historical data is returned, but it is largely sufficient for a basic list tool.
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%, and the input schema already provides a detailed description for 'project_name' including partial matching and first-match behavior. The tool description adds no additional parameter meaning beyond confirming the return includes booking counts, which is return info, not param semantics. Baseline 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 clearly states the verb 'List' and the resource 'staff members who worked on a project', and specifies what information is returned (number of bookings). It distinguishes from sibling tools like 'get_staff_projects' which lists projects for a staff member, not staff for a project.
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 no guidance on when to use this tool versus alternatives, such as when to use 'get_staff_projects' or 'get_project_tasks'. No explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_staff_collaboratorsA
Show who a staff member has worked with, based on shared bookings: each colleague with the bookings and projects they shared.
| Name | Required | Description | Default |
|---|---|---|---|
| staff_name | Yes | Staff member name. Partial names match; the first match is used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It mentions 'based on shared bookings' and 'first match is used' for staff_name, but does not disclose whether results are limited to active bookings, time range, or if the operation is read-only and non-destructive.
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, clear sentence that front-loads the purpose with no extraneous words. It is appropriately concise and structured.
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 (one parameter, no output schema), the description covers the core purpose and behavior. However, it lacks details on return format (e.g., list structure, pagination) and potential filtering scope, which slightly reduces 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 coverage is 100%, with the parameter 'staff_name' described as accepting partial names with first match. The description adds no further meaning beyond what the schema already provides, so a baseline score 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 clearly states the tool shows who a staff member has worked with based on shared bookings, including colleague details with bookings and projects. It is specific and distinguishes from sibling tools like get_staff_projects and get_project_team.
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 no explicit guidance on when to use this tool versus alternatives. It implies usage for retrieving collaboration data but lacks exclusions or comparisons to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_staff_holiday_quotaA
Get a staff member's holiday quota for one year: total, taken and remaining days. Omit staff_name to get the calling user's own quota.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Year, e.g. 2026. Defaults to the current year. | |
| staff_name | No | Staff member name. Partial names match; the first match is used. Omit for the calling user's own staff record. |
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 implies a read-only operation ('Get') and explains the return values (total, taken, remaining days). However, it does not disclose authentication requirements, rate limits, or potential side effects. For a simple getter, this is adequate but not exceptional.
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. Every sentence contributes useful information without verbosity. It is well-structured and 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?
Given the tool's simplicity (2 optional params, no output schema), the description covers the key aspects: what it returns, how to use staff_name, and the year parameter's default. It does not mention error conditions or edge cases, but the schema constraints (year min/max) partially cover that. Slightly lacking in depth but 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?
The input schema has 100% description coverage for both parameters. The description adds value by explaining the return values (total, taken, remaining days) which are not part of the schema. It also reiterates the usage hint, but the schema already covers that. Overall, it adds meaning beyond the schema.
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 verb 'Get', the resource 'staff member's holiday quota', and the scope 'for one year'. It also specifies what is returned: 'total, taken and remaining days'. This distinguishes it from siblings like 'get_staff_next_holiday' which returns a 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 guideline: 'Omit staff_name to get the calling user's own quota.' This helps the agent decide how to use the tool. However, it does not explicitly state when not to use it or list alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_staff_next_holidayA
Get a staff member's next upcoming holiday: start date, end date, length in days and comment. Omit staff_name to get the calling user's own next holiday.
| Name | Required | Description | Default |
|---|---|---|---|
| staff_name | No | Staff member name. Partial names match; the first match is used. Omit for the calling user's own staff record. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses returned fields but omits details on error handling (e.g., staff not found, no upcoming holiday), side effects, or authentication requirements. Adequate but not thorough.
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?
Two sentences with no filler. Front-loaded with output fields, then optional parameter behavior. Every word 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?
Describes return value fields and optional parameter. However, lacks edge-case behavior (e.g., no upcoming holiday returns null/empty). In a suite of many sibling tools, it provides clear distinction.
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 covers 100% and description adds significant value: explains partial name matching, first match rule, and omit-for-self behavior. Schema alone only gives parameter name and type.
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?
Description uses specific verb 'Get' and resource 'staff member's next upcoming holiday,' listing exact output fields (start date, end date, length, comment). Clearly distinguishes from siblings like get_staff_holiday_quota.
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?
States when to omit staff_name for self-service, but lacks explicit guidance on when to prefer this tool over alternatives (e.g., get_availability). Usage context is implied but not fully explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_staff_projectsA
List the projects a staff member is booked on, with each project's date range and duration in days.
| Name | Required | Description | Default |
|---|---|---|---|
| staff_name | Yes | Staff member name. Partial names match; the first match is used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the return structure but does not mention read-only nature, error handling, authentication requirements, or behavior for missing staff. Minimal disclosure beyond basic purpose.
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 no extraneous words. Every part adds value: action, resource, output elements. Optimal length for clarity.
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 one parameter and no output schema, the description adequately covers what is returned (date range and duration). Lacks handling of edge cases (no projects, staff not found) but overall sufficient for typical 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?
Schema coverage is 100% for a single parameter. The description adds no extra meaning beyond the schema's own description ('Staff member name. Partial names match; the first match is used.'). Baseline 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 clearly states the action ('list'), resource ('projects a staff member is booked on'), and returned information ('date range and duration in days'). It distinctively identifies the tool's purpose among siblings like get_staff_collaborators or get_my_schedule.
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 staff member's project assignments are needed, but provides no explicit guidance on when to prefer this tool over alternatives (e.g., get_my_tasks, get_project_team). No exclusions or selection criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_staffsA
List staff members with name, title and staff number. Default: active staff only. Use it to browse the team or to find the exact staff name for other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Staff status. Default active. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the default filter 'active staff only' but does not mention any other behavioral traits (e.g., read-only, ordering, pagination). Since no annotations exist, the description carries the burden but is sufficient 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?
Two sentences, no wasted words, front-loaded with essential 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?
For a simple tool with one optional parameter and no output schema, the description covers the key aspects: what it returns, default filter, and use case. Could mention absence of pagination but not critical.
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% (one parameter with description). The description adds 'Default: active staff only', which reinforces the schema's default but does not add significant new meaning.
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?
Description clearly states 'List staff members with name, title and staff number', specifying the verb and resource. It also differentiates from sibling tools like get_staff_collaborators by noting it is for browsing the team or finding exact names for other tools.
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?
Explicitly says 'Use it to browse the team or to find the exact staff name for other tools', giving clear context. Does not provide exclusion criteria or alternative tools, but the sibling list allows inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsA
Search the freispace documentation. Returns the most relevant excerpts. Use it for questions about how freispace itself works (features, settings, how-tos).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of excerpts. Default 5. | |
| query | Yes | The question or keywords to search the documentation for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Implies read-only (searches and returns excerpts) but doesn't explicitly state side effects or permissions. Adequate for a search tool.
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?
Two sentences: one states action and result, second gives usage guidance. No wasted words, well front-loaded.
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?
Covers essential information for a simple search tool. No output schema, but return values are implied. Parameter descriptions in schema cover details. Could mention limit default, but schema handles it.
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 baseline 3. Description adds no extra meaning beyond schema; both 'query' and 'limit' are adequately described in schema.
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?
Clear verb 'Search' with specific resource 'freispace documentation' and output 'most relevant excerpts'. Use case explicitly stated: questions about how freispace works, distinguishing it from sibling tools.
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?
Explicitly states when to use: for documentation-related questions about features, settings, how-tos. Does not explicitly mention alternatives or when not to use, but positive guidance is strong.
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. Dates show when Glama detected each change.
18 tool updates
v2.0.0- First observed
find_resources - First observed
get_availability - First observed
get_current_user - First observed
get_invoices - First observed
get_my_schedule - First observed
get_my_tasks - First observed
get_offers - First observed
get_open_tasks - First observed
get_orders - First observed
get_project_stats - First observed
get_project_tasks - First observed
get_project_team - First observed
get_staff_collaborators - First observed
get_staff_holiday_quota - First observed
get_staff_next_holiday - First observed
get_staff_projects - First observed
get_staffs - First observed
search_docs
TDQS
Each tool has a clearly distinct purpose, targeting specific entities (staff, projects, bookings, invoices, etc.) with no overlap. For example, get_my_schedule vs get_availability are differentiated by scope (own vs general), and get_my_tasks vs get_open_tasks are differentiated by assignment.
Most tools follow a 'get_<entity>' pattern, but two tools break the pattern: 'find_resources' uses 'find' and 'search_docs' uses 'search'. Additionally, 'get_staffs' is plural while others like 'get_invoices' are also plural but 'get_offers' is singular. Overall consistent but with minor deviations.
18 tools is well-scoped for a facility management server, covering staff, resources, bookings, projects, tasks, finances, and documentation without being excessive.
The tool set is entirely read-only (all 'get', 'find', 'search' operations). There are no create, update, or delete tools for any entity. This is a significant gap, as agents cannot modify any data, limiting the server's usefulness.
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
Official MCP server for subfeed.app — the cloud for agents. 15+ tools for AI agents to register, build, and deploy other agents. Zero human required. Start here: subfeed.app/skill.md
Official MCP server for OmniDimension. Drive voice agents, dispatch calls, and run bulk campaigns.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Related MCP Servers
- AlicenseAqualityFmaintenanceunofficial MCP (Model Context Protocol) server for Reclaim.ai calendar integration - manage tasks, habits, and smart scheduling through AI assistants like Claude.324MIT

Publora MCP Serverofficial
AlicenseBqualityCmaintenanceOfficial MCP server for Publora that enables AI assistants to schedule posts, manage accounts, and retrieve analytics across multiple social media platforms through natural language.18165MIT- AlicenseNot gradedqualityDmaintenanceAn unofficial MCP server that integrates Freelo project management with AI assistants (e.g., Cline, Claude) via the Freelo API, enabling task, project, and comment management through natural language.39MIT

dVersum MCP Serverofficial
AlicenseBqualityDmaintenanceOfficial MCP server for the dVersum business management API. Lets AI assistants like Claude Desktop, Cursor, and Windsurf interact with your dVersum workspace — managing clients, projects, tasks, invoices, time tracking, and more.100377MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/freispace/mcp-server-analytics'
If you have feedback or need assistance with the MCP directory API, please join our Discord server