feat: add upload_attachment MCP tool
All checks were successful
Build and Push Docker Image / build (push) Successful in 24s
All checks were successful
Build and Push Docker Image / build (push) Successful in 24s
Add support for uploading file attachments to Grist documents: - GristClient.upload_attachment() method using multipart/form-data - upload_attachment tool function with base64 decoding and MIME detection - Tool registration in server.py - Comprehensive unit tests (7 new tests) Returns attachment ID for linking to records via update_records. Bumps version to 1.3.0.
This commit is contained in:
26
CHANGELOG.md
26
CHANGELOG.md
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.3.0] - 2026-01-03
|
||||
|
||||
### Added
|
||||
|
||||
#### Attachment Upload
|
||||
- **`upload_attachment` MCP tool**: Upload files to Grist documents
|
||||
- Base64-encoded content input (required for JSON-based MCP protocol)
|
||||
- Automatic MIME type detection from filename
|
||||
- Returns attachment ID for linking to records via `update_records`
|
||||
|
||||
#### Usage
|
||||
```python
|
||||
# 1. Upload attachment
|
||||
result = upload_attachment(
|
||||
document="accounting",
|
||||
filename="invoice.pdf",
|
||||
content_base64="JVBERi0xLjQK..."
|
||||
)
|
||||
# Returns: {"attachment_id": 42, "filename": "invoice.pdf", "size_bytes": 31395}
|
||||
|
||||
# 2. Link to record
|
||||
update_records(document="accounting", table="Bills", records=[
|
||||
{"id": 1, "fields": {"Attachment": [42]}}
|
||||
])
|
||||
```
|
||||
|
||||
## [1.2.0] - 2026-01-02
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user