Freelancer Ops MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITHUB_TOKEN | No | Your own GitHub personal access token (repo, read:user scopes). Can alternatively be stored in your OS keychain via `freelancer-ops-mcp login github`. | |
| LINEAR_API_KEY | No | Your own Linear personal API key. Can alternatively be stored in your OS keychain via `freelancer-ops-mcp login linear`. | |
| STRIPE_API_KEY | No | Your own Stripe key (Secret or restricted key). Can alternatively be stored in your OS keychain via `freelancer-ops-mcp login stripe`. | |
| GRANOLA_API_KEY | No | Your own Granola API key (Business plan or above). Can alternatively be stored in your OS keychain via `freelancer-ops-mcp login granola`. | |
| GOOGLE_CLIENT_ID | No | OAuth client ID for Google (Drive, Calendar, Gmail, Docs, Sheets). Used with browser sign-in over your own OAuth client. | |
| FIRECRAWL_API_KEY | No | Your own Firecrawl API key. Can alternatively be stored in your OS keychain via `freelancer-ops-mcp login firecrawl`. | |
| GOOGLE_CLIENT_SECRET | No | OAuth client secret for Google (Drive, Calendar, Gmail, Docs, Sheets). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| stripe_customers_createC | Create a customer. |
| stripe_checkout_sessions_createA | Create a Checkout Session and get a hosted payment URL. Pass |
| gdrive_files_copyA | Create a copy of a file and apply any requested updates with patch semantics. Typically send a new |
| gdrive_permissions_createA | Create a permission for a file or shared drive. |
| linear_project_createA | Create a project. |
| stripe_checkout_sessions_listA | List checkout sessions. Stripe has no payment_status filter, so find paid ones by reading the results. |
| gcalendar_events_insertC | Create a calendar event; returns details of the event. |
| gmail_messages_sendC | Send an email via the Gmail API. |
| linear_project_getB | Get one project with its content, milestones and members. Accepts the project's UUID or the slug from its URL. |
| linear_issues_listA | List issues, optionally filtered. Conditions on one filter object combine with AND. To find a team's open work, filter on team.key and state.type. |
| github_repos_list_commitsA | List commits, newest first. Narrow with |
| gdocs_documents_createA | Create a blank document with a title. Only the title is honoured — the document is created empty. To add content, call this and then documents_batch_update with the returned documentId. |
| gmail_drafts_createC | Save an email draft to Gmail. |
| granola_notes_getA | Read one meeting note: its AI summary, the people who attended, the calendar event it was taken against, and the folders it belongs to. Pass include='transcript' to get the transcript inline as well. A transcript too large to inline answers 413 TRANSCRIPT_TOO_LARGE. Read it with notes_transcript_get instead. |
| gdocs_documents_getA | Read a document's full structural content. The document ID is the long string in its URL, between '/d/' and '/edit'. Pass include_tabs_content=true for a document with several tabs, since the default response covers only the first. |
| gcalendar_events_listC | List events matching a given search filter. |
| gsheets_spreadsheets_values_appendC | Appends values to a spreadsheet. |
| stripe_invoice_items_createA | Add a line to an invoice. Name an existing price as |
| stripe_invoices_listA | List invoices, most recently created first. Filter by customer, subscription, status or collection method. |
| gmail_threads_listC | List Gmail threads. |
| gcalendar_events_quick_addA | Create an event from a plain-text description such as 'Appointment at Somewhere on June 3rd 10am-10:25am'. Google parses the time and title; use events_insert when the fields are already known. |
| firecrawl_crawlC | Recursively crawl a website and scrape each discovered page. |
| firecrawl_crawl_statusB | Get the status and results of a crawl job. |
| gdrive_comments_listC | List a file's comments. The |
| linear_issue_createA | Create an issue. |
| gdrive_replies_createA | Create a reply to a comment. Send |
| connectA | Connect one app this server uses. For an app that issues keys, says where to get one and the terminal command that stores it. For Google, once the user's own OAuth client is set, starts the browser sign-in and returns at once: the user approves in the browser and the next call works. To see which apps are connected, call |
| connection_statusA | See which apps this server is connected to, and how to connect each one that is not. Changes nothing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| setup | Connect every app this server uses, the quickest way each one allows. |
| client_onboarding | Deposit link, SOW from template, shared folder and project, for each new client. |
| deposit_paid_to_kickoff | The kickoff is booked the moment the deposit clears. |
| client_status_report | A weekly report the client can read, built from the work itself. |
| scope_creep_detector | Asks on the call that aren't in the SOW get flagged and a change order drafted. |
| billable_hours_from_calendar | Client-tagged meetings become a timesheet and pending line items. |
| overdue_invoice_chaser | Escalating reminders that cite the last thread, and a follow-up held on your calendar. |
| client_site_audit_to_proposal | A prospect's site audited and turned into a scoped proposal with a pay link. |
| client_feedback_in_drive_comments_to_tasks | Every comment the client left on a deliverable becomes a task, and they see the link. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Each tool targets a distinct service-resource-action combination, with no true duplicates. The only near-overlap, gcalendar_events_insert versus gcalendar_events_quick_add, is explicitly clarified by their descriptions.
Most names follow a predictable service_resource_action snake_case pattern (e.g. gdrive_permissions_create, linear_issue_create). The outliers connect and connection_status break the pattern, and a few action orderings vary slightly, but the set remains readable and mostly consistent.
28 tools is on the heavy side, but the server spans many apps (Drive, Docs, Gmail, Linear, Stripe, Calendar, GitHub, Granola, Firecrawl, Sheets), so the count is reasonable for the broad freelance-ops scope. Each tool represents a distinct operation, avoiding redundancy.
There are significant dead ends: gdocs_documents_create references documents_batch_update, which is missing; linear_issue_create and linear_project_create require UUIDs from teams_list, users_list, and workflow_states_list, none of which exist. Several services also have only one or two operations, leaving core workflows like file upload, event update, and GitHub issue handling uncovered.