- Createcreate_data_room
- Add fileslink, inline, or you
- Organizefolders + Smart Sort
- Inviteheld for your approval
- Askcited answers, engagement
Connect Sifrsys to ChatGPT
OpenAI renamed ChatGPT's connectors surface to Plugins; custom MCP servers are added there once developer mode is on. The steps below follow OpenAI's developer documentation as of 26 September 2026. Sifrsys signs ChatGPT in with OAuth, so there is no key to paste.
Step 1. Turn on developer mode
On chatgpt.com: Settings → Security and login, turn on Developer mode. OpenAI lists it for Plus, Pro, Business, Enterprise and Education accounts on the web. In a Business or Enterprise workspace an admin may need to allow it.
Step 2. Add the server on the Plugins page
Open chatgpt.com/plugins and select +. Give it a name (“Sifrsys”) and a short description, enter the server URL including the /mcp path, and choose OAuth for authentication.
https://sifrsys.com/mcpStep 3. Sign in and approve
ChatGPT opens Sifrsys's sign-in and consent screen. Pick the organization and approve. The connection then appears under Settings → Agents & API → Connected apps in Sifrsys, where you can revoke it.
Step 4. Use it in a conversation
Start a new conversation, choose Developer mode from the + menu and select the Sifrsys app. ChatGPT will ask you to confirm each write action; that confirmation is ChatGPT's, and it repeats in each new conversation.
Prompts to copy
OpenAI's guidance for developer mode is to be explicit about tool names, so the tool is written into each prompt.
Step 5. Create the room and add documents
Use the Sifrsys create_data_room tool to create a data room called "Acme — Seed Round". Show me the upload_page_url it returns.I have 14 files on my laptop for this room. Send me the room's upload page link, wait while I upload them there, and check get_room_overview every 30 seconds until the document count reaches 14. Then carry on.Use upload_from_url to add https://example.com/acme-deck.pdf to the room.Write a data room index as plain text, one line per folder describing what belongs in it, and upload it with upload_inline_document as "00 Index.txt".Step 6. Organize, invite, ask
Use organize_documents to create folders Corporate, Financials, Legal, Team and Product, and run Smart Sort as a preview. Show me the suggestions and wait for my go-ahead before running it with apply=true.Use invite_participants to create a new group "Lead investors" with permission_level view, watermark_enabled true, can_download false, and invite Jane Doe (jane@fund.example) and Mark Lee (mark@capital.example). If it returns pending_approval, tell me and wait.I approved it in Sifrsys. Check get_pending_approvals, then retry the same invite_participants call with the approval_id and the group_id it created.Use ask_room_ai to ask: "What is the post-money valuation in the cap table, and what option pool does it assume?" Quote the citations exactly.Use get_engagement_report with lookback_days 7 and tell me which invited investors have not opened anything.Uploads when the agent has no network
Tool calls from ChatGPT to the Sifrsys MCP server travel through OpenAI's servers and are not affected by the sandbox. What the sandbox blocks is code sending data out on its own, and the signed-URL upload is exactly that: a PUT of the file bytes to auth.sifrsys.com. So in ChatGPT, three of the four paths are usable and one is not.
| Criterion | Tool | Limit | Needs outbound network from the agent? |
|---|---|---|---|
| Signed URLAgent PUTs the bytes | request_upload_urls → HTTP PUT → finalize_uploads | 100 MB per file, 25 files per call, URL valid about 5 minutes | Yes, to auth.sifrsys.com |
| InlineContent inside the tool call | upload_inline_document | 4 MB decoded | No |
| From a linkSifrsys fetches it | upload_from_url | 20 MB, https only, no login or cookies | No |
| Upload page hand-offYou upload, the agent waits | upload_page_url, then get_room_overview until document_count rises | Whatever your plan's storage allows | No |
For a typical seed round, where the deck, model, cap table and legal documents sit in a folder on a founder's laptop, the upload page is the path that works: ChatGPT sends the link, you drop the files in, it continues. Links work when the files already live somewhere that can produce a direct https download without a login.
Which agent for which situation
| Criterion | claude.ai (web, desktop) | ChatGPT (developer mode) | Claude Code, Cursor, Codex CLI |
|---|---|---|---|
| Sign-in to Sifrsys | OAuth consent screen, no key to paste | OAuth consent screen, no key to paste | API key (sifr_live_…) in a header |
| Files on your own diskThe common case for a seed round | Attach them to the chat and allow auth.sifrsys.com in network settings, or use the upload page | Upload page: you drop the files in, the agent carries on | Works natively: the agent reads the folder and uploads it |
| Files at an https link | upload_from_url, up to 20 MB | upload_from_url, up to 20 MB | Any of the four paths |
| Documents the agent writes (index, FAQ, summary) | upload_inline_document, up to 4 MB | upload_inline_document, up to 4 MB | upload_inline_document, or write the file and upload it |
| Large files | Signed URL (100 MB) only once egress to auth.sifrsys.com is allowed | Upload page | Signed URL, up to 100 MB each |
| Client plans that can connect | Free (one custom connector), Pro, Max, Team, Enterprise | Plus, Pro, Business, Enterprise, Edu, on the web | Any: the client runs on your machine |
| Best for | Founders who live in Claude and have a handful of files | Teams already on ChatGPT; organizing, inviting and asking once files are in | A folder of 30+ files, repeatable setups, anything scripted |
Where ChatGPT is weaker for this job is the first mile: it cannot move a folder of files. If that is most of the work, a local agent does it in one step; see Claude Code, Cursor and Codex. Once the files are in, ChatGPT is as capable as any other client at the rest.
What an agent is never allowed to do by default
Every Sifrsys organization has a policy matrix that sets each class of agent action to allow, require approval, or deny. The defaults below are the ones in the server code. An owner or admin can change them under Settings → Agents & API; nothing an agent says in a chat can.
| Criterion | Default | What it covers |
|---|---|---|
| Denied | Refused with denied_by_policy | Deleting or suspending: documents, folders (and merging duplicate folders), participants, groups, and the room itself. Also changing room branding (configure_branding) and publishing the room's participant portal |
| Needs your approval | Returns a pending_approval handle | Sending or resending invitations (invite_participants, resend_invite); widening access: a permission on a specific document or folder (set_permissions), a more permissive group, a later or removed access expiry, reactivating a suspended participant; publishing a Q&A answer to the person who asked, assigning a question, changing its status |
| Allowed | Runs immediately, logged | Reading, creating rooms, uploading (including new versions of a document), renaming and moving documents and folders, removing empty folders, Smart Sort, creating groups, narrowing access, asking the room AI, drafting Q&A answers, restoring a suspended room |
An approval goes to the organization's admins by email and appears under Settings → Agents & API. It is single-use, matched to the exact request the agent made, and expires after 24 hours, so an approval for inviting two people cannot be replayed to invite a third. Every agent action, allowed or not, lands in the room's hash-chained audit log as actor_type=agent with the human who connected it. A key or connection can never do more than the person who created it, and an org-wide switch turns all agent access off at once.
Document text that comes back through ask_room_ai or list_qa is wrapped and labelled as untrusted data, because it was written by the other side of the deal. The threat model explains why.
Agent access is on every Sifrsys plan, the free one included. An agent works inside your plan's limits (the free plan is one room, 100 MB of storage and five participants per room), and the only agent meter is a monthly budget of room-AI questions: 250 on Free, 10,000 on Teams, 50,000 on Pro. Creating, uploading, organizing and inviting are not metered. Bursts are capped at 60 requests a minute per connection. Plans are on the pricing page.
Troubleshooting
ChatGPT tries request_upload_urls and the PUT fails
Expected: the sandbox has no egress. Ask it to use the upload page or a link instead. An upload that was started but never finalized is cleaned up automatically.
A tool is missing or its description is old
Open the Sifrsys connection on chatgpt.com/plugins, select Refresh, and start a new conversation.
Developer mode is not in Settings
It is web-only, not on the free ChatGPT plan, and can be disabled by workspace policy on Business and Enterprise.
denied_by_policy, limit_reached, or an expired approval
The first is the org policy (change it in Sifrsys under Settings → Agents & API), the second a plan limit, the third an approval older than 24 hours. Ask ChatGPT to request it again.
Sources
Client steps checked on 26 September 2026 against OpenAI's ChatGPT developer mode, Connect and test your plugin and Building MCP servers. OpenAI's help-centre article on developer mode refused automated access when we checked, so the menu names come from the developer documentation. Sifrsys tool names, limits and policy defaults are from the MCP server source; see the developers page.
The other agent guides: With Claude (claude.ai) · With Claude Code, Cursor, Codex · Developer reference · The walkthrough, with the real tool calls