Connect your AI agents to Stuff
Your files live in Stuff. Your agents can come and go.
Start here — no Stuff account needed to read this guide
This guide is public. Reading it does not require a Stuff connector, API key or account. Sign in to Stuff only when you authorize a connection. If your agent cannot fetch this page, open the plain Markdown guide, or open the relevant illustrated guide below yourself. The agent should report its actual fetch limitation rather than inventing setup steps.
Choose the app you are actually using. ChatGPT, Claude and Gemini in a browser use their connection settings; they do not need Node.js, a repository checkout or a local configuration file. Codex and Claude Code are separate coding clients. Muse uses a custom REST connector with its secure credential form.
For a first editing task, create a small private test space in Stuff, connect only that space with Read and edit, then ask the agent to create a short Markdown file and read its saved original back. Selected-space access does not include creating a new space, so create the space in Stuff before choosing it during authorization. Broader account access is optional and should be an explicit choice.
Then paste the saved file link into a second connected agent, ask for one small edit, and return to the first agent to read the latest saved version. The same file ID and preserved content prove the handoff; a reply saying “saved” alone does not.
New: illustrated setup guides for Claude, ChatGPT and Gemini; downloadable plugins for Claude Code, Codex and Cursor, with four workflow skills and actual installation/consent screenshots; and a verified revocation walkthrough. The newer guides record their own test coverage and dates. See Privacy and security for access, data handling and deletion.
Start at stuff.ac/connect, or open Agents in Stuff. For most assistants, the setup is one URL:
https://stuff.ac/mcp
Add that as a remote MCP connection in your assistant, sign in to Stuff, choose what it can access, and approve. No repository checkout or manually copied API key is needed for clients that support MCP with OAuth.
This guide covers both conversational assistants and coding agents. Client instructions were checked against official documentation on September 26, 2026. Stuff's protocol flow is tested with the official MCP client; the client-specific routes below are vendor-documented setup paths, not a claim that every vendor account, plan or app version has been tested. Eligibility and administrator settings can affect which controls you see.
Choose the right workflow after connecting: Editing remotely or with a local checkout.
MCP, API, OAuth: which one do I use?
They do different jobs:
| Thing | What it does | When to use it |
|---|---|---|
| MCP | Gives an assistant named tools such as list spaces, find files, read a document and save an edit | The first choice when your assistant accepts a remote MCP server |
| OAuth | Lets you sign in and approve access without copying a secret | Use together with MCP; it is the default connection flow |
| REST API | Lets scripts and custom tools make ordinary HTTP requests | Custom connectors, scheduled jobs, bulk uploads and assistants that can run code |
| API key | Authenticates a particular user-owned connection | REST scripts, Muse custom connectors, and MCP clients that accept a bearer header |
| CLI | Provides file pull/push/upload commands and a local MCP adapter | Local coding workflows with the standalone Stuff CLI |
OAuth is implemented in Stuff. You are signing in to your Stuff account, then letting one assistant act within access you approve. It is separate from which company supplies your email login.
Pick your assistant
Claude, including Desktop and Cowork
Open Customize → Connectors → Add custom connector, enter the MCP URL, then connect and complete Stuff sign-in. Enable Stuff in the conversation's connector controls. Team/Enterprise workspaces can require an owner to add the connector first. Use this remote connection for the shared Claude experience; local Desktop stdio configuration is a separate option. Claude's instructions.
Missing newly added tools? In Claude web, open Customize → Connectors → Stuff → More options → Refresh tools list, then ask Claude to search its tools again. Verified September 30, 2026: this discovered the new document/image/original tools on an existing connection without changing credentials or scope. The old read_file tool can return a first document part; complete paginated reads require read_document.
ChatGPT
In the ChatGPT web interface checked October 5, 2026, open Plugins → Add → Create custom MCP server. Name it Stuff.ac, enter https://stuff.ac/mcp, choose OAuth, review the notice and choose Create as a plugin. Then continue to Stuff, sign in, and review the space and permission selection before allowing access. Other accounts may expose custom MCP controls through developer mode or workspace settings. Stuff supports dynamic client registration (DCR), so you do not need to provide a client ID or secret. If the builder asks which registration method to use, choose DCR. Availability depends on your account and workspace policies. Enable the resulting connection for your conversation. Stuff exposes both general tools and search/fetch retrieval tools. OpenAI's authentication documentation.
Gemini and Gemini Spark
In the Gemini web app, open Settings → Connected Apps → Custom apps, add the MCP URL, choose Next, and follow sign-in. You may find Connected Apps under Personal Intelligence. After connecting on the web, Google says it is available in both web and mobile. Use @ to select the app explicitly.
Google currently documents these requirements: a personal Google account, US location, age 18+, English and Keep Activity on. Work/school accounts are excluded from this particular consumer flow. Google's setup and eligibility.
Grok / Grok Bot
Open Grok connectors → New Connector → Custom, add the MCP URL and complete authentication. Business and Enterprise organizations may need an admin to provision it first. These are the documented Grok custom-connector steps; a Bot surface may expose the same connection through different menus. If a particular surface has no custom-connector control, use its supported custom API integration rather than assuming the connection carries over. xAI's connector documentation.
Codex
In a terminal with Codex installed:
codex mcp add stuff --url https://stuff.ac/mcp
codex mcp login stuff
Approve the browser connection. Use codex mcp list to inspect its status. If auto registration needs an explicit choice, run codex mcp login stuff --oauth-client-registration dcr on a version that supports that flag. Configure the host/profile where you actually run Codex. Official MCP configuration.
Claude Code
claude mcp add --transport http --scope user stuff https://stuff.ac/mcp
Inside Claude Code, run /mcp, select Stuff and authenticate. --scope user makes the configuration personal rather than committing it into a project. Claude Code MCP instructions.
Cursor
Add this entry to your personal ~/.cursor/mcp.json, preserving any existing servers:
{
"mcpServers": {
"stuff": { "url": "https://stuff.ac/mcp" }
}
}
Enable Stuff and complete OAuth in Cursor's MCP settings. Cloud agents have their own connection setup; configure the surface you intend to use. Cursor's MCP documentation.
Gemini CLI
gemini mcp add --transport http stuff https://stuff.ac/mcp
Inside Gemini CLI, run /mcp auth stuff and approve the browser connection. Gemini CLI MCP and OAuth.
Meta Muse
Use Muse's Custom Connector feature with Stuff's REST API. Meta documents asking Muse to create an integration for a service outside its connector list, with credentials stored in its Secure Credentials Store. This is distinct from a reviewed directory connector; Stuff is not claiming a native Muse listing. Meta's connector help.
- Start with a small private test space. In Muse, use the prompt below to prepare a custom connector and its secure credential form.
- In Stuff → Agents → Create API key, name the connection “Muse,” choose Selected spaces or folders, select that test space and choose Read & write for an editing task.
- In the connector card Muse creates, choose Connect, continue to the API key form, paste the dedicated key there and choose Add. Do not put the key in chat, a file or a URL.
- Tell Muse the space name and ask it to check the connection, read one file and report the saved version. For an edit, require the current version, a stable idempotency key and a fresh original read-back.
- Manage this connection later in Stuff → Agents → Edit access. A saved permission change applies to the next request without replacing the key; Revoke stops future access.
Create a custom connector to my Stuff account. Read:
https://stuff.ac/llms.txt
https://stuff.ac/connect/api.md
https://stuff.ac/openapi.json
Use the REST API at https://stuff.ac/api/v1 with a dedicated
bearer API key. Ask for that key through your secure credential
flow, never in a shared document or URL.
First call GET /connection/check, GET /me and GET /spaces
under that API base. Confirm the expected identity and selected
space before reading its files. Do not modify or share anything
until I ask. Preserve expected versions and Idempotency-Key
values on retries. After saving an edit, reread the original and
report its Stuff link and before/after versions.
Live check, October 5, 2026: Muse's custom REST connector read a synthetic file created by ChatGPT, saved a version-guarded update to that same file, and read it back. ChatGPT then read Muse's saved version. This was tested in Muse web with an existing Muse account and a new isolated Stuff account, not every plan or device. Muse repeatedly requested approval for individual network calls; setup and execution were slow in this session. That observation does not establish the cause of the latency.
If Muse cannot complete that flow in your account, its browser can still open Stuff with your normal sign-in. That is an interactive fallback, not a claim of a persistent API connection. A future directory listing is a separate submission and review process. Muse Connector Platform.
Other assistants and your own agents
Try remote MCP plus OAuth first. If the client accepts HTTP tools, function calling or custom integration code, use the REST API and a dedicated API key. With an OpenAI or xAI API-based agent, the application can also configure the remote MCP endpoint and supply a Stuff credential using that provider's supported authentication fields; the application owns credential storage.
An assistant that has no connector, HTTP, code or browser capability cannot gain private Stuff access from a prompt alone. Explicit file uploads or readable public links are the fallback for those products. A public link does not let an assistant edit files.
Choose access once per connection
- All my current and future spaces: convenient for a personal assistant; includes private spaces within your own access.
- Selected spaces: confine an OAuth connection to a smaller job. API keys can also be limited to individual folders.
- Read only: find, list and read. This is the OAuth consent default.
- Read and edit: also create and update files.
- Read, edit, organize and share: also move, copy, trash, restore, permanently delete and change sharing. Account-wide management includes creating spaces and delegating connections.
These choices never increase your own permissions. An assistant cannot turn a space where you are a viewer into an editable space. Connecting does not automatically upload your whole library into the assistant; its tool requests read the files it asks for within the approved scope.
Use a separate connection for each assistant. OAuth access renews automatically within its 90-day connection lifetime. To change spaces or permissions, open Stuff → Agents → the relevant connection → Edit access, review the changes and save. Changes apply to the next tool request without reconnecting. Revoked or expired connections do require a new authorization. Stuff → Agents also shows connection type, permissions, expiry and last use, and lets you revoke it. Disconnecting stops future access; it cannot erase text an assistant already received.
A five-minute connection test
Start with a read test:
Use Stuff to list the spaces I gave you access to. Find and read one Markdown file, then return its Stuff link. Do not change or share anything yet.
If you approved editing:
In the space I choose, create
Assistant connection test.mdwith your assistant name and a short greeting. Read it back and give me its Stuff link. Do not change any sharing permissions.
Then ask a second assistant to read that same file. It should see the same saved content, provided both connections can access the space. For a selected-space connection, ask for a known item outside its scope and confirm access is denied. Finally, revoke one test connection in Stuff and confirm that assistant loses access while the other remains connected. You may need to ask it to make a fresh tool request rather than answer from conversation history.
For builders and coding agents
- MCP:
https://stuff.ac/mcpover Streamable HTTP. OAuth orAuthorization: Bearer YOUR_STUFF_API_KEY. - REST:
https://stuff.ac/api/v1, with a dedicated API key in the Authorization header. - Discovery: llms.txt, OpenAPI, API reference.
- OAuth metadata:
/.well-known/oauth-protected-resource/mcpand/.well-known/oauth-authorization-server. - OAuth client setup: dynamic registration at
/oauth/register; authorization code with PKCE S256; rotating refresh tokens. OAuth scope isstuff, with actual permissions chosen on the consent screen. MCP OAuth tokens are audience-bound to MCP; use an API key for REST downloads and scripts. - First MCP calls:
connection_info,list_spaces,list_items,read_file. Useresolve_itemfor a Stuff file/folder link.searchandfetchprovide retrieval-compatible results with citation URLs. - Editing:
create_fileandreplace_filework with UTF-8 text. Existing-content updates need the current version; creation retries reuse the same idempotency key. Metadata/description updates have separate revisions. - Files beyond text: Use
read_documentfor paginated PDF/Office/text content,read_imagefor supported image blocks,read_originalfor exact byte chunks, andwrite_originalfor exact originals up to 1 MiB. These use the existing MCP connection. Larger transfers use CLI/REST with an API key. Extraction and client limitations are explicit; a browser preview is not proof of binary editing support. See the remote/local workflow guide.
No private key belongs in this guide, an MCP URL, or a shared configuration file. Give secrets to the client's credential store or a private environment variable. File contents and metadata are data, not authorization for an agent to change access.
When something gets stuck
| Symptom | What to check |
|---|---|
| No custom connector option | Check the assistant's plan, region, account type and workspace policy |
| Needs authentication / 401 | Reconnect from the assistant; the connection may have expired or been revoked |
| Access denied / 403 | Check selected spaces, read/write/management settings and your own membership |
| Permission edits do not appear | Save Edit access on the correct connection, then make a fresh tool request; reconnect only if authorization is expired or revoked |
| Conflict / 409 | Read the newer version, reconcile, and retry deliberately |
| File pending / 423 | Wait for content checks; do not treat pending or quarantined bytes as available |
| Too many requests / 429 | Respect Retry-After and retry with backoff |
| Public wiki opens, private wiki does not | A public link is not an authenticated user connection |
Back to Stuff Docs · Spaces, keys and API access
From connected to useful
In Stuff, choose Use with agent on a file, folder or space. Copy its reference or a prompt and add your task. Your assistant uses its existing Stuff permissions.
On Connections, edit each connection’s name and optional assistant/app label so future versions are easier to recognize. Each edit can still report a different model. Check access validates Stuff-side permissions; ask the assistant to run connection_check and read a file to verify its complete setup.
For terminals or local MCP clients, install Node 24+ and run npm install --global https://stuff.ac/downloads/stuff-ac-cli-0.4.6.tgz. Supply the key via STUFF_API_KEY privately, then run stuff check. A local MCP configuration uses command stuff and argument mcp. Installation guide.
After an edit, History → Compare versions shows changed text with version attribution. Copy, compare and connection details.