SpecBot in Claude and ChatGPT
SpecBot turns your offers into proposals clients accept in one click, with a signed PDF for both sides. Write them in the web app, by voice, or inside ChatGPT and Claude.
SpecBot has a remote MCP server, so you can build your offers, draft proposals, send them and check on them from Claude or ChatGPT. Your assistant does the writing. SpecBot stores your catalog and proposals, does the pricing maths, and sends the proposal to your client.
| Endpoint | https://api.specbot.dev/mcp |
| Transport | Streamable HTTP, stateless |
| Auth | OAuth 2.1 with dynamic client registration and PKCE (S256) |
| Authorization server | https://api.specbot.dev |
| Resource metadata | https://api.specbot.dev/.well-known/oauth-protected-resource |
Connect
Claude
- Open Settings → Connectors.
- Click Add custom connector and enter
https://api.specbot.dev/mcp. - Click Connect, sign in to SpecBot and approve the connection.
Step by step, with example prompts: Use SpecBot in Claude.
ChatGPT
- Open Settings → Apps and turn on developer mode if your plan needs it for custom apps.
- Add a new app with the URL
https://api.specbot.dev/mcp. - Sign in to SpecBot and approve the connection.
Step by step, with example prompts: Use SpecBot in ChatGPT.
No SpecBot account yet? Signing in during the connection lets you create a free one.
Sign-in and permissions
The connection uses OAuth 2.1. You sign in on specbot.dev and approve what the assistant may do; the assistant never sees your password. There are two scopes:
read: see your offers and the status of your proposals (list_offers,proposal_status).write: change your catalog, create and revise drafts, and send proposals to clients (every other tool).
Access tokens expire after one hour and the assistant refreshes them on its own. Each refresh token is valid for 30 days, so a connection left unused for a month asks you to sign in again.
To disconnect, remove SpecBot in Claude's or ChatGPT's connector settings. A page to manage connected apps in SpecBot settings is coming; until then, email [email protected] and we revoke the connection on our side. Resetting your SpecBot password also revokes every connection.
Tools
Money is always in integer minor units: €1,800 is 180000. Every tool declares
read-only and destructive hints, so your assistant can ask before it changes anything.
list_offers
Lists the offerings in your catalog: name, pitch, price rule, variants, add-ons and attached terms. The assistant calls it first to get the offering and variant ids it needs for a draft. A new account returns an empty list.
- Inputs: None.
- Changes data: No. Read-only.
- Scope:
read
create_offering
Adds one offering to your catalog and returns it with its id.
- Inputs: name, pricing (a price rule, see below), and optionally pitch, variants, addons, included, excluded, defaultTimeline, floorAmount and terms (title and markdown content).
- Changes data: Yes. Adds one offering.
- Scope:
write
update_offering
Changes an offering. Fields in changes replace the stored ones (variants and add-ons are replaced as whole lists); fields left out stay as they are. Proposals you already drafted keep their own copy.
- Inputs: offeringId, changes (any offering field), optionally terms.
- Changes data: Yes. Overwrites the fields you change.
- Scope:
write
import_offers
Turns a price list, rate card or notes you paste into catalog offerings. The assistant reads the text and passes structured offers; SpecBot validates and saves them. Names you already have are skipped and reported. It is told never to invent prices you did not give.
- Inputs: offers: 1 to 30 offerings, each shaped like create_offering's input.
- Changes data: Yes. Adds offerings.
- Scope:
write
draft_proposal
Creates a draft proposal from your offerings, or revises an unsent one, and shows a preview with totals. The assistant writes the sections (summary, scope, timeline, about, custom); prices, line items and terms come from your catalog, never from the assistant's text.
- Inputs: clientName, picks (offeringId, optional variantId, quantity, addonIds, hoursPerMonth, and amount with a note to override a price), sections (title and markdown content), and optionally proposalId to revise, clientEmail, title and locale (en or bg).
- Changes data: Yes. Creates or revises a draft. Never sends.
- Scope:
write
send_proposal
Sends a draft: saves a version, creates the share link and, if the proposal has a client email, emails it. Without confirm set to true it sends nothing and returns a preview, so the assistant has to ask you first. A proposal that was already sent is not sent again.
- Inputs: proposalId, confirm.
- Changes data: Yes. Emails your client.
- Scope:
write
proposal_status
Shows where a proposal stands: draft, sent, viewed, accepted or declined, with dates, view count, the share link and, once accepted, who signed and a link to the signed PDF. Without proposalId it lists your ten most recent proposals.
- Inputs: Optionally proposalId.
- Changes data: No. Read-only.
- Scope:
read
Price rules
Each offering has one price rule, set with pricing.kind:
-
fixed: One price, e.g. a €1,800 website audit. -
from: A starting price ("from €2,500") or a range with upTo. -
unit: A price per day, hour or other unit; the proposal sets the quantity. -
retainer: A monthly fee for a number of hours. Either can be left open and set per proposal. -
quote: No list price; priced per proposal.
Example prompts
- "Here's my price list: website audit €1,800, landing page from €2,500, dev days at €450/day, monthly support retainer. Turn it into offers in SpecBot."
- "Add 50% upfront, 50% on delivery as the payment terms on my website audit offer."
- "Draft a website audit proposal for Acme from my offers and show me the preview."
- "Make it 8 dev days instead of 5 and add a short timeline section."
- "Send it to [email protected]."
- "Has Acme opened the proposal yet?"
The assistant shows you the draft before anything goes out. send_proposal only sends
after you say so.
Limits
The Free plan includes 3 proposals a month. Proposals count the same whether you create them in the web app or from Claude or ChatGPT, and the count resets on the first of each month. Drafting in your assistant doesn't use SpecBot's AI drafts. See pricing for Pro.
Data and privacy
SpecBot only receives the arguments your assistant passes to these tools. It never sees your chat history and runs no AI of its own for the MCP server. Your client sees the proposal through its share link; they need no account. Details are in the Privacy Policy and the Terms of Service. Questions go to Support.