Skip to content

Connect ChatGPT to Folio

Use ChatGPT as the window into your team wiki. Folio is a remote MCP server with OAuth, which is what ChatGPT's custom MCP servers need. You sign in to your own Folio account, and ChatGPT acts with your rights.

Sign-in: OAuth

Answers with links, writes after approval

Ask:

Find our onboarding checklist and tell me what is left for week one. Give me the link. Then add a row to the Roadmap table: Public changelog page, status Planned.

ChatGPT reads the page and answers with its link. For the row it asks you to confirm the write, then the row appears in the table and in Git history.

Connect

What you need

  • A Folio instance reachable over HTTPS from the public internet. For private networks OpenAI offers a Secure MCP Tunnel.
  • PUBLIC_URL set to that address on the Folio side.
  • A ChatGPT workspace that allows custom MCP servers. OpenAI says workspace permissions apply. We could not confirm from its documents which personal plans include the feature, so check the Plugins page in your own account.
  • A Folio account, from an administrator's invitation.

Steps

  1. Step 1: Check that your Folio answers like an OAuth-protected server: a 401 with a WWW-Authenticate header.

    bash
    curl -si -X POST https://your-folio.example.com/mcp \
      -H 'content-type: application/json' -d '{}' | head -8
  2. Step 2: In ChatGPT open Plugins, click the plus and choose the custom MCP server option. The label reads Create custom MCP server or Add custom MCP server, depending on the version. Enter a name, an optional description and the server URL.

    Server URL
    https://your-folio.example.com/mcp
  3. Step 3: Set authentication to OAuth. Folio supports client ID metadata documents, the method ChatGPT uses, so you do not need a client ID or a secret.

  4. Step 4: Accept the risk warning, then create the server as a plugin and install it. ChatGPT sends you to Folio's sign-in and consent screen. Choose read to start, or read and write if you want it to edit.

  5. Step 5: In a chat, mention the plugin with @ and ask your question.

Try it against the demo

Add https://demo.foliowiki.online/mcp the same way, sign in as Sam, and ask: "Find the Release process page and tell me which checklist items are still open."

Demo MCP address
https://demo.foliowiki.online/mcp

The demo login is shared and the data resets every 24 hours, which also removes your connection. Pages written by other visitors are untrusted data, so do not connect an agent that has a shell or your own keys, and do not enter personal data. Requests are rate limited.

What the agent can do

Folio exposes 23 tools over MCP. Full reference.

Reading (11)
Reading (11)What it does
list_spacesSpaces you can see, with your role in each
list_treeThe page tree of a space
search_pagesFull-text search across the pages you can open
read_pageA page as Markdown, with its metadata
resolve_folio_urlA Folio link to the page it points at
get_backlinksPages that link to a page
page_historyThe Git commits that touched a page
page_at_shaA page as it was at a given commit
folio_table_listData tables in a space
folio_table_schemaA table's real columns, types and options
folio_table_queryTable rows with filter, sort and search
searchThe same search under the name ChatGPT deep research looks for
fetchA page by the id that search returned, as Markdown
Writing (10)
Writing (10)What it does
create_pageA new document with text, or a table with columns
update_pageReplace the text of a page; merges with live editing
create_boardA whiteboard from a short description of boxes and arrows
update_boardReplace a whiteboard's scene
board_opsAlign, distribute, move or auto-layout board elements
folio_table_createA table with an explicit schema
folio_table_add_columnA new column
folio_table_insertNew rows
folio_table_updateCells, by row id or by filter
folio_table_deleteRows, by id
  • Reading needs the read scope. Writing needs write. With read only, every tool that changes something refuses to run.
  • All 23 tools carry read-only or destructive annotations, so a client can ask before it writes.
  • An agent cannot manage access rights, invite people, or rename and delete spaces. Those actions exist only in the browser.
  • A write reaches the page file at once. The Git commit follows after about 90 seconds of quiet, so page history can lag behind an edit.
  • ChatGPT asks for confirmation before write actions by default. Folio marks its 13 reading tools as read-only, so reads should go through without a prompt. Folio exposes search and fetch, so ChatGPT deep research can use it.

Security

  • You sign in to your own Folio account and choose read, or read and write, on the consent screen. The connection acts with your rights and nothing more: a page you cannot open stays invisible to it.
  • Writes are saved to Git history under your name.
  • Access tokens last one hour and are renewed by a refresh token that rotates on every use. Folio stores only hashes of them.
  • To disconnect, open the user menu, then API tokens, then Connected apps, and remove the app. Its tokens stop working immediately. Disabling the user does the same.
  • An OAuth token works on /mcp only, not on the REST API.
  • Page content is data, not instructions. Folio's tool descriptions say so, but the real protection is rights. An agent that also has a shell and write access can be misled by a page someone else wrote, so give it the narrowest token that does the job.
  • ChatGPT can send what it reads from Folio to OpenAI. Connect only the spaces you are happy to share with it, and use a read-only consent when you only need answers.

Limits and honest notes

  • ChatGPT cannot send a static token or a custom header, so there is no token route here. It is OAuth or nothing. Codex, OpenAI's coding agent, does take a token: see the Codex page.

Read more