Skip to content

Your connection guide

Give OpenAI Codex
your forms.

Register trulyform with Codex once from your terminal. The CLI, the IDE extension and Codex in the ChatGPT desktop app all read that same setup.

Before you start

What you need

  • A recent Codex CLI, signed in with ChatGPT or an API key. OpenAI lists MCP for Plus, Pro, Business, Edu and Enterprise, and for API-key sign-in.
  • A browser on the same machine for the sign-in. There’s a workaround for SSH sessions below.
  • A trulyform account. The sign-in page lets you create one if you need to.

trulyform Free includes MCP. You won’t need an API key or a token in an environment variable.

Step 1

Add trulyform from your terminal

In any folder, run:

Codex installation command

codex mcp add trulyform --url 'https://trulyform.com/mcp'

Select the text to copy it.

Codex confirms with Added global MCP server 'trulyform'. and saves this entry to ~/.codex/config.toml:

Codex configuration

[mcp_servers.trulyform]
url = "https://trulyform.com/mcp"

Select the text to copy it.

Prefer editing the file? Paste those two lines into config.toml yourself. Either way, sign in next.

Step 2

Sign in to trulyform

Adding the server only saves it. Start the sign-in with:

Codex sign-in command

codex mcp login trulyform

Select the text to copy it.

If your Codex version already opened trulyform in the browser when you added the server, finish that sign-in instead; you don’t need both.

  1. Sign in to trulyform, or create an account and confirm its email in the same browser.
  2. The approval screen’s return address points at your own computer: it starts with http://127.0.0.1: and a port Codex chooses for this sign-in, followed by /callback.
  3. Check the email and organization, then choose Approve access.
  4. The browser tab reads “Authentication complete. You may close this window.” and the terminal reports a successful login.

Working over SSH? codex mcp login trulyform --no-browser prints the sign-in link for another device and lets you paste back the address the browser lands on after you approve.

What you’re approving

Read access to forms and responses across your current organization, plus creating forms, editing drafts, and publishing. This includes teammates’ forms; there is no read-only or per-form selection. Requested data is shared with the assistant under its policies.

In the IDE extension and the ChatGPT desktop app

Both read ~/.codex/config.toml, so the server you just added shows up there too. To add it from their settings instead:

IDE extension (VS Code, Cursor, Windsurf)
Open the gear menu, select MCP servers, then Add server. Name it trulyform, choose Streamable HTTP, enter the URL and save. Select Restart extension, then Authenticate next to trulyform.
ChatGPT desktop app, in Codex
Go to Settings → MCP servers → Add server, fill in the same name, type and URL, save, select Restart, and then Authenticate.

Codex cloud tasks and chats on chatgpt.com don’t read your local Codex configuration, so trulyform isn’t available there through these steps.

Step 3

Check the connection

Run codex mcp list. trulyform’s Auth column should read OAuth rather than Not logged in. Inside a Codex session, /mcp lists the tools it loaded, and /mcp verbose adds diagnostics.

Then ask:

Connection check prompt

List my trulyform forms.

Select the text to copy it.

The answer comes through trulyform’s list_forms tool. An empty account simply returns no forms, which still confirms the setup.

Step 4

Try it in a repository

Codex can read the project it’s working in, so it can shape a form around your product. From your repository, try:

Your first form prompt

Look through this repository's README and main screens. Create a trulyform bug report form for our users: what they were trying to do, steps to reproduce, what they expected versus what happened, their browser and operating system, and an optional email. Save it as a draft and don't publish it.

Select the text to copy it.

Review the draft in trulyform, then finish the job from Codex:

Publish prompt

I've checked the bug report form in trulyform. Read its latest draft, publish that revision, and add its public link as a contact link in .github/ISSUE_TEMPLATE/config.yml.

Select the text to copy it.

Publishing goes through the exact revision Codex read. If the draft changed after that, trulyform refuses the publish until Codex fetches the current version.

What Codex asks before running

Codex reads the hints each trulyform tool carries. Tools that only read, such as list_forms and list_responses, run without a prompt. Saving a draft or publishing asks first, with choices to allow it once, for the session, or always.

To make a particular tool always ask, set its approval mode in config.toml:

Codex approval setting

[mcp_servers.trulyform.tools.publish_form]
approval_mode = "prompt"

Select the text to copy it.

Log out or remove trulyform

  • codex mcp logout trulyform deletes the sign-in Codex stored.
  • codex mcp remove trulyform deletes the server entry. It leaves stored sign-ins alone, so log out first if you want both gone.
  • To cut access from our side, open Settings → AI connections in trulyform and choose Revoke access for the Codex connection.

Revoking stops new requests; anything Codex already read stays in its session history.

Manage AI connections

When Codex can’t connect

No browser opened during sign-in.

Copy the sign-in link Codex prints in the terminal and open it yourself, or rerun codex mcp login trulyform.

Codex says the trulyform MCP server is not logged in.

Run codex mcp login trulyform, or select Authenticate in the IDE extension or desktop app. Expect this after a revoke in trulyform, or after 30 days without using the connection.

trulyform times out while Codex starts.

Give it longer: add startup_timeout_sec = 30 under [mcp_servers.trulyform] in config.toml. The default is 10 seconds.

Sign-in works, but Codex can’t save it to the keychain.

Codex keeps MCP sign-ins in your system keychain when it can. Setting mcp_oauth_credentials_store = "file" at the top of config.toml stores them in a local file instead.

Codex documentation

We checked these steps against the pages below on October 4, 2026. Codex updates its screens from time to time, so its own documentation is the final word.

Still need a hand? Contact us.

Connected?
Keep the ideas coming.

A clearer question, a better draft, a fresh look at your feedback. There’s a lot you can ask.

Explore what’s possible