Skip to content
GoodParts for ChatGPT

Your journal, when you ask for it.

Connect GoodParts to ChatGPT and ask about the patterns in your own entries — which parts keep arriving together, what July looked like, when someone came up — without having to paste your journal into the chat.

Requires a GoodParts account with Pro access. The iPhone app is in private beta.

The ChatGPT connection is currently unavailable. New connections cannot be made, and existing ones return nothing from your journal. The app itself is not affected.

Show me a reflection card for July.

GoodParts reflection

Jul 1, 2026 – Jul 31, 2026

Entries
12
Active days
9
Average mood
6.5

Most common mood: hopeful (5); leading theme: work (6)

Recurring parts

  • The Planner · 8
  • The Inner Critic · 6

Patterns together

  • The Planner and The Inner Critic

    Appeared together in 6 entries

Supporting entries

  • Before the Monday meeting

Illustrative data · The same card appears in ChatGPT.

Things to ask

Questions only your journal can answer.

“What patterns came up in my journal during July?”A bounded overview of moods, themes, parts and people for that month. No transcripts.
“Which parts appeared together last month?”Ranked pairs of parts, each with a few supporting entries you can open.
“Find entries where I wrote about feeling overlooked.”Entries ranked by meaning, not keywords, returned as summaries. Only entries that finished analysis are searchable.
“When have I mentioned Sam recently?”The entries Sam appears in, with the context you recorded. Nothing guessed about Sam.
“Give me a GoodParts reflection prompt.”A personalised prompt drawn from your own parts and people.
“Save that reflection to my journal.”ChatGPT shows you the exact text first. Nothing is saved until you approve it.
What it does

Reads carefully, and writes only what you approve in ChatGPT.

Read your journal

Recent entries as summaries, and a single entry’s cleaned transcript only when you ask for that specific entry.

Show patterns over time

Moods, themes, parts and people across a date range of up to 366 days, plus which parts tend to arrive together. A period holding more than 999 entries is refused outright rather than analysed in part.

Follow parts and people

Your named parts and how often each appears, and where a recorded person shows up across your entries.

Surface insights and prompts

Your latest insights with their supporting entries, and reflection prompts you can answer in the conversation.

Two tools can write: one saves a reflection to your journal using the exact text you reviewed, the other marks a reflection prompt answered or dismissed. ChatGPT shows you the text and asks before either runs. A saved reflection then goes through the usual analysis, like any other entry.

Privacy and bounds

Scoped to your account, and capped per request.

Journal entries hold sensitive emotional, relationship and mental-health material. The connector returns only what a request needs. The first list below is enforced by the GoodParts server; the second is ChatGPT’s to keep, because the protocol places it in the client; the third is what GoodParts itself does beyond reading, which is neither.

The server refuses
  • Delete a journal entry — there is no delete tool, and the connection holds no delete permission
  • Read your whole ChatGPT conversation — it only sees what ChatGPT sends to a tool
  • Return an unbounded result from a single request: every list, search and analytics call is capped
  • Return more than 50 journal transcripts a day, however many times a conversation asks: the count is kept per account in the database, and reads past it are refused
  • Analyse only part of a period that holds more than 999 entries — it refuses the request rather than quietly reporting a slice of it as the whole
  • Reach any other person’s journal — every query is scoped to your account
  • Read your unsent letters: unsent letters are never shared with ChatGPT. A letter is left out of every list, search, pattern and transcript read, asking for one by its ID gets the same answer as an ID that does not exist, and a part or person that only a letter names is left out too. Anything GoodParts wrote that may draw on a letter is held back as well: a part’s description, a person’s relationship, a letter’s place in counts and dates, the reflection prompts about what a letter touched, and, for now, insights written since your first letter
ChatGPT handles
  • ChatGPT shows you a reflection before saving it, and sends it only once you approve
  • ChatGPT chooses how many tool calls to make, so a long conversation can read many entry summaries — transcripts are the exception, capped at 50 a day by GoodParts
GoodParts also does
  • Semantic search sends the phrase you type out of GoodParts to be turned into a vector, through the same gateway and the same zero-data-retention terms as journal analysis
  • Each search records a usage row against your account — model, token counts, cost and timing, and none of your text. It is deleted when you delete your account
  • Search reaches only entries that finished processing. Anything still being analysed, or that failed to analyse, will not appear in search results
Connect

Three steps, once.

  1. 1

    Add GoodParts in ChatGPT

    Turn on developer mode in ChatGPT’s settings, then add GoodParts as a connector using the server URL below. GoodParts is not listed in ChatGPT’s app directory yet.

  2. 2

    Sign in and review access

    Use the Apple, Google or email account from the app. The consent screen lists exactly what ChatGPT will be able to reach before you allow it.

  3. 3

    Ask about your journal

    Mention GoodParts in a conversation. Disconnect any time from ChatGPT settings.

Server URLhttps://goodparts.ai/mcp
For developers

A Model Context Protocol server over streamable HTTP. Authentication is OAuth 2.1 with PKCE through GoodParts’ Supabase Auth, with the openid scope on every tool. Protected-resource metadata is published at /.well-known/oauth-protected-resource.

Every tool, and what it touches

Each tool is annotated in the server with its real read, write and destructive behaviour, so ChatGPT asks before anything changes.

ToolAccessWhat it does
list_entriesReadRecent or date-bounded entry summaries and detected parts. No transcripts.
get_entryReadOne requested entry: cleaned transcript, parts and mentioned people, in the detail listed below. Capped at 50 transcripts a day.
search_entriesReadEntries ranked by semantic relevance, as summaries. Reaches only fully analysed entries, and sends your search phrase out for embedding.
get_journal_overviewReadMood, theme, part and people patterns within a date range.
get_part_cooccurrenceReadParts that appeared together, with bounded supporting entries.
list_partsReadNamed IFS parts and how often each has appeared.
list_peopleReadPeople mentioned frequently or recently, as recorded in the journal.
get_person_historyReadWhere one recorded person appeared, with mention context.
get_insightsReadLatest insights and the entries supporting them.
list_reflection_promptsReadPersonalised prompts that can be answered with a reflection.
render_reflection_cardReadAn interactive reflection card for a date range, shown inline in ChatGPT.
save_reflectionWrite · ChatGPT asksSaves only the exact text you approved as a new entry. Idempotent on retry.
resolve_reflection_promptWrite · ChatGPT asksMarks a prompt answered, or dismisses it without saving anything.

What one entry returns. get_entry is the only tool that returns a transcript, and it returns more than the transcript. In full:

  • The entry itself: its title, cleaned transcript, summary, primary mood and mood score, its themes, and when it was created
  • For every part detected in it: the part’s name and role category, the sentiment recorded for it, and the verbatim quote from your entry it was drawn from
  • For every person mentioned in it: their name, the context recorded about them in that entry, and which of your parts that mention triggered

Questions people ask

Do I need a GoodParts account?

Yes. You sign in with the same Apple, Google or email account you use in the GoodParts app, and the connection needs active GoodParts Pro access. Without it, the tools return a plain access-required message.

Does OpenAI train on my journal?

GoodParts never uses your entries to train models. What ChatGPT does with a conversation is governed by your ChatGPT data controls, so check those settings before connecting sensitive material.

Can a conversation read my whole journal?

No. Transcripts are capped at 50 a day for your GoodParts account — one budget, shared by every ChatGPT connection and every conversation in them. The count is kept in the GoodParts database rather than by ChatGPT, and reads past the cap are refused with a message until the next day. Entry summaries, search and patterns are not capped that way, but they never include a transcript.

How do I disconnect?

Remove GoodParts from your connected apps in ChatGPT settings. Your journal stays exactly as it is in the app.

Can ChatGPT delete my entries?

No. There is no delete tool, and the connection is not granted permission to delete, so a deletion cannot happen even by mistake. You delete entries in the GoodParts app.