SpecBot SpecBot

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.

Endpointhttps://api.specbot.dev/mcp
TransportStreamable HTTP, stateless
AuthOAuth 2.1 with dynamic client registration and PKCE (S256)
Authorization serverhttps://api.specbot.dev
Resource metadatahttps://api.specbot.dev/.well-known/oauth-protected-resource

Connect

Claude

  1. Open Settings → Connectors.
  2. Click Add custom connector and enter https://api.specbot.dev/mcp.
  3. Click Connect, sign in to SpecBot and approve the connection.

Step by step, with example prompts: Use SpecBot in Claude.

ChatGPT

  1. Open Settings → Apps and turn on developer mode if your plan needs it for custom apps.
  2. Add a new app with the URL https://api.specbot.dev/mcp.
  3. 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:

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:

Example prompts

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.