Extracreative/baserow-file-upload-mcp
If you are the rightful owner of baserow-file-upload-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP Baserow File Upload Server is a Model Context Protocol server designed for uploading files to Baserow, supporting both URL-based and direct file uploads from the local filesystem.
upload_image_url
Upload an image from a URL to Baserow and optionally update a table row.
upload_file
Upload a file directly from the local filesystem to Baserow and optionally update a table row.
read_baserow_structure
Read the structure of all tables and fields in Baserow to understand what's available for updates.
MCP Baserow File Upload Server
A Model Context Protocol (MCP) server for uploading files to Baserow. Supports both URL-based uploads and direct file uploads from the local filesystem.
Installation
npm install
Usage
Set environment variables:
export BASEROW_API_URL="https://api.baserow.io"
export BASEROW_API_TOKEN="your_token_here"
Run the server:
npx mcp-baserow-image
Claude MCP Configuration
To use this server with Claude Desktop, add the following to your Claude MCP configuration file:
Location
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%/Claude/claude_desktop_config.json
Configuration
{
"mcpServers": {
"baserow-file-upload": {
"command": "node",
"args": ["/absolute/path/to/mcp_baserow_image.js"],
"env": {
"BASEROW_API_URL": "https://api.baserow.io",
"BASEROW_API_TOKEN": "your_baserow_token_here"
}
}
}
}
Alternative: Global Installation
If you prefer to install globally:
npm install -g mcp-baserow-image
Then use this configuration:
{
"mcpServers": {
"baserow-file-upload": {
"command": "mcp-baserow-image",
"env": {
"BASEROW_API_URL": "https://api.baserow.io",
"BASEROW_API_TOKEN": "your_baserow_token_here"
}
}
}
}
Getting Your Baserow Token
- Log into your Baserow account
- Go to Settings → Account → API tokens
- Create a new token with appropriate permissions
- Copy the token value
After adding the configuration, restart Claude Desktop to load the MCP server.
MCP Protocol
This server provides two tools for uploading files to Baserow:
Available Tools
1. upload_image_url
Upload an image from a URL to Baserow and optionally update a table row.
2. upload_file
Upload a file directly from the local filesystem to Baserow and optionally update a table row.
3. read_baserow_structure
Read the structure of all tables and fields in Baserow to understand what's available for updates.
Tool Selection Guide
- URL-based uploads: Use
upload_image_url
for images available on the web - Local file uploads: Use
upload_file
for files on your local system - Structure discovery: Use
read_baserow_structure
to explore your Baserow setup
Reading Baserow Structure
Before uploading files and updating rows, you can explore your Baserow structure:
read_baserow_structure
With sample data:
read_baserow_structure includeRows=true maxRows=3
This will show you:
- All workspaces and their IDs
- All applications (databases) and their IDs
- All tables and their IDs
- All fields, their types, and IDs
- File fields and their configuration
- Sample row data (if requested)
Use this information to identify the correct tableId
, rowId
, and fieldName
for your uploads.
1. upload_image_url
Upload an image from a URL to Baserow.
Input Format:
{
"tool": "upload_image_url",
"args": {
"url": "https://example.com/image.jpg",
"filename": "custom_name.jpg",
"tableId": "123",
"rowId": "456",
"fieldName": "image_field"
}
}
2. upload_file
Upload a file directly from the local filesystem to Baserow.
Important: This tool requires the file to be physically present on the local filesystem where the MCP server is running. The file path must be accessible to the server process.
Input Format:
{
"tool": "upload_file",
"args": {
"filePath": "/path/to/local/file.jpg",
"filename": "custom_name.jpg",
"tableId": "123",
"rowId": "456",
"fieldName": "file_field"
}
}
Note: The filePath
parameter must point to an existing file on the local filesystem. Remote URLs or cloud storage paths are not supported for this tool - use upload_image_url
for URL-based uploads instead.
Output Format
Both tools return the same format:
{
"success": true,
"uploaded_file": {
"name": "uploaded_file_name.jpg",
"url": "https://api.baserow.io/media/user_files/..."
},
"updated_row": {
"id": 456,
"file_field": [...]
}
}
Development
Running Tests
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
Linting
# Run linter
npm run lint
# Fix linting issues
npm run lint:fix
API
upload_image_url(url, filename?, tableId?, rowId?, fieldName?)
Uploads an image from a URL to Baserow and optionally updates a row.
Parameters:
url
(string) - The image URL to uploadfilename
(string, optional) - Custom filename for the uploaded filetableId
(string, optional) - Baserow table IDrowId
(string, optional) - Existing row ID to updatefieldName
(string, optional) - The field name for the file field
Returns: Promise