https://github.com/freispace/mcp-server-analytics
freispace MCP Server
https://github.com/freispace/mcp-server-analytics
mcp mcp-server mcp-tools
Last synced: 2 days ago
JSON representation
freispace MCP Server
- Host: GitHub
- URL: https://github.com/freispace/mcp-server-analytics
- Owner: freispace
- License: mit
- Created: 2025-10-20T15:29:39.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-07-03T16:09:24.000Z (2 days ago)
- Last Synced: 2026-07-03T17:00:17.630Z (2 days ago)
- Topics: mcp, mcp-server, mcp-tools
- Language: TypeScript
- Homepage: https://freispace.com
- Size: 165 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# freispace MCP Server
A 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.
## Overview
The freispace MCP Server connects any LLM with tooling capabilities to [freispace](https://freispace.com) 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?"
## Prerequisites
1. [freispace Flagship](https://freispace.com/pricing) account
2. 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 everything
- `staff` (optional): `internal` or `external`
- `site` (optional): only suites at matching sites
- `status` (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`, `suite` or `site`
- `search`, `staff`, `site`, `status` (optional): entity selection as in `find_resources`
- `from`, `to`, `days`, `weeks` (optional): the date window
- `duration` + `duration_unit` (optional): required free length (`minutes`, `hours` or `days`)
> "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`, `booking` or `user`
> "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.
- `project_name` (required)
> "Show booking stats for Project Alpha"
### `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 address
- `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)
> "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 name
- `status`, `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](LICENSE) file for details.
## Support
For support and questions:
- **Documentation**: [freispace documentation](https://docs.freispace.com)
- **Issues**: [GitHub Issues](https://github.com/freispace/mcp-server-analytics/issues)
- **Contact**: [freispace Support](https://freispace.com/support)