{
  "markdown": "# freispace MCP Server\n\nA Model Context Protocol (MCP) server that provides analytics and insights for the [scheduling software freispace](https://freispace.com). This server enables AI assistants (e.g. Copilot, Gemini) to query data within freispace, such as project statistics and planning related information.\n\n## Overview\n\nThe freispace MCP Server connects any LLM with tooling capabilities to [freispace](https://freispace.com) to query analytical data.\n\nMedia 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.\n\nOur 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.\n\nExample queries might be \"Who worked with Person X in the past\" or \"How many vacation days do I have left?\"\n\n## Prerequisites\n\n1. [freispace Flagship](https://freispace.com/pricing) account\n2. Valid MCP API key for freispace\n    - During `beta`, contact your freispace support team to obtain an MCP API key\n\n## Available Tools\n\nAll lookups are name-based. Partial names match; the first match is used.\n\n### `get_current_user`\n\nWho the calling user is: name, email and linked staff record. No arguments. Use it to resolve \"I\"/\"me\"/\"my\" to a staff name.\n\n> \"Who am I logged in as?\"\n\n### `get_staffs`\n\nList staff members with name, title and staff number.\n\n- `status` (optional): `active` (default), `inactive`, `all`\n\n> \"List all staff members\" · \"Who are the developers in the company?\"\n\n### `find_resources`\n\nSearch rooms/studios (suites), equipment/licenses (resources) and staff by name in one call, grouped by type.\n\n- `search` (optional): name or partial name; omit to list everything\n- `staff` (optional): `internal` or `external`\n- `site` (optional): only suites at matching sites\n- `status` (optional): `active` (default), `inactive`, `all`\n\n> \"Find Sammy\" · \"List external freelancers\"\n\n### `get_availability`\n\nCheck 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.\n\n- `type` (required): `staff`, `resource`, `suite` or `site`\n- `search`, `staff`, `site`, `status` (optional): entity selection as in `find_resources`\n- `from`, `to`, `days`, `weeks` (optional): the date window\n- `duration` + `duration_unit` (optional): required free length (`minutes`, `hours` or `days`)\n\n> \"Is a studio free next Tuesday for 3 hours?\" · \"Who has 2 fully-free days in the next two weeks?\"\n\n### `get_my_schedule`\n\nThe calling user's own bookings in a date window (default: next 7 days).\n\n- `from`, `to`, `days`, `weeks` (optional): the date window\n\n> \"What's on my schedule this week?\"\n\n### `get_my_tasks`\n\nTasks assigned to the calling user, with due date, priority and reference.\n\n- `include_done` (optional): also include completed tasks\n\n> \"What are my open tasks?\"\n\n### `get_open_tasks`\n\nAll open tasks of the team, with assignees.\n\n- `reference` (optional): `project`, `booking` or `user`\n\n> \"Which project tasks are still open?\"\n\n### `get_staff_projects`\n\nList the projects a staff member is booked on, with date range and duration.\n\n- `staff_name` (required)\n\n> \"What projects is Karl booked on?\"\n\n### `get_staff_collaborators`\n\nShow who a staff member has worked with, based on shared bookings.\n\n- `staff_name` (required)\n\n> \"Who has Alexander worked with?\"\n\n### `get_staff_next_holiday`\n\nGet a staff member's next upcoming holiday (start, end, length, comment).\n\n- `staff_name` (optional; omit for the calling user)\n\n> \"When is my next holiday?\" · \"When is Hendrikje on holiday?\"\n\n### `get_staff_holiday_quota`\n\nGet a staff member's holiday quota for one year: total, taken and remaining days.\n\n- `staff_name` (optional; omit for the calling user)\n- `year` (optional; defaults to the current year)\n\n> \"How many vacation days do I have left?\"\n\n### `get_project_stats`\n\nBooking 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).\n\n- `project_name` (required)\n\n> \"Show booking stats for Project Alpha\" · \"How long does Project Alpha run?\"\n\n### `get_project_team`\n\nList the staff members who worked on a project, with their number of bookings on it.\n\n- `project_name` (required)\n\n> \"Who worked on the website redesign?\"\n\n### `get_project_tasks`\n\nTask status of one project: all tasks on the project and its bookings, with an open/done/overdue summary.\n\n- `project_name` (required)\n\n> \"Are there open tasks on the documentary project?\"\n\n### `get_invoices`\n\nList invoices with filters and per-currency totals; paginated. Status buckets: `draft`, `open`, `overdue`, `paid`, `partially-paid`, `canceled`, `locked`.\n\n- `search` (optional): matches number, order number, subject, recipient address\n- `status`, `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)\n\n> \"Which invoices are overdue?\" · \"Open invoices for Acme\"\n\n### `get_offers`\n\nList offers (quotes) with filters and per-currency net totals; paginated. Status buckets: `draft`, `locked`, `open`, `accepted`, `declined`.\n\n- `search`, `status`, `number`, `date_min`/`date_max`, `sum_min`/`sum_max`, `sort`, `order`, `page`, `per_page` (optional)\n\n> \"Show declined offers from this year\"\n\n### `get_orders`\n\nList orders (jobs) with their connected offers and invoices inline; paginated.\n\n- `search` (optional): matches order number and name\n- `status`, `number`, `date_min`/`date_max`, `sort`, `order`, `page`, `per_page` (optional)\n\n> \"What was quoted and billed on order 2026-014?\"\n\n### `search_docs`\n\nSearch the freispace documentation and return the most relevant excerpts.\n\n- `query` (required)\n- `limit` (optional): max excerpts, default 5\n\n> \"How do I set up shift planning in freispace?\"\n\n## Error Handling\n\nErrors 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.\n\n## ⚠️ Beta Notice\n\nOur 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.\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Support\n\nFor support and questions:\n- **Documentation**: [freispace documentation](https://docs.freispace.com)\n- **Issues**: [GitHub Issues](https://github.com/freispace/mcp-server-analytics/issues)\n- **Contact**: [freispace Support](https://freispace.com/support)\n",
  "bytes": 6926,
  "sha": "6629d674b74c7baa7ea1c8dcc3c4b554d688f5c739578d327557c2b9b1bae5ef",
  "repo_slug": "freispace/mcp-server-analytics",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_freispace_mcp_server_analytics_54d925e4/readme"
}