mcp-turso-cloud
The mcp-turso-cloud server integrates with Turso databases for LLMs, enabling management and querying via MCP with two-level authentication for security.
Organization Operations: List, create, delete databases, generate authentication tokens
Database Operations: List tables, execute read-only queries (SELECT, PRAGMA), run destructive queries (INSERT, UPDATE, DELETE), describe table schemas, perform vector similarity searches
Security: Separates read-only and destructive operations, requiring explicit approvals for destructive queries
Enables vector similarity searches using SQLite vector extensions, allowing for querying vector data stored in Turso databases with customizable parameters.
Provides tools for managing Turso databases at both organization and database levels, including listing, creating, and deleting databases, generating authentication tokens, listing tables, executing SQL queries, describing table schemas, and performing vector similarity searches.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-turso-cloudlist tables in my analytics database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-turso-cloud
A Model Context Protocol (MCP) server that provides integration with Turso databases for LLMs. This server implements a two-level authentication system to handle both organization-level and database-level operations, making it easy to manage and query Turso databases directly from LLMs.
Features
🏢 Organization-Level Operations
List Databases: View all databases in your Turso organization
Create Database: Create new databases with customizable options
Delete Database: Remove databases from your organization
Generate Database Token: Create authentication tokens for specific databases
💾 Database-Level Operations
List Tables: View all tables in a specific database
Execute Read-Only Query: Run SELECT and PRAGMA queries (read-only operations)
Execute Query: Run potentially destructive SQL queries (INSERT, UPDATE, DELETE, etc.)
Describe Table: Get schema information for database tables
Vector Search: Perform vector similarity search using SQLite vector extensions
Related MCP server: Supabase MCP Server
⚠️ IMPORTANT: Query Execution Security ⚠️
This server implements a security-focused separation between read-only and destructive database operations:
Use
execute_read_only_queryfor SELECT and PRAGMA queries (safe, read-only operations)Use
execute_queryfor INSERT, UPDATE, DELETE, CREATE, DROP, and other operations that modify data
This separation allows for different permission levels and approval requirements:
Read-only operations can be auto-approved in many contexts
Destructive operations can require explicit approval for safety
ALWAYS CAREFULLY READ AND REVIEW SQL QUERIES BEFORE APPROVING THEM! This is especially critical for destructive operations that can modify or delete data. Take time to understand what each query does before allowing it to execute.
Two-Level Authentication System
The server implements a sophisticated authentication system:
Organization-Level Authentication
Uses a Turso Platform API token
Manages databases and organization-level operations
Obtained through the Turso dashboard
Database-Level Authentication
Uses database-specific tokens
Generated automatically using the organization token
Cached for performance and rotated as needed
Configuration
This server requires configuration through your MCP client. Here are examples for different environments:
Cline/Claude Desktop Configuration
Add this to your Cline/Claude Desktop MCP settings:
{
"mcpServers": {
"mcp-turso-cloud": {
"command": "npx",
"args": ["-y", "mcp-turso-cloud"],
"env": {
"TURSO_API_TOKEN": "your-turso-api-token",
"TURSO_ORGANIZATION": "your-organization-name",
"TURSO_DEFAULT_DATABASE": "optional-default-database"
}
}
}
}Claude Desktop with WSL Configuration
For WSL environments, add this to your Claude Desktop configuration:
{
"mcpServers": {
"mcp-turso-cloud": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"TURSO_API_TOKEN=your-token TURSO_ORGANIZATION=your-org node /path/to/mcp-turso-cloud/dist/index.js"
]
}
}
}Environment Variables
The server requires the following environment variables:
TURSO_API_TOKEN: Your Turso Platform API token (required)TURSO_ORGANIZATION: Your Turso organization name (required)TURSO_DEFAULT_DATABASE: Default database to use when none is specified (optional)TOKEN_EXPIRATION: Expiration time for generated database tokens (optional, default: '7d')TOKEN_PERMISSION: Permission level for generated tokens (optional, default: 'full-access')
API
The server implements MCP Tools organized by category:
Organization Tools
list_databases
Lists all databases in your Turso organization.
Parameters: None
Example response:
{
"databases": [
{
"name": "customer_db",
"id": "abc123",
"region": "us-east",
"created_at": "2023-01-15T12:00:00Z"
},
{
"name": "product_db",
"id": "def456",
"region": "eu-west",
"created_at": "2023-02-20T15:30:00Z"
}
]
}create_database
Creates a new database in your organization.
Parameters:
name(string, required): Name for the new databasegroup(string, optional): Group to assign the database toregions(string[], optional): Regions to deploy the database to
Example:
{
"name": "analytics_db",
"group": "production",
"regions": ["us-east", "eu-west"]
}delete_database
Deletes a database from your organization.
Parameters:
name(string, required): Name of the database to delete
Example:
{
"name": "test_db"
}generate_database_token
Generates a new token for a specific database.
Parameters:
database(string, required): Database nameexpiration(string, optional): Token expiration timepermission(string, optional): Permission level ('full-access' or 'read-only')
Example:
{
"database": "customer_db",
"expiration": "30d",
"permission": "read-only"
}Database Tools
list_tables
Lists all tables in a database.
Parameters:
database(string, optional): Database name (uses context if not provided)
Example:
{
"database": "customer_db"
}execute_read_only_query
Executes a read-only SQL query (SELECT, PRAGMA) against a database.
Parameters:
query(string, required): SQL query to execute (must be SELECT or PRAGMA)params(object, optional): Query parametersdatabase(string, optional): Database name (uses context if not provided)
Example:
{
"query": "SELECT * FROM users WHERE age > ?",
"params": { "1": 21 },
"database": "customer_db"
}execute_query
Executes a potentially destructive SQL query (INSERT, UPDATE, DELETE, CREATE, etc.) against a database.
Parameters:
query(string, required): SQL query to execute (cannot be SELECT or PRAGMA)params(object, optional): Query parametersdatabase(string, optional): Database name (uses context if not provided)
Example:
{
"query": "INSERT INTO users (name, age) VALUES (?, ?)",
"params": { "1": "Alice", "2": 30 },
"database": "customer_db"
}describe_table
Gets schema information for a table.
Parameters:
table(string, required): Table namedatabase(string, optional): Database name (uses context if not provided)
Example:
{
"table": "users",
"database": "customer_db"
}vector_search
Performs vector similarity search using SQLite vector extensions.
Parameters:
table(string, required): Table namevector_column(string, required): Column containing vectorsquery_vector(number[], required): Query vector for similarity searchlimit(number, optional): Maximum number of results (default: 10)database(string, optional): Database name (uses context if not provided)
Example:
{
"table": "embeddings",
"vector_column": "embedding",
"query_vector": [0.1, 0.2, 0.3, 0.4],
"limit": 5,
"database": "vector_db"
}Development
Setup
Clone the repository
Install dependencies:
npm installBuild the project:
npm run buildRun in development mode:
npm run devPublishing
Update version in package.json
Build the project:
npm run buildPublish to npm:
npm publishTroubleshooting
API Token Issues
If you encounter authentication errors:
Verify your Turso API token is valid and has the necessary permissions
Check that your organization name is correct
Ensure your token hasn't expired
Database Connection Issues
If you have trouble connecting to databases:
Verify the database exists in your organization
Check that your API token has access to the database
Ensure the database name is spelled correctly
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see the LICENSE file for details.
Acknowledgments
Built on:
Available Tools
9 toolscreate_database✓ SAFE: Create a new database in your Turso organization. Database name must be unique.C
✓ SAFE: Create a new database in your Turso organization. Database name must be unique.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the database to create - Must be unique within organization | |
| group | No | Optional group name for the database (defaults to "default") | |
| regions | No | Optional list of regions to deploy the database to (affects latency and compliance) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'SAFE' but does not explain any behavioral traits such as mutability, error handling, permissions, or idempotency. The unique name constraint is the only behavioral hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence that conveys the core purpose. However, it is identical to the title, which could be seen as redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and 3 parameters, the description should provide more context about return values or side effects. It does not address what happens after creation or any error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so baseline is 3. The description adds the unique name constraint, which is already in the schema description. No additional context is provided for 'group' or 'regions' parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. It simply states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_database⚠️ DESTRUCTIVE: Permanently deletes a database and ALL its data. Cannot be undone. Always confirm with user before proceeding and verify correct database name.B
⚠️ DESTRUCTIVE: Permanently deletes a database and ALL its data. Cannot be undone. Always confirm with user before proceeding and verify correct database name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the database to permanently delete - WARNING: ALL DATA WILL BE LOST FOREVER |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explicitly states the destructive and irreversible nature: 'Permanently deletes' and 'Cannot be undone.' This sufficiently discloses the critical behavior, though it omits details like permissions or error handling. The warning about confirmation adds transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is repeated from the title, which is concise but slightly redundant. It is front-loaded with a warning. While efficient, it could be more structured (e.g., separate into purpose and caution). Loses a point for repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should clarify what the tool returns (e.g., success confirmation). It lacks details on return value, error states, or post-deletion effects. For a destructive tool with a simple interface, it is moderately complete but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%. The parameter description 'Name of the database to permanently delete - WARNING: ALL DATA WILL BE LOST FOREVER' adds emphasis but does not provide additional semantic meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a strong usage guideline: 'Always confirm with user before proceeding and verify correct database name.' This directs the agent to take caution but does not explicitly state when to avoid using the tool or mention alternatives. The context of sibling tools implies it is only for deletion, so the guideline is clear but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_tableGets schema information for a tableC
Gets schema information for a table
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | Table name | |
| database | No | Database name (optional, uses context if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It implies a read-only operation by using 'Gets', but it does not explicitly state that the tool is non-destructive, requires no special permissions, or has any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with one verb and one phrase, making it very concise. It front-loads the purpose without extraneous information, though it could be slightly expanded to include behavioral details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description should compensate by explaining what the schema information includes (e.g., columns, types, constraints). It does not, leaving the agent to guess the return format, which is inadequate for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the schema provides the necessary meaning. The description adds no extra information about parameters beyond what is already in the schema, which meets the baseline for this dimension.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. It only states what the tool does, leaving the agent to infer usage context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_query⚠️ DESTRUCTIVE: Execute SQL that can modify/delete data (INSERT, UPDATE, DELETE, DROP, ALTER). Always confirm with user before destructive operations.C
⚠️ DESTRUCTIVE: Execute SQL that can modify/delete data (INSERT, UPDATE, DELETE, DROP, ALTER). Always confirm with user before destructive operations.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | SQL query to execute | |
| params | No | Query parameters (optional) - Use parameterized queries for security | |
| database | No | Database name (optional, uses context if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is destructive and can modify/delete data, which is critical behavioral information. Without annotations, this is the primary disclosure, but it lacks further details on side effects, permissions, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and gets to the point, but it is a verbatim repeat of the title, making it redundant. It is concise but not optimally structured as it wastes space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive SQL execution tool with no output schema and no annotations, the description is too sparse. It does not explain return values, error behavior, or execution context, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with clear descriptions for each parameter. The tool description does not add any parameter-specific meaning, so the schema handles this dimension adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions confirming with the user before destructive operations, which is a useful guideline. However, it does not explicitly differentiate from the sibling 'execute_read_only_query' or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_read_only_query✓ SAFE: Execute read-only SQL queries (SELECT, PRAGMA, EXPLAIN). Automatically rejects write operations.B
✓ SAFE: Execute read-only SQL queries (SELECT, PRAGMA, EXPLAIN). Automatically rejects write operations.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Read-only SQL query to execute (SELECT, PRAGMA, EXPLAIN only) | |
| params | No | Query parameters (optional) - Use parameterized queries for security | |
| database | No | Database name (optional, uses context if not provided) - Specify target database |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key behavioral trait of rejecting write operations, which is crucial for safety. No annotations are present, so the description carries the full burden. It does not cover error handling or performance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, identical to the title, which is very concise. However, the repetition could be better utilized to add extra detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only query tool, the description adequately covers purpose and safety. Absence of output schema or annotation is mitigated by the clear statement of behavior, though error handling could be mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance to use this tool for read-only queries and highlights its automatic rejection of writes, but does not explicitly mention alternative tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_database_tokenGenerate a new token for a specific databaseC
Generate a new token for a specific database
| Name | Required | Description | Default |
|---|---|---|---|
| database | Yes | Name of the database to generate a token for | |
| permission | No | Permission level for the token |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states that a token is generated. It fails to disclose behavioral traits such as whether the token is immediately valid, if it overrides existing tokens, or if special permissions are required. The lack of side-effect information is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise, but it is too brief and lacks substantive content. While not verbose, it sacrifices clarity for brevity. A slightly longer description with key details would improve understandability without being wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no nested objects) and absence of annotations or output schema, the description is incomplete. It does not mention what the tool returns (e.g., the token string), any side effects, or potential errors. The description alone is insufficient for an agent to use the tool safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the description adds minimal extra meaning. The baseline is 3. The description does not elaborate on the 'permission' enum values or the format of the 'database' name, but the schema is already clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, prerequisites, or situations where it should not be used. The description lacks any context about the tool's intended use case or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_databasesList all databases in your Turso organizationA
List all databases in your Turso organization
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It implies a read-only, safe operation, but does not explicitly state that it does not modify state or require special permissions. Adequate for a simple list, but lacks explicit disclaimers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 9 words, perfectly concise with no wasted words. It delivers the essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema, and a straightforward listing operation), the description provides complete context for an agent to understand its purpose and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters, so the description does not need to explain parameters. Baseline for 0 parameters is 4, and it meets that without adding unnecessary detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use the tool: when you need to see all databases. It does not explicitly state when not to use it or provide alternatives, but for a simple list operation, no further guidance is necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesLists all tables in a databaseC
Lists all tables in a database
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database name (optional, uses context if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool lists tables, implying a read-only operation, but does not disclose if it returns names only, includes system tables, or requires specific permissions. The behavior is minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no redundancy. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description is adequate but lacks details on return format, ordering, or limitations (e.g., whether all tables include temporary tables). Some gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the database parameter as optional and context-dependent. The description adds no further meaning beyond 'database', so baseline score of 3 applies (schema coverage is 100%).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., describe_table for a single table, list_databases to enumerate databases). There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vector_searchPerforms vector similarity searchD
Performs vector similarity search
| Name | Required | Description | Default |
|---|---|---|---|
| table | Yes | Table name | |
| vector_column | Yes | Column containing vectors | |
| query_vector | Yes | Query vector for similarity search | |
| limit | No | Maximum number of results (optional, default 10) | |
| database | No | Database name (optional, uses context if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description contains no behavioral traits such as read-only nature, authentication requirements, or side effects. It completely lacks transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, but it is under-specified. It fails to convey essential information, making it too brief to be useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters and no output schema, the description should explain the tool's behavior and return values. It provides none of these, making it severely incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides, so no improvement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus its siblings (e.g., execute_query, list_tables). It fails to specify contexts or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v0.0.2- Changed
create_database5 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / group / descriptionPrevious value: -"Optional group name for the database"New value: +"Optional group name for the database (defaults to \"default\")" - changed
Input schema / properties / name / descriptionPrevious value: -"Name of the database to create"New value: +"Name of the database to create - Must be unique within organization" - changed
Input schema / properties / regions / descriptionPrevious value: -"Optional list of regions to deploy the database to"New value: +"Optional list of regions to deploy the database to (affects latency and compliance)"
- Changed
delete_database3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / name / descriptionPrevious value: -"Name of the database to delete"New value: +"Name of the database to permanently delete - WARNING: ALL DATA WILL BE LOST FOREVER"
- Changed
describe_table2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
execute_query5 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / params / additionalPropertiesAdded value: +{} - changed
Input schema / properties / params / descriptionPrevious value: -"Query parameters (optional)"New value: +"Query parameters (optional) - Use parameterized queries for security" - added
Input schema / properties / params / propertyNamesAdded value: +{ + "type": "string" +}
- Added
execute_read_only_query - Changed
generate_database_token2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
list_databases3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / requiredRemoved value: -[]
- Changed
list_tables3 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / requiredRemoved value: -[]
- Changed
vector_search2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
8 tool updates
v1.0.0- First observed
create_database - First observed
delete_database - First observed
describe_table - First observed
execute_query - First observed
generate_database_token - First observed
list_databases - First observed
list_tables - First observed
vector_search
TDQS
Each tool has a clearly distinct purpose: database CRUD, querying (read-only vs. destructive), schema inspection, token generation, listing resources, and vector search. No overlap or ambiguity.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_database, execute_query, list_tables), making the set predictable and easy to navigate.
9 tools is well-scoped for a cloud database service covering management, querying, schema, tokens, and vector search. No unnecessary tools and no deficit.
Core operations are covered (CRUD for databases, query execution, schema inspection, token generation). Minor gaps like listing or revoking tokens exist, but the surface is mostly complete for typical workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
Butterbase MCP server — manage your backend: schemas, auth, functions, storage, RAG, deploys.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server that provides Claude access to Turso-hosted LibSQL databases, enabling database table listing, schema retrieval, and SELECT query execution.4376MIT
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that enables Claude and other LLMs to perform database operations and invoke Edge Functions within Supabase through natural language.2,2234MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for PostgreSQL, MySQL, and SQLite that gives AI assistants secure database access via the Model Context Protocol.674MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that integrates Turso databases with LLMs, supporting organization and database-level operations with two-level authentication.MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/spences10/mcp-turso-cloud'
If you have feedback or need assistance with the MCP directory API, please join our Discord server