Skip to main content
Glama

HybridHub

Universal Hybrid Data MCP Server - Connect to both structured (databases) and unstructured (object storage) data sources.

Features

  • Structured Data Sources (Databases)

    • PostgreSQL

    • MySQL

    • MariaDB

    • SQL Server

    • SQLite

  • Unstructured Data Sources (Object Storage)

    • Huawei Cloud OBS

    • Alibaba Cloud OSS

    • AWS S3 / S3-Compatible (MinIO, etc.)

    • Tencent Cloud COS

Quick Start

1. Install Dependencies

npm install
# or
yarn install
# or
pnpm install

2. Configure Data Sources

Copy the sample configuration file:

cp env.sample .env

Edit .env with your data source credentials.

For multi-source configuration, copy and edit the TOML example:

cp hybridhub.toml.example hybridhub.toml

3. Run the Server

# Development mode
npm run dev

# Production mode
npm run build
npm start

Configuration

Environment Variables

Variable

Description

Example

HYBRIDHUB_TRANSPORT

Transport mode

stdio or http

HYBRIDHUB_PORT

HTTP port

8080

HYBRIDHUB_API_KEY

API key for authentication

your-api-key

Database Configuration

Variable

Description

Example

DSN

Database connection string

postgres://user:pass@localhost:5432/db

DB_TYPE

Database type

postgres, mysql, sqlite, etc.

DB_HOST

Database host

localhost

DB_PORT

Database port

5432

DB_NAME

Database name

mydb

DB_USER

Database username

user

DB_PASSWORD

Database password

password

DB_READONLY

Enable read-only mode

true or false

DB_MAX_ROWS

Maximum rows per query

1000

Storage Configuration

Variable

Description

Example

STORAGE_TYPE

Storage provider type

s3, oss, obs, etc.

STORAGE_ENDPOINT

Storage endpoint URL

https://s3.amazonaws.com

STORAGE_ACCESS_KEY

Access key ID

AKIAIOSFODNN7EXAMPLE

STORAGE_SECRET_KEY

Secret access key

wJalrXUtnFEMI...

STORAGE_REGION

Storage region

us-east-1

STORAGE_PATH_STYLE

Use path-style URLs (for MinIO)

true or false

TOML Configuration

For multi-source configuration, use hybridhub.toml:

# Database source
[[databases]]
id = "prod_pg"
dsn = "postgres://user:password@localhost:5432/production"
readonly = false
max_rows = 1000

# Storage source
[[storages]]
id = "aws_s3"
type = "s3"
endpoint = "https://s3.amazonaws.com"
access_key = "AKIAIOSFODNN7EXAMPLE"
secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
region = "us-east-1"

See hybridhub.toml.example for complete configuration options.

MCP Tools

Database Tools

  • execute_sql - Execute SQL queries on database sources

Storage Tools

  • list_buckets - List all storage buckets

  • list_objects - List objects in a bucket

  • get_object - Get object content

  • get_object_metadata - Get object metadata

  • search_objects - Search objects with filters

Development

# Run in development mode
npm run dev

# Run with HTTP transport
npm run dev:http

# Build for production
npm run build

# Run tests
npm test

License

MIT

Available Tools

7 tools
execute_sqlB

Execute SQL query on the 'sqlserver_local' database. Returns query results as JSON.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesSQL query or multiple SQL statements to execute

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the database target and JSON output format but lacks critical details: whether queries can be read/write, if there are transaction or timeout limits, authentication requirements, error handling, or safety warnings about destructive operations. This is inadequate for a tool that executes arbitrary SQL.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded, consisting of two clear sentences that directly state the tool's purpose and output. Every word earns its place with zero redundancy, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of executing arbitrary SQL (potentially destructive operations), no annotations, and no output schema, the description is incomplete. It omits essential context like safety warnings, permissions needed, result structure details beyond 'JSON', and limitations. This leaves significant gaps for an agent to use the tool effectively and safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'sql' documented in the schema as 'SQL query or multiple SQL statements to execute'. The description adds no additional meaning beyond this, such as syntax examples, supported SQL dialects, or constraints on query complexity. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Execute SQL query'), target resource ('on the 'sqlserver_local' database'), and outcome ('Returns query results as JSON'). It uses precise language that distinguishes it from sibling tools like search_db_objects or get_object, which likely perform different operations on databases or objects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It doesn't mention prerequisites (e.g., database connectivity), exclusions (e.g., avoid for read-only vs. write queries), or compare it to sibling tools like search_db_objects, leaving the agent to infer usage context independently.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_objectA

Retrieve the content of an object from the 'huawei_obs' source. Text files are returned as plain text, binary files as base64. Default max size: 10MB

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYesThe name of the bucket containing the object
keyYesThe object key (full path) to retrieve
max_sizeNoMaximum content size to read in bytes (default: 10MB). Larger files will be truncated.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the tool retrieves content, handles text vs. binary files differently (plain text vs. base64), has a default max size (10MB), and truncates larger files. This covers important operational traits beyond basic functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and efficiently adds essential details in two sentences. Every sentence earns its place by conveying critical information (source, file handling, size limits) without redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is largely complete. It covers purpose, behavior, and key constraints. However, it lacks details on error conditions, authentication needs, or rate limits, which could enhance completeness for a retrieval tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters (bucket, key, max_size) with their descriptions. The description adds value by explaining the default max size and truncation behavior for max_size, but does not provide additional meaning for bucket or key beyond what the schema states. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Retrieve the content'), target resource ('an object from the 'huawei_obs' source'), and distinguishes it from siblings like get_object_metadata (which retrieves metadata only) and list_objects (which lists objects rather than retrieving content). It precisely defines what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying the source ('huawei_obs') and default behavior for file types, but it does not explicitly state when to use this tool versus alternatives like get_object_metadata or search_objects. It provides some context but lacks explicit guidance on exclusions or comparisons with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_object_metadataA

Get metadata for an object from the 'huawei_obs' source without downloading content. Returns content type, size, last modified date, ETag, storage class, and custom metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYesThe name of the bucket containing the object
keyYesThe object key (full path) to get metadata for

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the operation as read-only and non-destructive by specifying 'without downloading content' and listing return values, but it lacks details on error handling, authentication needs, or rate limits, which are important for a tool interacting with an external source.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence and efficiently lists return values in the second. Every sentence adds value, with no redundant or unnecessary information, making it appropriately sized and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is mostly complete: it explains the purpose, usage context, and return values. However, it could improve by addressing potential errors or prerequisites, as there's no output schema to clarify response formats.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting both parameters ('bucket' and 'key'). The description does not add any parameter-specific semantics beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get metadata'), resource ('an object from the 'huawei_obs' source'), and scope ('without downloading content'), distinguishing it from sibling tools like 'get_object' (which likely downloads content) and 'list_objects' (which lists rather than gets metadata).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('without downloading content'), implying it's for metadata retrieval only. However, it does not explicitly state when not to use it or name alternatives, such as using 'get_object' for content download, which would be helpful for sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_bucketsA

List all storage buckets available in the 'huawei_obs' source. Returns bucket names, creation dates, and locations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the return format (bucket names, creation dates, and locations) which is valuable behavioral information. However, it doesn't mention pagination behavior, rate limits, authentication requirements, or error conditions that would be important for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two sentences that each earn their place. The first sentence states the action and scope, the second describes the return format. No wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with 0 parameters and no output schema, the description provides good context about what's returned. However, without annotations and with no output schema, it could benefit from more detail about response format structure, pagination, or error handling to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the baseline would be 4. The description appropriately doesn't discuss parameters since none exist, and instead focuses on what the tool does and returns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('List all storage buckets'), identifies the resource ('storage buckets'), and specifies the scope ('available in the 'huawei_obs' source'). It also distinguishes from siblings by focusing on buckets rather than objects or SQL operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by specifying the 'huawei_obs' source, but doesn't explicitly state when to use this tool versus alternatives like list_objects or search_objects. No explicit exclusions or alternative recommendations are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_objectsB

List objects in a bucket from the 'huawei_obs' source. Supports prefix filtering, delimiter for hierarchical listing, and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYesThe name of the bucket to list objects from
prefixNoFilter objects by key prefix (e.g., 'folder/subfolder/')
delimiterNoCharacter to use for grouping keys (e.g., '/' for folder-like listing)
max_keysNoMaximum number of objects to return (default: 1000)
continuation_tokenNoToken for pagination, returned from previous request

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions pagination and filtering capabilities, it doesn't describe important behavioral aspects like rate limits, authentication requirements, error conditions, response format, or whether this is a read-only operation. The description provides basic functional context but misses critical operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise - a single sentence that efficiently communicates the core functionality and key features. Every word earns its place with zero waste, and it's front-loaded with the primary purpose before mentioning supporting features.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no annotations and no output schema, the description provides adequate basic context but leaves significant gaps. It covers what the tool does and key features, but doesn't address behavioral aspects, error handling, or response format. Given the complexity and lack of structured metadata, the description should do more to compensate for these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the input schema already documents all 5 parameters thoroughly. The description adds minimal value by mentioning 'prefix filtering, delimiter for hierarchical listing, and pagination' which aligns with but doesn't significantly expand upon the schema documentation. The baseline score of 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List objects') and resource ('in a bucket from the huawei_obs source'), making the purpose immediately understandable. It distinguishes from siblings like 'list_buckets' by specifying bucket-level listing, though it doesn't explicitly contrast with 'search_objects' or 'get_object'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing objects with filtering capabilities, but doesn't explicitly state when to use this tool versus alternatives like 'search_objects' or 'get_object_metadata'. It mentions supported features (prefix, delimiter, pagination) which provides some contextual guidance, but lacks explicit 'when-not-to-use' scenarios or clear alternative recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_db_objectsB

Search database objects (schemas, tables, columns, procedures) on 'sqlserver_local'. Supports SQL LIKE patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
object_typeNoType of database object to search for
patternNoSearch pattern (SQL LIKE syntax, default: '%' for all)
schemaNoFilter by schema name
tableNoFilter by table name (for columns)

TDQS

B3.3/5.0
Behavior2/5

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 discloses the search functionality and SQL LIKE pattern support, but lacks critical behavioral details such as whether this is a read-only operation, potential performance impacts, result limits, error handling, or authentication requirements. For a search tool with no annotation coverage, this 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose ('Search database objects') and adds essential details (target, pattern support) without waste. Every word earns its place, making it appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is moderately complete for a search tool. It covers the purpose and basic usage but lacks behavioral transparency (e.g., safety, limits) and output details. With 4 parameters fully documented in the schema, it's adequate but has clear gaps in guiding the agent on operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value by mentioning 'SQL LIKE patterns' (which relates to the 'pattern' parameter) but doesn't provide additional syntax, format details, or usage examples beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Search') and resource ('database objects') with specific examples (schemas, tables, columns, procedures) and target ('sqlserver_local'). It distinguishes from siblings like 'execute_sql' (execution vs. search) and 'get_object' (retrieval vs. search), but doesn't explicitly differentiate from 'search_objects' which might be similar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching with SQL LIKE patterns, but provides no explicit guidance on when to use this tool versus alternatives like 'search_objects' or 'get_object_metadata'. It mentions the target database ('sqlserver_local'), which gives some context, but lacks clear when/when-not rules or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_objectsC

Search for objects in a bucket from the 'huawei_obs' source. Supports filtering by prefix, suffix, extensions, glob patterns, file size, and modification date.

ParametersJSON Schema
NameRequiredDescriptionDefault
bucketYesThe name of the bucket to search in
prefixNoFilter objects by key prefix
suffixNoFilter objects by key suffix
extensionsNoFilter by file extensions (e.g., ['.jpg', '.png'])
patternNoGlob pattern to match object keys (e.g., '*.txt', 'folder/**/file.json')
min_sizeNoMinimum file size in bytes
max_sizeNoMaximum file size in bytes
modified_afterNoFilter objects modified after this date (ISO 8601 format)
modified_beforeNoFilter objects modified before this date (ISO 8601 format)
max_resultsNoMaximum number of results to return (default: 100)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the supported filtering parameters but doesn't describe important behavioral aspects like pagination behavior (only mentions 'max_results' default), error conditions, authentication requirements, rate limits, or what the output format looks like. For a search tool with 10 parameters, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured as a single sentence that immediately states the core purpose and enumerates the filtering capabilities. It's appropriately sized for the tool's complexity, though it could potentially be more front-loaded with critical behavioral information given the lack of annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 10 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (object metadata, full objects, or just keys), doesn't mention pagination beyond the 'max_results' parameter default, and provides no information about error handling or authentication requirements. The description leaves too many open questions for effective tool use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description lists the supported filtering capabilities (prefix, suffix, extensions, glob patterns, file size, modification date), which provides context about what the parameters do collectively. However, with 100% schema description coverage where each parameter is already well-documented in the schema, the description adds only marginal value beyond what's already in the structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Search for objects') and resource ('in a bucket from the 'huawei_obs' source'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its sibling 'list_objects', which appears to serve a similar listing function, preventing a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like 'list_objects' or 'search_db_objects'. It mentions supported filtering capabilities but doesn't indicate whether this is the primary tool for object searches or if there are specific scenarios where other tools should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have distinct purposes, with clear separation between database operations (execute_sql, search_db_objects) and object storage operations (get_object, list_objects, etc.). However, search_objects and list_objects could potentially cause confusion as both involve listing objects in buckets, though search_objects offers more advanced filtering capabilities.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern (e.g., execute_sql, get_object, list_buckets). There are no deviations in style or convention, making the set predictable and easy to understand.

Tool Count4/5

With 7 tools, the count is reasonable for a server handling two domains (database and object storage). It's slightly on the lower side for covering both areas comprehensively, but each tool appears purposeful and well-scoped.

Completeness3/5

For object storage, the tools cover retrieval, listing, and search well, but lack create, update, or delete operations, which are notable gaps. For database operations, execute_sql and search_db_objects provide query and search capabilities, but there's no direct CRUD for tables or schemas, leaving the surface incomplete for full database management.

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

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/zq940222/hybrid-mcp'

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