Skip to main content
Glama
baidu

Baidu Vector Database MCP Server

Official
by baidu

百度向量数据库MCP Server

本代码仓库包含一个 MCP 服务器,它提供对百度云向量数据库功能的访问。

前提条件

在使用百度云向量数据库MCP Server之前,请确保你具备以下条件:

  1. Python 3.10 或更高版本

  2. 已安装uv用于运行MCP Server

Related MCP server: XiYan MCP Server

使用方式

使用百度云向量数据库MCP Server的推荐方式是通过uv运行,而无需进行安装。

克隆代码仓库,执行以下命令:

git clone https://github.com/baidu/mochow-mcp-server-python.git
cd mochow-mcp-server-python

随后,你可以直接通过uv运行,其中endpointapi-key根据实际需要修改:

uv run src/mochow_mcp_server/server.py 
uv run src/mochow_mcp_server/server.py --endpoint http://127.0.0.1:8287 --api-key mochow

或者,在src/mochow_mcp_server/目录中修改.env文件来设置环境变量,再使用以下命令运行服务器:

uv run src/mochow_mcp_server/server.py 

支持的应用程序

百度云向量数据库MCP Server可以与各种支持模型上下文协议的大语言模型应用程序配合使用:

  • Claude Desktop:Anthropic 公司为 Claude 开发的桌面应用程序

  • Cursor:支持 MCP 的人工智能代码编辑器

  • 自定义 MCP 客户端:任何实现 MCP 客户端规范的应用程序

在Claude Desktop中的使用方式

https://claude.ai下载 Claude Desktop。

打开 Claude Desktop 的配置文件,在 macOS 系统中,路径为~/Library/Application Support/Claude/claude_desktop_config.json

添加以下配置:

{
    "mcpServers": {
        "mochow": {
            "command": "/PATH/TO/uv",
            "args": [
                "--directory",
                "/path/to/mochow-mcp-server-python/src/mochow_mcp_server",
                "run",
                "server.py",
                "--endpoint",
                "http://127.0.0.1:8287",
                "--api-key",
                "mochow"
            ]
        }
    }
}

重启 Claude Desktop。

在 Cursor 中的使用方法

Cursor 也支持 MCP工具。你可以通过两种方式将百度MCP Server添加到Cursor中:

依次打开Cursor设置>功能>MCP,点击+添加新的MCP服务器按钮,在mcp.json中添加以下配置:

{
    "mcpServers": {
        "mochow": {
            "command": "/PATH/TO/uv",
            "args": [
                "--directory",
                "/path/to/mochow-mcp-server-python/src/mochow_mcp_server",
                "run",
                "server.py",
                "--endpoint",
                "http://127.0.0.1:8287",
                "--api-key",
                "mochow"
            ]
        }
    }
}

重启 Cursor 或重新加载窗口。

可用工具

百度云向量数据库MCP Server提供以下工具:

Database操作

  • list_databases: 列出数据库中所有的Database

  • create_database: 创建一个新的Database

    • 参数:

      • database_name: 待创建的Database名称

  • use_database: 切换到一个已存在的Database

    • 参数:

      • database_name: 待切换的Database名称

Table操作

  • list_tables: 列出数据库中所有的Table

  • describe_table: 获取指定Table的详细信息

    • 参数:

      • table_name: Table名称

  • stats_table: 获取指定Table的统计信息

    • 参数:

      • table_name: Table名称

数据操作

  • delete_table_rows: 使用过滤表达式删除数据

    • 参数:

      • table_name: Table名称

      • filter_expr: 过滤表达式

  • select_table_rows: 使用过滤表达式查询数据

    • 参数:

      • table_name: Table名称

      • filter_expr: 过滤表达式

      • limit: 查询结果的最大条数

      • output_fields: 查询结果中要返回的字段名

索引操作

  • create_vector_index: 在指定向量字段上创建向量索引

    • 参数:

      • table_name: Table名称

      • index_name: 向量索引名称

      • field_name: 向量字段名称

      • index_type: 向量索引类型

      • metric_type: 向量索引的距离度量

      • params: 向量索引的创建参数

  • rebuild_vector_index: 重新构建指定向量索引

    • 参数:

      • table_name: Table名称

      • index_name: 向量索引名称

  • drop_vector_index: 删除指定向量索引

    • 参数:

      • table_name: Table名称

      • index_name: 向量索引名称

  • describe_index: 获取指定索引的详情信息

    • 参数:

      • table_name: Table名称

      • index_name: 向量索引名称

检索操作

  • vector_search: 执行带标量过滤的向量相似性检索

    • 参数:

      • table_name: Table名称

      • vector: 向量

      • vector_field: 向量字段名称

      • limit: 相似性检索结果中返回最接近目标向量的记录数量

      • filter_expr: 过滤表达式

      • output_fields: 查询结果中要返回的字段名

  • fulltext_search: 执行全文检索

    • 参数:

      • table_name: Table名称

      • index_name: 向量索引名称

      • search_text: 全文检索的检索表达式

      • limit: 全文检索返回相关性最高的条目数

      • filter_expr: 过滤表达式

      • output_fields: 查询结果中要返回的字段名

环境变量

  • MOCHOW_ENDPOINT: 百度云向量数据库连接实例URI

  • MOCHOW_API_KEY: 百度云向量数据库实例API密钥

使用样例

使用Claude Desktop

Example 1: 列出数据库中所有的Database

How many databases do i have in the mochow db?

Claude将使用百度云向量数据库MCP Server提供的list_databases来获取数据库列表.

Let me check how many databases you have in the Mochow instance.

You have 2 databases in your Mochow instance:

1. book
2. test

Example 2: 查看指定表的schema信息

I want to get the detail of  table named book_segments in database book.

Claude将使用百度云向量数据库MCP Server提供的describe_table来获取表的详情信息.

I'll help you get the details of the "book_segments" table in the "book" database. Let me first switch to the "book" database and then describe the table.

Here's the information about the "book_segments" table in the "book" database:

Database: book
Table Name: book_segments
Creation Time: 2025-05-06 11:08:22
State: NORMAL

Schema:

id (STRING)
Primary Key: Yes
Partition Key: Yes
Not Null: Yes

bookName (STRING)
Not Null: Yes

author (STRING)
Not Null: No

page (UINT32)
Not Null: No

segment (TEXT)
Not Null: No

vector (FLOAT_VECTOR)
Not Null: Yes
Dimension: 1024

Indexes
book_name_filtering_idx (FILTERING_INDEX)
Field: bookName
Order: ASCEND
Structure Type: DEFAULT

vector_idx (HNSW)
Field: vector
Metric Type: L2
Auto Build: False
Parameters: (M: 16 efConstruction: 200)

Available Tools

14 tools
create_databaseC
Create a database in the Mochow instance.

Args:
    database_name (str): Name of the database.

Returns:
    str: A message indicating the success of database creation.
ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameYes

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 the full burden of behavioral disclosure. It mentions the action 'Create' and a success message return, but lacks details on permissions needed, whether the operation is idempotent, error conditions, or side effects. This is insufficient for a mutation tool with zero annotation coverage.

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 well-structured with clear sections for Args and Returns, and is front-loaded with the main purpose. It's concise with no wasted words, though it could be slightly more efficient by integrating the parameter info into the main sentence.

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 a database creation tool with no annotations and no output schema, the description is incomplete. It lacks details on behavioral traits, error handling, and doesn't fully compensate for the missing structured data, making it inadequate for safe and effective 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 schema description coverage is 0%, but the description adds the parameter 'database_name' with its type and purpose, providing basic semantics beyond the schema. However, it doesn't cover constraints like naming rules or length limits, leaving gaps in parameter understanding.

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 'Create' and resource 'database in the Mochow instance', making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'use_database' or 'list_databases', which would require a 5.

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 'use_database' or 'list_databases', nor does it mention prerequisites or exclusions. It's a basic statement of function without contextual usage advice.

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

create_vector_indexA
Create a vector index on a vector type field in the Mochow instance.

Args:
    table_name (str): Name of the table.
    index_name (str): Name of the index.
    field_name (str): Name of the vector field.
    index_type (str): Type of vector index. Supported values are "HNSW", "HNSWPQ", "HNSWSQ".
    metric_type (str): Distance metric. Supported values are "L2", "COSINE", "IP".
    params (Optional[dict[str, Any]]): Additional vector index parameters.

Returns:
    str: A message indicating the success of index creation.
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes
index_nameYes
field_nameYes
index_typeNoHNSW
metric_typeNoL2
paramsNo

TDQS

A3.6/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 the action ('Create') and return value ('A message indicating success'), it lacks crucial behavioral details: whether this requires specific permissions, if it's destructive to existing data, performance implications, or error conditions. For a database indexing operation with zero annotation coverage, this is insufficient.

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 appropriately sized and well-structured with clear sections (purpose statement, Args, Returns). Every sentence earns its place by providing essential information. It could be slightly more concise by integrating the purpose statement with parameter explanations.

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 the tool's complexity (6 parameters, database indexing operation) and complete lack of annotations/output schema, the description provides adequate basic information but has significant gaps. It covers parameters well but lacks behavioral context, error handling, and detailed return format explanation beyond 'A message indicating success'.

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?

With 0% schema description coverage, the description compensates well by explaining all 6 parameters in the Args section, including their data types, purposes, and supported values for 'index_type' and 'metric_type'. It adds meaningful semantics beyond what the bare schema provides, though it doesn't fully document the optional 'params' dictionary's structure.

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 ('Create a vector index') on a specific resource ('on a vector type field in the Mochow instance'). It distinguishes itself from sibling tools like 'drop_vector_index', 'rebuild_vector_index', and 'describe_index' by specifying it's for creation rather than deletion, rebuilding, or description.

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 through the parameter explanations (e.g., 'Supported values are "HNSW", "HNSWPQ", "HNSWSQ"'), but doesn't explicitly state when to use this tool versus alternatives like 'rebuild_vector_index' or 'drop_vector_index'. No explicit when-not-to-use guidance or prerequisites are provided.

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

delete_table_rowsC
Delete rows with a filter expression in the Mochow instance.

Args:
    table_name (str): Name of the table.
    filter_expr (str): Filter expression to select data to delete.

Returns:
    str: A message indicating the success of data deletion.
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes
filter_exprYes

TDQS

C2.9/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 of behavioral disclosure. It states the tool deletes rows, implying a destructive mutation, but doesn't cover critical aspects like permissions required, whether deletions are permanent or reversible, rate limits, or error handling. The return message is mentioned but not elaborated, leaving gaps in understanding the tool's behavior and safety profile.

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 well-structured and concise, with zero wasted sentences. It starts with a clear purpose statement, followed by organized sections for Args and Returns, making it easy to scan and understand. Every sentence adds value, and the formatting enhances readability without unnecessary verbosity.

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 tool's complexity (destructive deletion with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It covers the basic purpose and parameters but misses critical context like behavioral traits (e.g., permanence of deletions), usage guidelines, and detailed return values. For a mutation tool with no structured safety hints, this leaves 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.

Parameters3/5

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

Schema description coverage is 0%, so the schema provides no parameter details. The description compensates by listing both parameters ('table_name' and 'filter_expr') with brief explanations in the Args section, adding basic semantics beyond the schema. However, it doesn't explain the format of 'filter_expr' (e.g., SQL-like syntax) or provide examples, which limits its helpfulness for correct invocation.

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 tool's purpose: 'Delete rows with a filter expression in the Mochow instance.' This specifies the verb ('Delete'), resource ('rows'), and scope ('in the Mochow instance'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'drop_vector_index' or 'select_table_rows', which prevents 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. It mentions a filter expression but doesn't explain when deletion is appropriate compared to other operations like 'select_table_rows' for viewing data or 'drop_vector_index' for removing indexes. There's no mention of prerequisites, risks, or typical use cases, leaving the agent with minimal context for decision-making.

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

describe_indexC
Describe index details in the Mochow instance.

Args:
    table_name (str): Name of the table.
    index_name (str): Name of the index to describe.

Returns:
    str: A string containing the details of the index.
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes
index_nameYes

TDQS

C2.9/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 of behavioral disclosure. It states the tool returns a string with index details, but lacks critical information such as whether this is a read-only operation, what format the details are in, or if there are any error conditions. For a tool with zero annotation coverage, 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 appropriately sized and front-loaded, with the core purpose stated first, followed by structured sections for arguments and returns. It avoids unnecessary fluff, though the 'Args' and 'Returns' labels could be more integrated into the flow.

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 tool's complexity (2 parameters, no annotations, no output schema), the description is incomplete. It covers the basic purpose and parameters but lacks details on usage context, behavioral traits, and output format, making it inadequate for an agent to fully understand how to invoke it correctly.

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 includes an 'Args' section that lists and briefly describes the two parameters ('table_name' and 'index_name'), adding meaning beyond the input schema, which has 0% description coverage. However, it doesn't provide examples, constraints, or context for these parameters, so it only partially compensates for the schema gap.

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 tool's purpose as 'Describe index details in the Mochow instance,' which is a specific verb ('describe') applied to a resource ('index details'). It distinguishes from siblings like 'describe_table' by focusing on indexes rather than tables, though it doesn't explicitly contrast them.

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 when to choose 'describe_index' over 'describe_table' or other siblings, nor does it specify prerequisites like needing to know the table and index names beforehand.

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

describe_tableB
Describe table details in the Mochow instance.

Args:
    table_name (str): Name of the table to describe.

Returns:
    str: A string containing the details of the table.
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes

TDQS

B3.1/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 states the tool returns 'a string containing the details of the table,' which gives some insight into output format. However, it doesn't cover important aspects like whether this is a read-only operation (likely, but not stated), error conditions (e.g., if the table doesn't exist), or performance characteristics. For a tool with zero annotation coverage, this is insufficient.

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 well-structured and concise. It starts with a clear purpose statement, followed by dedicated 'Args' and 'Returns' sections that efficiently document inputs and outputs. Every sentence earns its place with no wasted words, making it easy to scan and understand.

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 the tool's moderate complexity (single parameter, no annotations, no output schema), the description is partially complete. It covers the basic purpose and parameter semantics adequately, but lacks usage guidelines and full behavioral transparency. The absence of an output schema means the description should ideally explain return values more thoroughly, which it does only at a high level.

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 schema description coverage is 0%, so the description must compensate. It explicitly documents the single parameter 'table_name' with its type and purpose, which adds meaningful context beyond the bare schema. However, it doesn't provide examples, constraints (e.g., case sensitivity), or format details, leaving some gaps in understanding.

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 tool's purpose: 'Describe table details in the Mochow instance.' It specifies the verb ('describe') and resource ('table details'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'list_tables' or 'stats_table', which prevents 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. It doesn't mention when to choose 'describe_table' over similar tools like 'list_tables' (which might list table names) or 'stats_table' (which might provide statistical information). There's also no mention of prerequisites, such as whether a database needs to be selected first using 'use_database'.

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

drop_vector_indexC
Drop the vector index in the Mochow instance.

Args:
    table_name (str): Name of the table.
    index_name (str): Name of the vector index to drop.

Returns:
    str: A message indicating the success of index drop.
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes
index_nameYes

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 states this is a destructive operation ('Drop'), implying mutation, but doesn't specify permissions required, whether the action is reversible, rate limits, or error conditions. The return message format is mentioned but not detailed. For a destructive tool with zero annotation coverage, 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 with a clear purpose statement followed by parameter and return sections. Every sentence adds value: the first states the action, and the subsequent lines document inputs/outputs. It could be slightly more front-loaded by integrating parameter context into the main description.

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 destructive tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It lacks critical context: error handling, side effects, dependencies (e.g., whether the database must be in use), and detailed return values. The agent would struggle to use this safely without additional information.

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 0%, so the description must compensate. It lists both parameters with brief explanations ('Name of the table', 'Name of the vector index to drop'), adding basic semantics beyond the schema's titles. However, it doesn't provide format examples, constraints, or relationships between parameters, leaving room for ambiguity.

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 ('Drop') and resource ('vector index in the Mochow instance'), making the purpose immediately understandable. It distinguishes from siblings like 'create_vector_index' and 'rebuild_vector_index' by specifying deletion rather than creation or maintenance. However, it doesn't fully differentiate from all siblings (e.g., 'delete_table_rows' also removes data).

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., whether the index must exist), consequences (e.g., impact on queries), or when to choose this over other deletion tools like 'delete_table_rows'. The agent must infer usage from context alone.

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

list_databasesB
List all databases in the Mochow instance.

Returns:
    str: A string containing the names of all databases.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 of behavioral disclosure. It states the tool lists databases and returns a string of names, but lacks details such as whether this requires specific permissions, how the string is formatted (e.g., comma-separated, newline-separated), if there are rate limits, or if it's a read-only operation. This leaves significant gaps for an agent to understand the tool's behavior.

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 the second sentence adds necessary return value information. Both sentences earn their place by providing essential details without redundancy or fluff, 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.

Completeness3/5

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

Given the tool's low complexity (0 parameters, no output schema, no annotations), the description covers the basic purpose and return value adequately. However, it lacks completeness in usage guidelines and behavioral details, such as formatting of the return string or interaction with sibling tools, which could help an agent use it more effectively in context.

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 input schema has 0 parameters with 100% coverage, so no parameter information is needed. The description appropriately doesn't discuss parameters, which is efficient. However, it could have mentioned that no parameters are required, but this is minor given the schema's clarity.

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 ('List') and resource ('all databases in the Mochow instance'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_tables' or 'use_database', which would require mentioning it's for databases specifically rather than tables or other resources.

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. For example, it doesn't mention if this should be used before 'use_database' to select a database, or how it relates to 'list_tables' for listing tables within a database. There's no explicit when/when-not or alternative tool references.

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

list_tablesB
List all tables in the current database.

Returns:
    str: A string containing the names of all tables.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 states the action ('List all tables') and return type ('A string containing the names of all tables'), but doesn't disclose important behavioral traits like whether this requires specific permissions, how tables are ordered, if hidden/system tables are included, what format the string uses (e.g., comma-separated, newline-separated), or if there are any rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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 and well-structured: one sentence states the action, and a separate 'Returns:' section clarifies the output format. Every sentence earns its place by providing essential information without redundancy. The two-sentence structure is front-loaded with the primary purpose, making it easy to scan and understand.

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 the tool's simplicity (no parameters, no annotations, no output schema), the description is adequate but could be more complete. It covers the basic action and return type, but lacks context about behavioral aspects (e.g., permissions, ordering, format details) and usage guidelines relative to siblings. For a zero-parameter tool, it meets minimum viability but doesn't fully leverage the opportunity to provide richer guidance.

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 zero parameters, and schema description coverage is 100% (though empty). The description appropriately doesn't waste space discussing nonexistent parameters. Since there are no parameters to document, the description focuses correctly on the tool's action and return value, meeting the baseline expectation for parameterless tools.

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 ('List') and resource ('all tables in the current database'), making the purpose immediately understandable. It doesn't explicitly differentiate from sibling tools like 'list_databases' or 'describe_table', but the specificity of 'tables' vs 'databases' provides implicit distinction. The description avoids tautology by not just restating the tool name.

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 'describe_table' (for table details) or 'list_databases' (for listing databases). It doesn't mention prerequisites such as needing a current database selected via 'use_database', nor does it indicate when this tool would be preferred over other listing or querying tools. The usage context is implied but not explicitly stated.

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

rebuild_vector_indexC
Rebuild the vector index in the Mochow instance.

Args:
    table_name (str): Name of the table.
    index_name (str): Name of the vector index to rebuild.

Returns:
    str: A message indicating the success of index rebuild initiation.
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes
index_nameYes

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 but lacks behavioral details. It mentions 'initiation' in the return, hinting at an asynchronous operation, but doesn't clarify if this is destructive to existing data, requires specific permissions, has performance impacts, or involves rate limits. More context on these aspects is needed for a mutation tool.

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 appropriately sized and front-loaded with the core purpose in the first sentence. The Args and Returns sections are structured but could be more integrated; however, there's no wasted text, making it efficient overall.

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 a mutation tool with no annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain the implications of rebuilding (e.g., downtime, data integrity), error conditions, or detailed return values beyond a success message. More context is needed for safe and effective 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?

Schema description coverage is 0%, so the description must compensate, but it only lists parameter names without adding meaning beyond the schema's titles. The Args section repeats what's in the input schema without explaining what 'table_name' or 'index_name' refer to (e.g., existing tables/indexes). Baseline is 3 due to low coverage but minimal added value.

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 ('Rebuild') and target ('vector index in the Mochow instance'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'drop_vector_index' or 'create_vector_index' which might be alternatives for index management, leaving room for improvement.

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?

No guidance is provided on when to use this tool versus alternatives like 'drop_vector_index' followed by 'create_vector_index', or whether prerequisites such as existing indexes or specific database states are required. The description only states what it does, not when it should be used.

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

select_table_rowsC
Select rows with a filter expression in the Mochow instance.

Args:
    table_name (str): Name of the table.
    filter_expr (str): Filter expression to select data. Defaults to None.
    limit (int): Maximum number of results. Defaults to 10.
    output_fields (Optional[list[str]]): Fields to return in the results. Defaults to None.

Returns:
    str: A string containing the selected rows.
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes
filter_exprNo
limitNo
output_fieldsNo

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 but lacks critical behavioral details. It doesn't disclose whether this is read-only (implied by 'Select' but not explicit), authentication requirements, rate limits, error handling, or pagination behavior beyond the 'limit' parameter.

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?

Well-structured with a clear opening sentence followed by parameter and return value sections. The description is appropriately sized, though the 'Returns' section could be more informative given no output schema.

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 4-parameter tool with no annotations and no output schema, the description covers basic functionality but lacks completeness. It doesn't explain the return format beyond 'a string containing the selected rows', missing details on structure, error cases, or interaction with other tools like 'use_database' for 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 0%, but the description adds meaningful context for all parameters: 'table_name' as the table to query, 'filter_expr' for filtering data, 'limit' for result maximum, and 'output_fields' for specifying returned fields. However, it doesn't explain filter expression syntax or field naming conventions.

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 ('Select rows') and resource ('in the Mochow instance'), specifying it uses a filter expression. It distinguishes from siblings like 'delete_table_rows' (deletion) and 'describe_table' (metadata), but doesn't explicitly contrast with 'fulltext_search' or 'vector_search' for filtering alternatives.

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?

No guidance on when to use this tool versus alternatives like 'fulltext_search' or 'vector_search' for filtering, or 'list_tables' for broader queries. It mentions a filter expression but doesn't specify when filtering is appropriate versus other selection methods.

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

stats_tableC
Get the table statistics in the Mochow instance.

Args:
    table_name (str): Name of the table to get statistics.

Returns:
    str: A string containing the table statistics.
ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYes

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 the full burden of behavioral disclosure. It mentions that it returns 'a string containing the table statistics', which gives some output information, but doesn't cover important aspects like whether this is a read-only operation, potential performance impacts, error conditions, or what specific statistics are included.

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 with a clear purpose statement followed by Args and Returns sections. Every sentence serves a purpose, though the 'Returns' section could be more specific about what 'table statistics' actually means.

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 single-parameter tool with no annotations and no output schema, the description provides basic functionality and parameter documentation. However, it lacks important context about what 'table statistics' includes, how this differs from other table inspection tools, and any behavioral constraints or requirements.

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 explicitly documents the single parameter 'table_name' with its type and purpose, which is valuable since schema description coverage is 0%. However, it doesn't provide additional context like valid table name formats, examples, or constraints beyond what's minimally stated.

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 ('Get') and resource ('table statistics'), making the purpose understandable. However, it doesn't differentiate this tool from potential siblings like 'describe_table' or 'select_table_rows', which might also provide table information.

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?

No guidance is provided on when to use this tool versus alternatives like 'describe_table' or 'select_table_rows'. The description only states what it does, not when it should be chosen over other table-related tools in the sibling list.

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

use_databaseB
Switch to a different database.

Args:
    database_name (str): Name of the database to use.

Returns:
    str: A message indicating the success of the database switch.
ParametersJSON Schema
NameRequiredDescriptionDefault
database_nameYes

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 states the action ('Switch to a different database') and mentions a success message return, but lacks critical details: whether this affects subsequent operations, if it requires specific permissions, potential side effects, or error conditions (e.g., invalid database name).

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 efficiently structured with a clear purpose statement followed by formatted Args and Returns sections. Every sentence adds value without redundancy, making it easy to scan and understand quickly.

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 the tool's moderate complexity (a state-changing operation with no annotations or output schema), the description is minimally adequate. It covers the basic action and parameter but lacks details on behavioral impact, error handling, and integration with sibling tools, leaving gaps for an agent to use it effectively.

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 description adds meaningful context for the single parameter 'database_name' by explaining it's the 'Name of the database to use,' which clarifies its role beyond the schema's basic title. With 0% schema description coverage and only one parameter, this adequately compensates, though it could specify format constraints (e.g., case sensitivity).

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 tool's purpose with a specific verb ('Switch') and resource ('database'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_databases' or 'create_database', which would be needed for 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. It doesn't mention prerequisites (e.g., needing an existing database), exclusions, or relationships to sibling tools like 'list_databases' (which might be needed first to see available databases).

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.

  1. 14 tool updates
    • First observedcreate_database
    • First observedcreate_vector_index
    • First observeddelete_table_rows
    • First observeddescribe_index
    • First observeddescribe_table
    • First observeddrop_vector_index
    • First observedfulltext_search
    • First observedlist_databases
    • First observedlist_tables
    • First observedrebuild_vector_index
    • First observedselect_table_rows
    • First observedstats_table
    • First observeduse_database
    • First observedvector_search

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have distinct purposes targeting specific database operations like creation, description, listing, and search. However, some overlap exists between 'select_table_rows' and 'vector_search'/'fulltext_search' as they all retrieve data, though their search methods differ (filter expression vs. vector/full-text). The descriptions help clarify these distinctions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case, such as 'create_database', 'list_tables', and 'describe_index'. There are no deviations in naming conventions, making the set predictable and easy to parse.

Tool Count5/5

With 14 tools, the count is well-scoped for a vector database server, covering essential operations like database/table management, indexing, and search. Each tool serves a clear purpose without redundancy, fitting within the typical 3-15 range for such domains.

Completeness4/5

The toolset provides comprehensive coverage for core vector database workflows, including CRUD-like operations (create, list, describe, delete) and specialized searches. Minor gaps include missing tools for updating table schemas or rows directly, but agents can work around this using existing tools like 'select_table_rows' and 'delete_table_rows' in combination.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A Model Context Protocol server providing vector database capabilities through Chroma, enabling semantic document search, metadata filtering, and document management with persistent storage.
    6
    41
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables natural language queries to MySQL databases, powered by XiYanSQL text-to-SQL technology.
    242
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    An integration server implementing the Model Context Protocol that enables LLM applications to interact with Milvus vector database functionality, allowing vector search, collection management, and data operations through natural language.
    242
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    A multi-functional computing platform server designed to integrate with large language models like Qwen, providing file access, database connections, API integration, and vector database functionality.
    3
    -

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/baidu/mochow-mcp-server-python'

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