How to connect Joist to ChatGPT, Claude and any AI agent
Yes, ChatGPT, Claude and other AI agents can work in your Joist account. Joist has no public API and no official MCP server. Cotlet.dev connects your own signed-in Joist account to any AI agent, so you can ask in plain words and the AI writes estimates, sends invoices and keeps your client list up to date for you.
What you can ask
Write an estimate for Mike Torres: replace 40 ft of deck boards, $1,850 labor plus $640 materials.
Which invoices have been unpaid for more than 30 days? List client, amount and due date.
Invoice Sarah Lee for Tuesday's bathroom tile job, $2,300, due in 14 days.
Add a new client, Dave Patel, 555-0142, 18 Oak Street, and draft an estimate for a kitchen faucet swap.
Send a friendly payment reminder to every client with an invoice overdue since last Friday. Show me the drafts first.
Connect in 2 minutes
Get your API key at https://cotlet.dev/app and export it as COTLET_API_KEY.
Claude Code
claude mcp add --transport http cotlet https://cotlet.dev/mcp/v1 --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings → Apps → add connector URL https://cotlet.dev/mcp/v1, then sign in with Cotlet.dev. No API key needed.
Cursor
Copy .cursor/mcp.json from this repo into your project:
{
"mcpServers": {
"cotlet": {
"url": "https://cotlet.dev/mcp/v1",
"headers": {
"Authorization": "Bearer ${COTLET_API_KEY}"
}
}
}
}
Run it locally (stdio)
This repo is a real MCP server. It speaks MCP over stdio, lists its Joist tools without any key, and forwards every tool call to the hosted Cotlet.dev server. The hosted URL above stays the recommended way. Use this when your client only starts local servers.
{"mcpServers":{"joist":{"command":"uvx","args":["joist-mcp"],"env":{"COTLET_API_KEY":"your-key"}}}}
Or with Docker:
docker build -t joist-mcp .
docker run -i --rm -e COTLET_API_KEY joist-mcp
Tools: joist_guide, joist_status, joist_open, joist_read, joist_click, joist_type, joist_close. Without COTLET_API_KEY a tool call answers: "Set COTLET_API_KEY. Get a key at https://cotlet.dev/app".
Command line
Python 3.10+, nothing else to install. From PyPI:
pip install joist-mcp # or run it once: uvx joist-mcp connect
joist-mcp connect
Or straight from this repo:
export COTLET_API_KEY="your-key"
python3 joist_agent.py connect # ready config for Claude Code, Cursor, ChatGPT
python3 joist_agent.py status # is Joist ready in your Cotlet.dev account
python3 joist_agent.py guide # Joist screens and sign-in link
python3 joist_agent.py read # open Joist, read the page, close the browser
python3 joist_agent.py tools # list Cotlet.dev tools
python3 joist_agent.py serve # start the stdio MCP server (same as no argument)
Questions from Joist users
Does Joist have an API for developers?
Joist has no public, documented API for developers. Cotlet.dev works in your own Joist account directly, so your AI agent can create estimates, send invoices and look up clients without one.
How do I connect Joist to ChatGPT?
There is no official Joist app in ChatGPT. Add Cotlet.dev as an app in ChatGPT (Settings → Apps, connector URL https://cotlet.dev/mcp/v1), sign in to Joist once in your Cotlet.dev Cloud Browser, and ask ChatGPT in plain words. No code and no Joist API key.
Is there a way to use Claude with Joist?
Yes. In Claude Code run the one-line claude mcp add command above; in the Claude app add https://cotlet.dev/mcp/v1 as a custom connector. Claude then works in your own Joist account.
Is there a Joist MCP server?
Joist has no official MCP server. Cotlet.dev is a hosted MCP server that works in your Joist account for you, with ChatGPT, Claude, Cursor, Codex and n8n.
Find it on
- Joist on Cotlet.dev
- PyPI package joist-mcp
- Odel
- mcpbeat
- Step-by-step guide (PDF) on Internet Archive
Also works with
- Mangomint MCP
- Wanderlog MCP
- SmugMug MCP
- Garmin Connect MCP
- Housecall Pro MCP
- Medium MCP
- Crexi MCP
- DistroKid MCP
- LinkedIn MCP
- EstimateOne MCP
- Google Search Console MCP
- Lichess MCP
- Strava MCP
- StreamElements MCP
- Meetup MCP
- AccuRanker MCP
- GetYourGuide MCP
- Idealista MCP
- Riverside MCP
- Udemy MCP
- Faire MCP
- Teachable MCP
- Vagaro MCP
- Buildertrend MCP
- Zoopla MCP
- Dribbble MCP
- Hostelworld MCP
- Mashvisor MCP
- Rent Manager MCP
- ThriveCart MCP
- Fresha MCP
- Booksy MCP
- BookingKoala MCP
- Milanote MCP
- Partiful MCP
- Contractor Foreman MCP
- Pixieset MCP
- GlossGenius MCP
- ZenMaid MCP
- AroFlo MCP
- Simpro MCP
- Workiz MCP
- Kickserv MCP
- Service Autopilot MCP
- Boulevard MCP
- Mindbody MCP
- Meevo MCP
- DaySmart MCP
- Acuity Scheduling MCP
- Jane App MCP
- FieldEdge MCP
- Phorest MCP
- DINGG MCP
- Invoice Simple MCP
- PhotoShelter MCP
- RazorSync MCP
- ShootProof MCP
- Invoice2go MCP
- Appointy MCP
- Contractor+ MCP
- Petpooja MCP
- Teachers Pay Teachers MCP
- Bloom MCP
- AestheticsPro MCP
- Club OS MCP
- EZ Lawn Biller MCP
- Eversports Studio Manager MCP
- Exercise.com MCP
- Gymdesk MCP
- Iris Works MCP
- CoachingPortal MCP
- CrewNest MCP
- Paired Plus MCP
- ClubReady MCP
- All apps connected through Cotlet.dev
Start free: https://cotlet.dev/signup?app=joist&utm_source=github&utm_medium=readme&utm_campaign=joist
Metadata
Release files for joist-mcp 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| joist_mcp-1.1.0.tar.gz | 9.5 kB | Without provenance | Details for joist_mcp-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| joist_mcp-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for joist_mcp-1.1.0-py3-none-any.whl |
Total release size: 19.0 kB
Release files / joist_mcp-1.1.0.tar.gz
| Download URL | joist_mcp-1.1.0.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
29f57fbf53d0d93744a6eaa042a756697b316b8385bf76f431654059b15d0b20
|
|
BLAKE2b-256 checksum How to use checksums |
7e1b7ec5e725a1c6a592f715d5b3c41955519f064f25a967b31615d2dd597a33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / joist_mcp-1.1.0-py3-none-any.whl
| Download URL | joist_mcp-1.1.0-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7bc6b49cc2beade536e02603076d3eda36a63682e4d133f7da5fb16afc1b1abb
|
|
BLAKE2b-256 checksum How to use checksums |
117d65b4a1d8a97d10816a61d28f0c18de42d537a497c23f8c1ead62556444a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for joist-mcp 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.