chore: release v1.0.0-alpha.1
Some checks failed
Build and Push Docker Image / build (push) Failing after 1m56s
Some checks failed
Build and Push Docker Image / build (push) Failing after 1m56s
- Add CHANGELOG.md documenting initial release features - Update version to 1.0.0 in pyproject.toml
This commit is contained in:
62
CHANGELOG.md
Normal file
62
CHANGELOG.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Changelog
|
||||
|
||||
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.0.0] - 2026-01-01
|
||||
|
||||
Initial release of grist-mcp, an MCP server for AI agents to interact with Grist spreadsheets.
|
||||
|
||||
### Added
|
||||
|
||||
#### Core Features
|
||||
- **MCP Server**: Full Model Context Protocol implementation with SSE transport
|
||||
- **Token-based Authentication**: Secure agent authentication via `GRIST_MCP_TOKEN`
|
||||
- **Granular Permissions**: Per-document access control with `read`, `write`, and `schema` scopes
|
||||
- **Multi-tenant Support**: Configure multiple Grist instances and documents
|
||||
|
||||
#### Discovery Tools
|
||||
- `list_documents`: List accessible documents with their permissions
|
||||
|
||||
#### Read Tools
|
||||
- `list_tables`: List all tables in a document
|
||||
- `describe_table`: Get column metadata (id, type, formula)
|
||||
- `get_records`: Fetch records with optional filter, sort, and limit
|
||||
- `sql_query`: Execute read-only SELECT queries
|
||||
|
||||
#### Write Tools
|
||||
- `add_records`: Insert new records into a table
|
||||
- `update_records`: Modify existing records by ID
|
||||
- `delete_records`: Remove records by ID
|
||||
|
||||
#### Schema Tools
|
||||
- `create_table`: Create new tables with column definitions
|
||||
- `add_column`: Add columns to existing tables
|
||||
- `modify_column`: Change column type or formula
|
||||
- `delete_column`: Remove columns from tables
|
||||
|
||||
#### Infrastructure
|
||||
- **Docker Support**: Multi-stage Dockerfile with non-root user
|
||||
- **Docker Compose**: Ready-to-deploy configuration with environment variables
|
||||
- **Health Endpoint**: `/health` for container orchestration readiness checks
|
||||
- **SSE Transport**: Server-Sent Events for MCP client communication
|
||||
- **Environment Variable Substitution**: `${VAR}` syntax in config files
|
||||
|
||||
#### Testing
|
||||
- **Unit Tests**: Comprehensive coverage with pytest-httpx mocking
|
||||
- **Integration Tests**: Docker-based tests with ephemeral containers
|
||||
- **Rich Test Runner**: Progress display for test execution
|
||||
- **Test Isolation**: Dynamic port discovery for parallel test runs
|
||||
|
||||
#### Developer Experience
|
||||
- **Makefile**: Commands for testing, building, and deployment
|
||||
- **Dev Environment**: Docker Compose setup for local development
|
||||
- **MCP Config Display**: Startup message with client configuration snippet
|
||||
|
||||
### Security
|
||||
- SQL injection prevention with SELECT-only query validation
|
||||
- API key isolation per document
|
||||
- Token validation at startup (no runtime exposure)
|
||||
- Non-root container execution
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "grist-mcp"
|
||||
version = "0.1.0"
|
||||
version = "1.0.0"
|
||||
description = "MCP server for AI agents to interact with Grist documents"
|
||||
requires-python = ">=3.14"
|
||||
dependencies = [
|
||||
|
||||
Reference in New Issue
Block a user