Oyster MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.0.0Updated Nov 14, 2026

Read team, time off, expenses and invoices; approve or decline time off and expenses in Oyster.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFinanceBusiness & Commerce

Overview

AI-generated overview

Remote MCP server for Oyster that lets an assistant read team, time off, expense, contract and invoice data and approve or decline requests.

What you can do
  • Read company profile, departments and team members, including employment details and optional compensation or personal fields
  • List and inspect time off requests, balances and public holidays
  • List and inspect expenses, contract changes, invoices and time sheets
  • Approve or reject pending time off requests and approve or decline unreviewed expenses
  • Check monthly usage, request a missing feature, upgrade or cancel the paid plan
When to use it
Useful for HR, operations or finance staff who manage a global team in Oyster and want to ask questions about headcount, leave balances, pending approvals, expenses or invoices, and to clear approvals from a chat client.
Requirements
Hosted remote endpoint; no local install. Connect with the server URL only and sign in with your Oyster account via OAuth on first connect; a Company Admin must approve the access. No API key or Authorization header goes in the client config. Free plan allows 50 tool calls per month.
Before you install
Four tools write to Oyster: approving or rejecting time off and approving or declining expenses, which need the manage scope and affect employees and reimbursements. Personal and salary details are returned only when explicitly requested. The server is a third-party host, so Oyster data passes through it. Paid plans are billed through Stripe Checkout, and plan changes charge a prorated difference with no refund on cancellation.

Installation

In SourceWeft

  1. Open Oyster MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Foyster/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "oyster-by-usefulapi": {
      "type": "http",
      "url": "https://oyster.usefulapi.io/mcp"
    }
  }
}

README

Oyster MCP by usefulapi

Use your Oyster account from Claude, Cursor, or any MCP client. It reads team members, time off, expenses, contract changes, invoices and time sheets, and it approves or rejects time off and expenses only when you ask. Hosted, no local install: connect with your own credentials.

Live endpoint: https://oyster.usefulapi.io/mcp · Homepage: https://usefulapi.io

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://oyster.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http oyster https://oyster.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "oyster": {      "url": "https://oyster.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and you sign in with your Oyster account.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/oyster/

On first connect you sign in to Oyster and approve access. A Company Admin must approve the access. No keys go in config files.

Tools

ToolTypeWhat it does
oyster_get_companyreadGet company
oyster_list_team_membersreadList team members
oyster_get_team_memberreadGet team member
oyster_list_departmentsreadList departments
oyster_list_time_off_requestsreadList time off requests
oyster_get_time_off_requestreadGet time off request
oyster_list_time_off_balancesreadList time off balances
oyster_list_public_holidaysreadList public holidays
oyster_list_expensesreadList expenses
oyster_get_expensereadGet expense
oyster_list_contract_changesreadList contract changes
oyster_get_contract_changereadGet contract change
oyster_list_invoicesreadList invoices
oyster_get_invoicereadGet invoice
oyster_list_time_sheetsreadList time sheets
oyster_get_time_sheetreadGet time sheet
oyster_approve_time_off_requestwriteApprove time off request
oyster_reject_time_off_requestwriteReject time off request
oyster_approve_expensewriteApprove expense
oyster_decline_expensewriteDecline expense
oyster_usage_statusmetaUsage status (free-tier meter)
oyster_request_featuremetaRequest a missing feature
oyster_upgrademetaUpgrade to Pro or Pro+
oyster_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)10,000 tool calls / month
Pro+ (per user)$39/mo or $390/yr (2 months free)100,000 tool calls / month

Each paid plan covers this server only. Ask your AI to run oyster_upgrade and choose Pro or Pro+, billed monthly or yearly (it returns a Stripe Checkout link). If you already have Pro, ask to change it to Pro+. The change requires your confirmation, keeps your billing interval and charges the price difference for the rest of the period immediately. Cancel any time with oyster_cancel_subscription: your paid plan continues to the end of the paid period, with no refund for the current period, and asking to resume the same plan with oyster_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT — see LICENSE. Documentation only; the server is hosted.

Source: servers/oyster/README.md at commit d5cb945

Tools

20

oyster_get_company

Get company

The connected Oyster company: id, name, registration number and corporate/billing addresses. GET /v1/company.

Takes no parameters.

oyster_list_team_members

List team members

List the company's team members (Oyster engagements: EOR employees, contractors, payroll team members) with name, role, type, state, country, start date, department and work email. Private details (date of birth, addresses, phones, salary, tax id) are left out; use oyster_get_team_member for one person. GET /v1/engagements.

Parameterspageper_page

oyster_get_team_member

Get team member

One team member (engagement) with employment or contract details, department, benefits and terminations. Salary only with include_compensation; date of birth, addresses, phone numbers and citizenships only with include_personal_details. A contractor's tax id is never returned. GET /v1/engagements/{id}.

Parametersengagement_idrequiredinclude_compensationinclude_personal_details

oyster_list_departments

List departments

List the company's departments with their description and number of team members. GET /v1/departments.

Parameterspageper_page

oyster_list_time_off_requests

List time off requests

List time off requests with person, dates, type, state, reason and comments, optionally for some team members only. GET /v1/time_off/requests.

Parameterspageper_pageengagement_ids

oyster_get_time_off_request

Get time off request

One time off request with dates, day durations, hours, state, type, reason, comments and attachment. GET /v1/time_off/requests/{id}.

Parameterstime_off_request_idrequired

oyster_list_time_off_balances

List time off balances

Time off entitlements per team member, in days: annual entitlement, accrued, carried over, adjusted, taken, available, upcoming and projected balance. GET /v1/time_off/entitlements.

Parameterspageper_page

oyster_list_public_holidays

List public holidays

Public holidays between two dates (up to two years ahead) for a country (ISO code, optional subdivision) or for a team member's location. GET /v1/public_holidays.

Parameterspageend_daterequiredper_pagestart_daterequiredcountry_codeengagement_idsubdivision_code

oyster_list_expenses

List expenses

List team members' expenses with amount, category, dates, review state (UNREVIEWED, APPROVED, DECLINED) and receipt link. Search by name and filter by review state. GET /v1/expenses.

Parameterspagequeryper_pagereview_states

oyster_get_expense

Get expense

One expense with amount, receipt amount, category, dates, review state, receipt link and team member. GET /v1/expenses/{id}.

Parametersexpense_idrequired

oyster_list_contract_changes

List contract changes

List contract change requests for all team members (position, compensation, bonus, allowance changes) with state, effective date, requester and the changes. GET /v1/contract_changes.

Parameterspageper_page

oyster_get_contract_change

Get contract change

One contract change with the requested changes, state, dates, team member and amendment documents. GET /v1/contract_changes/{id}.

Parameterscontract_change_idrequired

oyster_list_invoices

List invoices

List the company's Oyster invoices with type, status, payroll month, issue and due dates, amount, charge (payment) status and payout status. Filter by payroll period, issue date, type, status, charge status or team member. GET /v1/invoices.

Parameterspagetypesper_pagestatusesissue_date_toengagement_idscharge_statusesissue_date_fromreference_codespayroll_period_topayroll_period_from

oyster_get_invoice

Get invoice

One invoice by ID or reference code, with line items, tax, applied credit, charge, payout and document links. GET /v1/invoices/{identifier}.

Parametersinvoicerequired

oyster_list_time_sheets

List time sheets

List time sheets with team member, period, cadence, status (PENDING_SUBMISSION, SUBMITTED, PENDING_APPROVAL, APPROVED) and worked/time-off totals. GET /v1/time_tracking/time_sheets.

Parameterspageper_page

oyster_get_time_sheet

Get time sheet

One time sheet with totals, work summary, time off days and the daily entries. GET /v1/time_tracking/time_sheets/{id}.

Parameterstime_sheet_idrequired

oyster_approve_time_off_request

Approve time off request

WRITE: approve a pending time off request. Only on the user's explicit request; check the request with oyster_get_time_off_request first. Needs the manage scope. POST /v1/time_off/requests/{id}/approve.

Parameterstime_off_request_idrequired

oyster_reject_time_off_request

Reject time off request

WRITE: reject a pending time off request with a reason the team member sees. Only on the user's explicit request. Needs the manage scope. POST /v1/time_off/requests/{id}/reject.

Parametersreasonrequiredtime_off_request_idrequired

oyster_approve_expense

Approve expense

WRITE: approve an unreviewed expense for reimbursement. Only on the user's explicit request; check it with oyster_get_expense first. Needs the manage scope. POST /v1/expenses/{id}/approve.

Parametersexpense_idrequired

oyster_decline_expense

Decline expense

WRITE: decline an unreviewed expense, optionally with a reason the team member sees. Only on the user's explicit request. Needs the manage scope. POST /v1/expenses/{id}/decline.

Parametersreasonexpense_idrequired

Version history

1
  1. v1.0.0LatestNov 14, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations