Alchuang22-dev opened a new pull request, #18:
URL: https://github.com/apache/iotdb-mcp-server/pull/18

   ## Description
   
   This PR migrates the IoTDB MCP Server enhancements previously maintained 
under
   `lib/iotdb_mcp_server` in the TimeSeek repository into the standalone
   `iotdb-mcp-server` repository.
   
   The migration follows the Apache project plan to separate reusable library
   components from TimeSeek-specific plugin and orchestration code. It also
   restructures the server into domain-oriented modules to improve 
maintainability,
   security, and extensibility.
   
   ## Content
   
   ### Features
   
   - Split the monolithic MCP server into modules for:
     - Database management
     - Query and metadata operations
     - Table and time-series management
     - TTL management
     - UDF execution
     - AINode discovery and model inference
     - SQL execution and write operations
   - Add support for registering and dynamically selecting multiple IoTDB 
targets.
   - Add reusable Tree and Table session pools with target-aware lifecycle 
management.
   - Add an `iotdb-target-cli` command for operating on verified IoTDB targets.
   - Add per-target last-known-good credential handling.
   - Add runtime policy configuration and SQL permission inspection.
   - Add configurable permission controls for DDL, write, model, UDF, and SQL 
operations.
   - Add batch SQL execution with:
     - Parameterized SQL templates
     - Concurrency limits
     - Per-item and batch result quotas
     - Configurable error handling
   - Add file-backed result storage with pagination, cleanup, listing, and 
deletion tools.
   - Add AINode availability probing and model inference validation.
   - Add UDF-based data-quality validation support.
   - Add Tree SQL shape validation and runtime diagnostics.
   - Add tests for target routing, credential caching, result storage, batch 
SQL execution,
     target lifecycle management, and the target CLI.
   - Update the English and Chinese documentation, packaging configuration, and 
deployment
     configuration.
   
   ### Fixes
   
   - Preserve credentials independently for each verified IoTDB target.
   - Improve connection-pool reuse and cleanup when targets are changed or 
reloaded.
   - Correct target selection and routing for read-only and database-specific 
operations.
   - Improve MCP startup and shutdown behavior.
   - Preserve explicitly configured empty passwords without treating them as 
missing values.
   - Keep CSV and Excel export filename validation and path-traversal 
protection.
   - Add result-size controls to prevent large query responses from exhausting 
the MCP
     context.
   - Improve error responses by returning structured diagnostic and target 
information.
   
   ## Migration Notes
   
   - The minimum supported Python version is now Python 3.11.
   - The server implementation is now organized under
     `src/iotdb_mcp_server/services`. Integrations importing implementation 
details from the
     previous monolithic `server.py` should migrate to the corresponding 
service module.
   - The `iotdb-mcp-server` entry point remains available.
   - A new `iotdb-target-cli` entry point is provided for target lifecycle 
operations.
   - Existing single-target environment variables remain supported as the 
fallback
     configuration.
   - Multi-target deployments can configure a target registry and select a 
target for each
     request.
   - Runtime permissions are more restrictive and configurable. Deployments 
using DDL,
     write, model, UDF, or unrestricted SQL operations should review the 
corresponding
     policy environment variables.
   - Query results may be stored in the file-backed result store when they 
exceed inline
     response limits. Clients should use the result pagination tools to 
retrieve the
     remaining rows.
   - CSV and Excel export behavior remains supported, including filename and 
path security
     validation.
   - The original TimeSeek source directory has not been removed in this PR. It 
should be
     removed after TimeSeek plugins and packaging have been updated to depend 
on the
     standalone repository.
   
   Validation performed:
   
   ```text
   51 tests passed
   14 subtests passed
   git diff --check passed
   tested in Codex/Claude Code/OpenCode(and with TimeSeek Plugin)
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to