Skip to main content
Glama
StatelyDB MCP Server

StatelyDB MCP Server

Official
by StatelyCloud

StatelyDB MCP Server

A Model Context Protocol (MCP) server that integrates with the StatelyDB CLI to enable AI assistants to validate and manage StatelyDB schemas.

Prerequisites

  • Node.js: Version 20 or higher

Related MCP server: MCP Server Demo

Installation

Configuring for Claude Code

Run claude mcp add statelydb -- npx -y @stately-cloud/statelydb-mcp-server@latest to add the MCP server to your Claude Code.

Configuring with Claude Desktop

To use this MCP server with Claude Desktop, follow these steps:

  1. Open your Claude Desktop App configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. Add the server configuration to the mcpServers section:

{
  "mcpServers": {
    "statelydb": {
      "command": "npx",
      "args": ["-y", "@stately-cloud/statelydb-mcp-server@latest"]
    }
  }
}
  1. Save the file and restart Claude Desktop.

Manually install from npm registry

Install the server globally:

npm install -g @stately-cloud/statelydb-mcp-server

Alternatively, you can run it directly with npx:

npx @stately-cloud/statelydb-mcp-server@latest

From local source

To install directly from your local source code:

  1. Clone or download this repository

  2. Navigate to the project directory

  3. Install dependencies and link the package locally:

# Install dependencies
npm install

# Build the TypeScript code
npm run build

# Create a global symlink to your local code
npm link

This will create a global statelydb-mcp-server command that uses your local code.

To unlink later, you can run:

npm unlink statelydb-mcp-server

Available Tools

This MCP server exposes the following tools:

1. validate-schema

Validates a StatelyDB elastic schema definition.

Input:

  • schema: String containing the schema definition

Output:

  • Success: "Schema is valid."

  • Failure: "Schema is invalid. Error: [error message]"

Example:

Could you validate this StatelyDB schema?

import {
  itemType,
  string,
  timestampSeconds,
  uint,
  uuid,
} from "@stately-cloud/schema";

/** A user of our fantastic new system. */
itemType("User", {
  keyPath: "/user-:id",
  fields: {
    id: {
      type: uuid,
      initialValue: "uuid",
    },
    displayName: {
      type: string,
    },
    email: {
      type: string,
    },
    lastLoginDate: {
      type: timestampSeconds,
    },
    numLogins: {
      type: uint,
    },
  },
});

2. validate-migrations

Validates that schema migrations are valid. This is the same as running stately schema put in dry-run mode.

Input:

  • schema: String containing the schema definition

  • schemaId: Your StatelyDB schema ID

Output:

  • Success: "Migrations are valid."

  • Failure: "Migrations are invalid. Error: [error message]"

Example:

Could you check if this StatelyDB schema has valid migrations?

import {
  itemType,
  string,
  timestampSeconds,
  uint,
  uuid,
} from "@stately-cloud/schema";

itemType("User", {
  keyPath: "/user-:id",
  fields: {
    id: {
      type: uuid,
      initialValue: "uuid",
    },
    displayName: {
      type: string,
    },
    email: {
      type: string,
    },
    lastLoginDate: {
      type: timestampSeconds,
    },
    loginCount: {
      type: uint,
    },
  },
});

migrate(1, "Rename the numLogins field", (m) => {
  m.changeType("User", (t) => {
    t.renameField("numLogins", "loginCount");
  });
});

3. attempt-login

Initiates the Stately login process, providing a URL for authentication.

Input:

  • None

Output:

  • URL for authentication: "Please visit this URL to complete the authentication process: [url]"

Example:

Could you help me log into StatelyDB?

4. verify-login

Verifies if the user is currently logged in to StatelyDB.

Input:

  • None

Output:

  • Success: "Login verified. [user information]"

  • Failure: "Not logged in."

Example:

Am I currently logged into StatelyDB?

5. schema-put

Publishes a schema to StatelyDB.

Input:

  • schema: String containing the schema definition

  • schemaId: Your StatelyDB schema ID

Output:

  • Success: "Schema published successfully: [output]"

  • Failure: "Failed to publish schema: [error message]"

Example:

Publish this StatelyDB schema:

import {
  itemType,
  string,
  timestampSeconds,
  uint,
  uuid,
} from "@stately-cloud/schema";

/** A user of our fantastic new system. */
itemType("User", {
  keyPath: "/user-:id",
  fields: {
    id: {
      type: uuid,
      initialValue: "uuid",
    },
    displayName: {
      type: string,
    },
    email: {
      type: string,
    },
    lastLoginDate: {
      type: timestampSeconds,
    },
    numLogins: {
      type: uint,
    },
  },
});

6. schema-generate

Generates client code for a specified language from a StatelyDB schema.

Input:

  • schemaId: Your StatelyDB schema ID

  • language: One of "typescript", "python", "ruby", "go"

Output:

  • List of generated files with their contents

Example:

Could you generate TypeScript client code for schema id 1234?

Security Considerations

  • This MCP server runs local commands on your machine. Always review schemas before publishing them.

  • The server requires access to the Stately CLI and your Stately authentication credentials.

  • No data is sent to external services except through the official Stately CLI.

License

Apache 2.0

Available Tools

6 tools
statelydb-attempt-loginB

Initiate StatelyDB login process and get an authorization URL

Inputs: no named parameters.

statelydb-schema-generateB

Generate client code from a published StatelyDB schema version definition. Supported languages: TypeScript, Python, Ruby, Go.

Inputs: language (required), schemaId (required).

statelydb-schema-putC

Publish an elastic schema version definition to StatelyDB

Inputs: schema (required), schemaId (required).

statelydb-validate-migrationsC

Validate schema migrations inside of a StatelyDB elastic schema definition.

Inputs: schema (required), schemaId (required).

statelydb-validate-schemaC

Validate a StatelyDB elastic schema definition.

Inputs: schema (required).

statelydb-verify-loginA

Verify if the user is logged in to StatelyDB. This command can also tell you what organizations, stores, and schemas you have access to.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 6 tools

    Disambiguation4/5

    Each tool targets a distinct action: validating schemas vs migrations, initiating vs verifying login, publishing, and code generation. The two validate tools could be momentarily confused, but their descriptions clearly differentiate schema-level from migration-level validation.

    Naming Consistency4/5

    All tools share the 'statelydb-' prefix and use hyphenated lowercase, which is readable. Minor deviation: validate/attempt/verify tools use verb_noun ordering while schema-put and schema-generate use noun_verb ordering.

    Tool Count5/5

    Six tools is well-scoped for a schema validation, publishing, and code-generation workflow. Each tool earns its place with no redundancy.

    Completeness3/5

    The core validate → publish → generate workflow is covered, plus login handling. However, there is no dedicated tool to read/get or delete an existing schema version, and listing access depends on verify-login, leaving notable gaps for full lifecycle management.

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      B
      quality
      D
      maintenance
      A Model Context Protocol server implementation that can be run directly or through Docker, enabling AI assistants to interact with external systems through the MCP standard.
      2
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server for PostgreSQL, MySQL, and SQLite that gives AI assistants secure database access via the Model Context Protocol.
      47 npm
      5
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Model Context Protocol (MCP) server that gives AI assistants a safe, correct data-analyst capability over business metrics - without raw SQL improvisation.
      -