Skip to main content
Glama

create-bucket

Create a new bucket in InfluxDB for storing time-series data, specifying the organization ID, bucket name, and optional retention period for data management.

Input Schema

NameRequiredDescriptionDefault
nameYesThe bucket name
orgIDYesThe organization ID
retentionPeriodSecondsNoRetention period in seconds (optional)

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "name": { "description": "The bucket name", "type": "string" }, "orgID": { "description": "The organization ID", "type": "string" }, "retentionPeriodSeconds": { "description": "Retention period in seconds (optional)", "type": "number" } }, "required": [ "name", "orgID" ], "type": "object" }

Implementation Reference

  • The handler function that executes the create-bucket tool logic. It sends a POST request to the InfluxDB API to create a new bucket with the given name, orgID, and optional retention rules.
    export async function createBucket({ name, orgID, retentionPeriodSeconds }) { console.log(`=== CREATE-BUCKET TOOL CALLED ===`); console.log(`Creating bucket: ${name}, orgID: ${orgID}`); try { const bucketData = { name, orgID, retentionRules: retentionPeriodSeconds ? [ { type: "expire", everySeconds: retentionPeriodSeconds }, ] : undefined, }; console.log(`Creating bucket with data: ${JSON.stringify(bucketData)}`); // Use fetch directly instead of our wrapper const response = await fetch(`${INFLUXDB_URL}/api/v2/buckets`, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Token ${INFLUXDB_TOKEN}`, }, body: JSON.stringify(bucketData), }); console.log(`Create bucket response status: ${response.status}`); if (!response.ok) { const errorText = await response.text(); throw new Error( `Failed to create bucket: ${response.status} ${errorText}`, ); } const bucketResponse = await response.json(); console.log(`=== CREATE-BUCKET TOOL COMPLETED SUCCESSFULLY ===`); return { content: [{ type: "text", text: `Bucket created successfully:\nID: ${bucketResponse.id}\nName: ${bucketResponse.name}\nOrganization ID: ${bucketResponse.orgID}`, }], }; } catch (error) { console.error(`=== CREATE-BUCKET TOOL ERROR: ${error.message} ===`); return { content: [{ type: "text", text: `Error creating bucket: ${error.message}`, }], isError: true, }; } }
  • src/index.js:120-142 (registration)
    Registers the 'create-bucket' tool with the MCP server, including input schema validation using Zod and linking to the createBucket handler function.
    server.tool( "create-bucket", "Provision a new bucket under an organization so that subsequent write-data calls have a destination.", { name: z .string() .describe( "Friendly bucket name. Follow InfluxDB naming rules (alphanumeric, dashes, underscores).", ), orgID: z .string() .describe( "Organization ID (UUID) that will own the bucket. Retrieve it from the organizations resource or create-org output.", ), retentionPeriodSeconds: z .number() .optional() .describe( "Optional retention duration expressed in seconds. Omit for infinite retention.", ), }, createBucket, );
  • Zod schema defining the input parameters for the create-bucket tool: name (string), orgID (string), retentionPeriodSeconds (optional number).
    name: z .string() .describe( "Friendly bucket name. Follow InfluxDB naming rules (alphanumeric, dashes, underscores).", ), orgID: z .string() .describe( "Organization ID (UUID) that will own the bucket. Retrieve it from the organizations resource or create-org output.", ), retentionPeriodSeconds: z .number() .optional() .describe( "Optional retention duration expressed in seconds. Omit for infinite retention.", ), },

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/idoru/influxdb-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server