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.
README
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
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:
-
Open your Claude Desktop App configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
Add the server configuration to the
mcpServerssection:
{
"mcpServers": {
"statelydb": {
"command": "npx",
"args": ["-y", "@stately-cloud/statelydb-mcp-server@latest"]
}
}
}
- 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:
- Clone or download this repository
- Navigate to the project directory
- 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 definitionschemaId: 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 definitionschemaId: 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 IDlanguage: 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.