naftiko: 1.0.0-alpha2 info: label: SingleStore Database Operations description: Unified database operations workflow combining SQL execution via the SingleStore Data API with workspace management via the Management API. Used by data engineers, application developers, and DevOps teams to manage database infrastructure and execute queries programmatically without native database drivers. tags: - Database - SQL - Analytics - Workspaces - Provisioning created: '2026-05-02' modified: '2026-05-06' binds: - namespace: env keys: SINGLESTORE_API_KEY: SINGLESTORE_API_KEY SINGLESTORE_MANAGEMENT_API_KEY: SINGLESTORE_MANAGEMENT_API_KEY SINGLESTORE_WORKSPACE_HOST: SINGLESTORE_WORKSPACE_HOST capability: consumes: - type: http namespace: singlestore-data baseUri: https://{{SINGLESTORE_WORKSPACE_HOST}} description: SingleStore Data API for SQL execution over HTTP authentication: type: bearer token: '{{SINGLESTORE_API_KEY}}' resources: - name: exec path: /api/v2/exec description: Execute DDL and DML SQL statements operations: - name: execute-sql method: POST description: Execute a SQL statement (DDL, DML, or non-SELECT statements) outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: sql: '{{tools.sql}}' database: '{{tools.database}}' args: '{{tools.args}}' - name: query-rows path: /api/v2/query/rows description: Execute SELECT statements returning JSON rows operations: - name: query-rows method: POST description: Execute a SQL query and return results as named JSON rows outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: sql: '{{tools.sql}}' database: '{{tools.database}}' args: '{{tools.args}}' - name: query-tuples path: /api/v2/query/tuples description: Execute SELECT statements returning JSON tuples operations: - name: query-tuples method: POST description: Execute a SQL query and return results as compact JSON tuples outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: sql: '{{tools.sql}}' database: '{{tools.database}}' args: '{{tools.args}}' - name: ping path: /api/v2/ping description: Health check for the Data API operations: - name: ping method: GET description: Ping the Data API to verify connectivity outputRawFormat: json outputParameters: - name: result type: object value: $. - type: http namespace: singlestore-mgmt baseUri: https://api.singlestore.com/v1 description: SingleStore Management API for workspace and infrastructure management authentication: type: bearer token: '{{SINGLESTORE_MANAGEMENT_API_KEY}}' resources: - name: workspace-groups path: /workspaceGroups description: Manage workspace groups operations: - name: list-workspace-groups method: GET description: List all workspace groups outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-workspace-group method: POST description: Create a new workspace group outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' regionID: '{{tools.regionID}}' adminPassword: '{{tools.adminPassword}}' - name: workspace-group path: /workspaceGroups/{workspaceGroupID} description: Manage a specific workspace group operations: - name: get-workspace-group method: GET description: Get a workspace group inputParameters: - name: workspaceGroupID in: path type: string required: true description: The workspace group identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: terminate-workspace-group method: DELETE description: Terminate a workspace group inputParameters: - name: workspaceGroupID in: path type: string required: true description: The workspace group identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: workspaces path: /workspaces description: Manage workspaces within workspace groups operations: - name: list-workspaces method: GET description: List workspaces outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-workspace method: POST description: Create a new workspace outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' workspaceGroupID: '{{tools.workspaceGroupID}}' size: '{{tools.size}}' - name: workspace path: /workspaces/{workspaceID} description: Manage a specific workspace operations: - name: get-workspace method: GET description: Get a workspace inputParameters: - name: workspaceID in: path type: string required: true description: The workspace identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: suspend-workspace method: PATCH description: Suspend a workspace to stop billing inputParameters: - name: workspaceID in: path type: string required: true description: The workspace identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: suspended: true - name: resume-workspace method: PATCH description: Resume a suspended workspace inputParameters: - name: workspaceID in: path type: string required: true description: The workspace identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: suspended: false - name: terminate-workspace method: DELETE description: Terminate and delete a workspace inputParameters: - name: workspaceID in: path type: string required: true description: The workspace identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: regions path: /regions description: List available deployment regions operations: - name: list-regions method: GET description: List available regions for workspace deployment outputRawFormat: json outputParameters: - name: result type: object value: $. - name: jobs path: /jobs description: Manage scheduled notebook jobs operations: - name: list-jobs method: GET description: List scheduled jobs outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-job method: POST description: Create a new scheduled job outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: name: '{{tools.name}}' notebookPath: '{{tools.notebookPath}}' exposes: - type: rest port: 8080 namespace: database-operations-api description: Unified REST API for SingleStore database and workspace management. resources: - path: /v1/sql/exec name: sql-exec description: Execute SQL statements operations: - method: POST name: execute-sql description: Execute DDL or DML SQL statements call: singlestore-data.execute-sql outputParameters: - type: object mapping: $. - path: /v1/sql/query name: sql-query description: Query data with row results operations: - method: POST name: query-data description: Execute SELECT queries and return results as rows call: singlestore-data.query-rows outputParameters: - type: object mapping: $. - path: /v1/workspace-groups name: workspace-groups description: Manage workspace groups operations: - method: GET name: list-workspace-groups description: List all workspace groups call: singlestore-mgmt.list-workspace-groups outputParameters: - type: object mapping: $. - method: POST name: create-workspace-group description: Create a workspace group call: singlestore-mgmt.create-workspace-group outputParameters: - type: object mapping: $. - path: /v1/workspaces name: workspaces description: Manage workspaces operations: - method: GET name: list-workspaces description: List workspaces call: singlestore-mgmt.list-workspaces outputParameters: - type: object mapping: $. - method: POST name: create-workspace description: Create a workspace call: singlestore-mgmt.create-workspace outputParameters: - type: object mapping: $. - path: /v1/workspaces/{workspaceID}/suspend name: workspace-suspend description: Suspend a workspace operations: - method: POST name: suspend-workspace description: Suspend a workspace to reduce costs call: singlestore-mgmt.suspend-workspace with: workspaceID: rest.workspaceID outputParameters: - type: object mapping: $. - path: /v1/workspaces/{workspaceID}/resume name: workspace-resume description: Resume a workspace operations: - method: POST name: resume-workspace description: Resume a suspended workspace call: singlestore-mgmt.resume-workspace with: workspaceID: rest.workspaceID outputParameters: - type: object mapping: $. - path: /v1/regions name: regions description: List available regions operations: - method: GET name: list-regions description: List deployment regions call: singlestore-mgmt.list-regions outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: database-operations-mcp transport: http description: MCP server for AI-assisted SingleStore database operations and infrastructure management. tools: - name: execute-sql description: Execute a SQL DDL or DML statement against SingleStore (CREATE TABLE, INSERT, UPDATE, DELETE) hints: readOnly: false destructive: false call: singlestore-data.execute-sql with: sql: tools.sql database: tools.database outputParameters: - type: object mapping: $. - name: query-database description: Execute a SELECT SQL query against SingleStore and return results hints: readOnly: true openWorld: true call: singlestore-data.query-rows with: sql: tools.sql database: tools.database outputParameters: - type: object mapping: $. - name: list-workspace-groups description: List all SingleStore workspace groups in the organization hints: readOnly: true openWorld: false call: singlestore-mgmt.list-workspace-groups outputParameters: - type: object mapping: $. - name: create-workspace-group description: Create a new SingleStore workspace group in a specified region hints: readOnly: false destructive: false call: singlestore-mgmt.create-workspace-group outputParameters: - type: object mapping: $. - name: list-workspaces description: List all workspaces in the organization hints: readOnly: true openWorld: false call: singlestore-mgmt.list-workspaces outputParameters: - type: object mapping: $. - name: create-workspace description: Provision a new SingleStore workspace with specified compute size hints: readOnly: false destructive: false call: singlestore-mgmt.create-workspace outputParameters: - type: object mapping: $. - name: get-workspace description: Get details and connection information for a specific workspace hints: readOnly: true openWorld: false call: singlestore-mgmt.get-workspace with: workspaceID: tools.workspaceID outputParameters: - type: object mapping: $. - name: suspend-workspace description: Suspend a running workspace to pause billing during idle periods hints: readOnly: false destructive: false idempotent: true call: singlestore-mgmt.suspend-workspace with: workspaceID: tools.workspaceID outputParameters: - type: object mapping: $. - name: resume-workspace description: Resume a suspended workspace to restore database access hints: readOnly: false destructive: false idempotent: true call: singlestore-mgmt.resume-workspace with: workspaceID: tools.workspaceID outputParameters: - type: object mapping: $. - name: list-regions description: List available cloud regions for deploying SingleStore workspaces hints: readOnly: true openWorld: false call: singlestore-mgmt.list-regions outputParameters: - type: object mapping: $. - name: list-jobs description: List scheduled notebook automation jobs hints: readOnly: true openWorld: false call: singlestore-mgmt.list-jobs outputParameters: - type: object mapping: $.