QuoteWise MCP
QuoteWise runs as an MCP server, so an assistant such as Claude, ChatGPT or Cursor can read your saved quotes, work out totals, and look up community price benchmarks while it helps you price a project.
Set up
- Sign in to QuoteWise and open Settings, then MCP access.
- Name the key (for example the client it is for). Tick Allow creating quotes only if you want the assistant to save quotes for you.
- Choose Create key.
- Copy the key now. It starts with
qw_and is shown only once. We store a hash, not the key.
The server address is https://www.qoutewise.com/api/mcp. Every request needs the header Authorization: Bearer qw_….
Connect a client
Claude Code:
claude mcp add --transport http quotewise https://www.qoutewise.com/api/mcp \ --header "Authorization: Bearer qw_your_key"
Cursor, and other clients that read an MCP JSON config:
{
"mcpServers": {
"quotewise": {
"url": "https://www.qoutewise.com/api/mcp",
"headers": { "Authorization": "Bearer qw_your_key" }
}
}
}The transport is Streamable HTTP, stateless, with JSON replies. Clients that only connect through an OAuth sign-in (some web connectors) cannot use QuoteWise yet. A client needs to let you set a custom header.
Tools
get_market_benchmark
Hourly-rate percentiles, median project total and median weeks from anonymous QuoteWise quotes for similar work. It widens the match (same work, country and level, then looser) until it finds at least 5 quotes, and reports which match it used.
| Argument | Needed | Values |
|---|---|---|
category | required | web-development, mobile-app, ui-ux-design, graphic-design-branding, copywriting-content, video-animation, marketing-seo, data-ai, consulting, other |
country | required | Two-letter ISO code, such as IN or US |
level | required | junior, mid or senior |
role | optional | freelancer (default) or client: whose quotes to compare with |
hourly_rate | optional | A rate to place on the distribution. The result then includes my_percentile |
currency | optional | ISO code such as USD or INR. Results are converted into it |
Example result:
{
"scope": "same work and country",
"n": 14,
"currency": "INR",
"p10": 900, "p25": 1100, "median": 1400, "p75": 1800, "p90": 2300,
"my_percentile": 62,
"median_total": 180000,
"median_weeks": 6,
"note": "Built from anonymous quotes made in QuoteWise, not verified payments."
}list_quotes
Your saved chats, newest first.
| Argument | Needed | Values |
|---|---|---|
limit | optional | 1 to 50, default 20 |
Example result:
[
{ "id": "3868c16b-…", "title": "Farmer Marketplace template setup",
"role": "client", "updatedAt": "2026-10-07T15:04:00.580Z", "hasQuote": true }
]get_quote
One saved quote: line items, contingency, tax, timeline, assumptions, market range and the computed totals.
| Argument | Needed | Values |
|---|---|---|
id | required | A chat id from list_quotes |
Example result:
{
"title": "…", "role": "freelancer",
"totals": { "subtotal": 800, "contingency": 80, "tax": 158.4, "total": 1038.4 },
"quote": { "currency": "USD", "items": [ … ], "market": { "low": …, "mid": …, "high": … } }
}create_quote
Saves a finished quote as a new chat in your account. It shows up in your history, ready to edit, print or share. Needs a key created with Allow creating quotes. Every item is hours times rate; contingency and tax are percentages. Up to 30 quotes a day.
| Argument | Needed | Values |
|---|---|---|
title, currency | required | A short project title and a three-letter ISO currency code |
items | required | 1 to 50 entries of { name, description?, hours, rate } |
summary, assumptions, paymentTerms | optional | Scope in a sentence or two, a list of assumptions, and payment terms |
contingencyPct, taxPct, timelineWeeks | optional | Percentages (0 to 100) and the timeline in weeks |
role | optional | freelancer (default) or client |
market | optional | { low, mid, high, notes } for the whole project. Only pass it if you have a real basis. It is labelled as supplied by the assistant |
Example result:
{
"id": "5f0c…",
"url": "https://your-quotewise/c/5f0c…",
"totals": { "subtotal": 800, "contingency": 80, "tax": 158.4, "total": 1038.4 },
"note": "Saved to the owner's QuoteWise account. Not shared, and not part of community benchmarks."
}calculate_quote
Arithmetic only, nothing is stored. Totals computed the way QuoteWise does: contingency on the subtotal, then tax on subtotal plus contingency.
| Argument | Needed | Values |
|---|---|---|
items | required | Array of { name?, hours, rate } |
contingencyPct | optional | Percent added to the subtotal |
taxPct | optional | Percent added to subtotal plus contingency |
Example result:
{
"lines": [ { "name": "Design", "amount": 500 }, { "name": "Build", "amount": 300 } ],
"subtotal": 800, "contingency": 80, "tax": 158.4, "total": 1038.4
}Calling it directly
It is plain JSON-RPC over HTTP, so you can test with any HTTP client:
curl https://www.qoutewise.com/api/mcp \
-H "Authorization: Bearer qw_your_key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"calculate_quote",
"arguments":{"items":[{"hours":10,"rate":50}],"taxPct":18}}}'Supported methods: initialize, ping, tools/list, tools/call. Notifications get an empty 202. A GET returns 405 because the server never opens a stream.
Errors
401: the key is missing, malformed, wrong or deleted. Create a new one in Settings.- Creating with a read-only key returns a tool error telling you to make a key that allows it.
503: we could not check the key just now. Retry shortly.- A tool result with
isError: true: an argument was invalid, such as an unknown category. The message says what is allowed. - A benchmark that says no community data is available is a normal answer, not a failure. See below. A good assistant tells you that instead of guessing.
Limits and privacy
- A key can read all your saved quotes. Treat it like a password, give each client its own key, and delete a key in Settings the moment you stop using it. Deleting takes effect immediately.
- Benchmarks follow the same rules as the app. Results appear only when at least 5 similar quotes exist, and only if you have shared your own quotes for 30 days or more. Numbers come from quotes made in QuoteWise, not verified payments.
- Read-only by default. A key can only read unless you tick Allow creating quotes. Even then the only write is
create_quote, which adds a new private quote. No tool edits or deletes your quotes, changes sharing, or touches your profile.calculate_quotestores nothing. - Created quotes stay out of the benchmarks. Quotes saved over MCP carry no work category or country, so they are never added to the community pool. Market ranges and sources are not verified, so a range is labelled as supplied by the assistant and sources are not kept.
- What the assistant sees goes to whichever AI provider that client uses, under that provider's terms. See our privacy policy for what QuoteWise itself keeps.
- There is no rate limit yet. Please keep automated use reasonable.