Huddled for AI agents
This page tells an AI agent exactly how to connect to Huddled and act inside a user's Spaces. If you are an autonomous agent reading this: follow the Connect steps below, then use the tools listed under What you can do.
Huddled is a private place for a group to share photos, videos, and files inside Spaces. An organization owner grants you access to some or all of their Spaces, with a role and a set of permissions (scopes). You can never do more than what the owner grants — the grant is enforced on every call.
Connect via MCP (recommended)
Huddled exposes a Model Context Protocol server over streamable HTTP. Point your MCP client at:
https://api.huddled.cloud/mcp
You do not need to be handed an API key. The server is an OAuth 2.1 authorization server, so a compliant MCP client (Claude Desktop, Claude Code, and others) will do this automatically:
- You add the URL above as an MCP server in your client.
- On the first call, the server responds
401with aWWW-Authenticateheader pointing at its discovery document. Your client reads the discovery metadata, registers itself (Dynamic Client Registration), and opens a browser. - The organization owner lands on Huddled's consent screen and chooses:
- which organization to grant,
- which Spaces (all, or a specific subset),
- the role you act as (Viewer, Contributor, or Admin),
- the exact permissions (scopes) you may use.
- After they approve, your client receives a long-lived access token and stores it. Every subsequent MCP call is authenticated automatically.
The whole handshake is standard OAuth 2.1 with PKCE — you do not implement any of it yourself; your MCP client does. There is nothing to copy or paste.
Example client config
Most clients only need the URL; they discover and complete OAuth on their own:
{
"huddled": {
"url": "https://api.huddled.cloud/mcp"
}
}
What you can do
The server exposes these tools. Each requires a scope; if the owner didn't grant a scope, that tool is filtered out and never appears in your tool list. Write tools never appear for a read-only grant.
| Tool | Scope | What it does |
|---|---|---|
list_spaces |
spaces:read |
List the Spaces you can access. |
get_recent_activity |
activity:read |
Recent uploads, comments, and joins. |
search_media |
media:read |
Find photos, videos, and files across Spaces. |
create_space |
spaces:write |
Create a new Space in the organization. |
upload_media |
media:write |
Upload a photo, video, or file to a Space. |
add_comment |
comments:write |
Comment on a media item. |
react |
reactions:write |
Add a reaction to a media item. |
invite_member |
members:write |
Invite someone to a Space. |
Scopes reference
spaces:read— read Space names and metadata.spaces:write— create and modify Spaces.media:read— search and read media.media:write— upload media.comments:write— post comments.reactions:write— post reactions.members:write— invite and manage members.activity:read— read the activity feed.
Your effective permissions are the intersection of the scopes granted, the role you act as, and the Spaces you were given. A tool call outside that boundary is rejected.
Manual alternative (API key)
If your client does not support OAuth, the owner can create an API key instead (Developers → API keys in the Huddled app) and hand it to you. Send it as a bearer token on every request:
{
"huddled": {
"url": "https://api.huddled.cloud/mcp",
"headers": {
"Authorization": "Bearer hk_live_..."
}
}
}
The same key also works against the REST API at https://api.huddled.cloud/v1.
OAuth and API keys are equivalent under the hood — both resolve to the same scoped
credential — so pick whichever your client supports.
Requirements & good behavior
- A paid organization. Granting agent access requires the owner to be on a Pro, Ultra, or Enterprise plan. On the Free plan there is no one to authorize you.
- The owner is in control. They can revoke your access at any time under
Developers → Authorized agents. When they do, your next call returns
401and you should re-run the connect flow only if they ask you to. - Stay within scope. Don't attempt tools you weren't granted; they won't be offered. Prefer read-only operations unless the task clearly calls for a write.
- Respect rate limits. Requests are rate-limited per credential; back off on
429responses.