bidsketch_list_clients
List clients
List the clients (people or companies proposals are prepared for) with id, name, email and phone. GET /clients.json.
pageper_pageio.usefulapiPublished by usefulapi.ioOfficial publisherv1.16.4Updated Nov 7, 2026
Read Bidsketch clients, proposals, fees and templates; create and update clients, proposals, fees.
The publisher's own server: Ably MCP by usefulapi
Read and edit Bidsketch clients, proposals, fee lines, saved fees, sections and templates from an assistant, including creating draft proposals.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
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%2Fbidsketch/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.Add this to your client's mcpServers config.
{
"mcpServers": {
"bidsketch-by-usefulapi": {
"type": "http",
"url": "https://bidsketch.usefulapi.io/mcp"
}
}
}Read Bidsketch clients, proposals, fees and templates; create and update clients, proposals, fees.
Live endpoint: https://bidsketch.usefulapi.io/mcp · Homepage: https://usefulapi.io/bidsketch
https://bidsketch.usefulapi.io/mcp.claude mcp add --transport http bidsketch https://bidsketch.usefulapi.io/mcp, then run /mcp to log in.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 the login page asks for your Bidsketch credentials.
Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/bidsketch/
On first connect you'll paste your Bidsketch API token (an Admin user creates it in Bidsketch under Account → API Tokens).
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.
*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].
Pro covers this server only. Subscribe with bidsketch_upgrade (it returns a Stripe Checkout link). Cancel any time with bidsketch_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running bidsketch_upgrade before then undoes the cancel. Or write to [email protected].
MIT © usefulapi. Not affiliated with or endorsed by Bidsketch.
Source: servers/bidsketch/README.md at commit 4046075
List clients
List the clients (people or companies proposals are prepared for) with id, name, email and phone. GET /clients.json.
pageper_pageGet a client
Get one client with full contact details, address, notes and secondary contact. GET /clients/{id}.json.
client_idrequiredList a client's proposals
List the proposals of one client with status (Pending, Viewed, Accepted, Declined) and draft flag. GET /clients/{id}/proposals.json.
pageper_pageclient_idrequiredCreate a client
WRITE: create a client in Bidsketch. first_name, last_name and email are required (put a company name in `name`). Some Bidsketch plans cap the number of clients (HTTP 426 when reached). POST /clients.json.
citynameemailrequirednotesphonestatecountrywebsitealt_phonelast_namerequiredfirst_namerequiredpostal_zip+3 moreUpdate a client
WRITE: change fields of an existing client; only the fields you pass are sent and overwrite the old values. PUT /clients/{id}.json.
citynameemailnotesphonestatecountrywebsitealt_phoneclient_idrequiredlast_namefirst_name+4 moreList proposals
List all proposals with name, status (Pending, Viewed, Accepted, Declined), draft flag and dates. GET /proposals.json.
pageper_pageGet proposal stats
Proposal statistics for the account (the total number of proposals). GET /proposals/stats.json.
Takes no parameters.
Get a proposal
Get one proposal: status, client, currency, fee subtotals and total, tax/discount, settings and counts of its opening sections, fees and closing sections. GET /proposals/{id}.json.
proposal_idrequiredGet a proposal's content
Get the full content of a proposal in order: opening sections, fees and closing sections. GET /proposals/{id}/content.json.
proposal_idrequiredList a proposal's sections
List the text sections of one proposal (opening and closing). GET /proposals/{id}/sections.json.
pageper_pageproposal_idrequiredGet a proposal section
Get one section of a proposal with its HTML description. GET /proposals/{id}/sections/{section_id}.json.
section_idrequiredproposal_idrequiredList a proposal's fees
List the fee lines of one proposal with type, totals and the optional flag. GET /proposals/{id}/fees.json.
pageper_pageproposal_idrequiredGet a proposal fee
Get one fee line of a proposal. GET /proposals/{id}/fees/{fee_id}.json.
fee_idrequiredproposal_idrequiredCreate a proposal
WRITE: create a proposal for a client, optionally from a template (template_id from bidsketch_list_templates, which copies its sections and fees). The proposal is created as a draft; this tool does not send anything to the client. Some plans cap the number of proposals (HTTP 426). POST /proposals.json or POST /templates/{id}/proposals.json.
taxnamerequiredtax2currencydiscountclient_idrequireddescriptionrequiredtemplate_idproposal_dateUpdate a proposal
WRITE: change fields of a proposal; only the fields you pass are sent and overwrite the old values. PUT /proposals/{id}.json.
taxnametax2currencydiscountclient_iddescriptionproposal_idrequiredproposal_dateAdd a section to a proposal
WRITE: add a text section to a proposal, as an opening or closing section. POST /proposals/{id}/sections.json.
namerequireddescriptionrequiredproposal_idrequiredsectiontyperequiredUpdate a proposal section
WRITE: change a section of a proposal; only the fields you pass are sent and overwrite the old values. PUT /proposals/{id}/sections/{section_id}.json.
namecategorysection_idrequireddescriptionproposal_idrequiredsectiontypeAdd a fee to a proposal
WRITE: add a fee line to a proposal; it changes the proposal's price. Fixed fees take amount as the total; hourly, monthly and yearly fees take amount per unit and a quantity. POST /proposals/{id}/fees.json.
namerequiredunitamountrequiredfeetyperequiredcategoryoptionalquantitydescriptionrequiredproposal_idrequiredUpdate a proposal fee
WRITE: change a fee line of a proposal (changes its price); only the fields you pass are sent. PUT /proposals/{id}/fees/{fee_id}.json.
nameunitamountfee_idrequiredfeetypecategoryoptionalquantitydescriptionproposal_idrequiredList saved fees
List the reusable fees saved on the account with category, type and total. GET /fees.json.
pageper_pageGet a saved fee
Get one saved fee with amount, quantity, unit and description. GET /fees/{id}.json.
fee_idrequiredCreate a saved fee
WRITE: save a reusable fee on the account (it is not added to any proposal). POST /fees.json.
namerequiredunitamountrequiredfeetyperequiredcategoryquantitydescriptionUpdate a saved fee
WRITE: change a saved fee; only the fields you pass are sent. Proposals that already use it keep their own copy. PUT /fees/{id}.json.
nameunitamountfee_idrequiredfeetypecategoryquantitydescriptionList saved sections
List the reusable content sections saved on the account with category and type (opening or closing). GET /sections.json.
pageper_pageGet a saved section
Get one saved section with its HTML description. GET /sections/{id}.json.
section_idrequiredCreate a saved section
WRITE: save a reusable content section on the account (it is not added to any proposal). POST /sections.json.
namerequiredcategorydescriptionsectiontyperequiredUpdate a saved section
WRITE: change a saved section; only the fields you pass are sent. Proposals that already use it keep their own copy. PUT /sections/{id}.json.
namecategorysection_idrequireddescriptionsectiontypeList proposal templates
List the proposal templates saved on the account. Use a template id with bidsketch_create_proposal. GET /templates.json.
pageper_pageGet a proposal template
Get one template with the saved sections and fees it is made of. GET /templates/{id}.json.
template_idrequired100% 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.
io.usefulapiOfficial publisher
Hosted MCP server for Ably realtime messaging: inspect channel history, presence and occupancy, publish messages, and review app usage and configuration.
io.usefulapiOfficial publisher
Hosted read-only MCP server that lets an assistant look up Woffu company users, employment contracts, departments and offices.
io.usefulapiOfficial publisher
Hosted MCP server for White Label Loyalty: browse rewards, read a customer's points wallet and tier progress, and buy rewards with points.
io.usefulapiOfficial publisher
Hosted Weekdone connector that lets an assistant read weekly reports, teams, objectives and KPIs, and add report items, comments and KPI values.
io.usefulapiOfficial publisher
Hosted read-only MCP server that lets an assistant list WebinarKit webinars, their dates, series, meetings and white-label sub-accounts.
{ "mcpServers": { "bidsketch": { "url": "https://bidsketch.usefulapi.io/mcp" } }}