MCP
Fontana Files exposes a first-party Model Context Protocol server on your tenant origin at /_fontana-files/mcp (Streamable HTTP). Clients work with buckets: named git-backed file trees with viewer, editor, and admin grants.
This MCP port is for operators and external clients (Cursor, ChatGPT). It is text-only; binary and large files use the HTTP API on the same /_fontana-files prefix.
In Flow, open Admin → File buckets to create buckets, set grants, and browse files in a left-hand explorer. The explorer lists a bucket by its own name with the bucket tags as small chips after it, so a skill bucket reads as its namespace. The cog in the explorer header opens the explorer settings: names that start with a period stay hidden until you turn on Show dot files there, and Resync cache rebuilds the derived skill catalog from the buckets. A .gitignore you save is kept in the bucket history; files it matches stay in the bucket and are not added to that history. Bucket admins can edit grants from the bucket menu. Grant lists show people by name and email, and teams by name. Text files (markdown, JSON, and similar) can be edited in the page. Skill packages live in buckets named Skills (<Namespace>), and AI → Skills is an explorer over those buckets. Knowledge Graph and Agents still use their own file trees.
Tool catalog
Section titled “Tool catalog”| Tool | What it does |
|---|---|
ffs_list_buckets |
List buckets the caller can read (optional any-of tags filter) |
ffs_create_bucket |
Create a bucket (the creating user becomes an admin) |
ffs_delete_bucket |
Delete a bucket |
ffs_get_perms |
Read the grant list (admin) |
ffs_update_perms |
Replace the grant list |
ffs_add_tag |
Add a display tag |
ffs_remove_tag |
Remove a display tag |
ffs_list_files |
Flat { path, size } subtree (folders are implicit) |
ffs_get_file |
Read a UTF-8 file |
ffs_put_file |
Write or replace a UTF-8 file |
ffs_rename_file |
Rename a file inside a bucket |
ffs_delete_file |
Delete a file |
File paths are relative to the bucket file root. Bucket name and file path are always separate arguments.
Access
Section titled “Access”Every tool call authenticates as you (a personal access token or a signed-in browser session) and is checked against that bucket’s grants. A bucket you cannot access is invisible. Calls without valid credentials fail closed.
Tenant endpoints
Section titled “Tenant endpoints”On your tenant Flow origin:
- Health:
https://<tenant>.<baseDomain>/_fontana-files/health(no auth) - MCP (Streamable HTTP):
https://<tenant>.<baseDomain>/_fontana-files/mcp
External MCP clients (Cursor, ChatGPT)
Section titled “External MCP clients (Cursor, ChatGPT)”Use a personal access token (PAT) to connect external MCP clients to your tenant’s public /_fontana-files/mcp endpoint. PATs authenticate as you; bucket grants follow your user, team, and tenant permissions.
Create a PAT under Admin → Personal access tokens and paste the full fnt_pat_… value into your client config.
Cursor
Section titled “Cursor”{ "mcpServers": { "fontana-files": { "url": "https://<tenant>.<baseDomain>/_fontana-files/mcp", "headers": { "Authorization": "Bearer fnt_pat_…" } } }}After editing MCP config, run Developer: Reload Window in Cursor (or fully quit and reopen).