Skip to main content
Glama
JJVvV

SP Database MCP Server

by JJVvV

get_table_info

Retrieve database table structure information including field definitions, types, and comments. Supports both low-code system schema queries and traditional database metadata queries for comprehensive table analysis.

Instructions

获取指定数据库表的结构信息,包括字段定义、类型、注释等。支持两种查询方式:1) 低代码系统schema查询(通过da_logic_entity和da_entity_attribute表);2) 传统数据库元数据查询。优先使用低代码系统方式获取更详细的字段信息。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
table_nameYes要查询的表名
sourceNo数据源类型:database(直连数据库)、api(通过API)、auto(自动选择)auto

Implementation Reference

  • MCP tool registration for 'get_table_info' with input schema defining table_name (required) and optional source.
    Tool( name="get_table_info", description="获取指定数据库表的结构信息,包括字段定义、类型、注释等。支持两种查询方式:1) 低代码系统schema查询(通过da_logic_entity和da_entity_attribute表);2) 传统数据库元数据查询。优先使用低代码系统方式获取更详细的字段信息。", inputSchema={ "type": "object", "properties": { "table_name": {"type": "string", "description": "要查询的表名"}, "source": { "type": "string", "enum": ["database", "api", "auto"], "description": "数据源类型:database(直连数据库)、api(通过API)、auto(自动选择)", "default": "auto", }, }, "required": ["table_name"], }, ),
  • Primary MCP handler logic for get_table_info tool: extracts parameters, fetches table info via helper, formats and returns as TextContent.
    if name == "get_table_info": table_name = arguments.get("table_name") source = arguments.get("source", "auto") if not table_name: return [TextContent(type="text", text="错误:缺少表名参数")] table_info = await _get_table_info(table_name, source) if table_info: # 格式化输出 output = _format_table_info(table_info) return [TextContent(type="text", text=output)] else: return [ TextContent(type="text", text=f"未找到表 '{table_name}' 的信息") ]
  • Helper function dispatching get_table_info calls to DatabaseClient or APIClient based on source parameter, preferring database.
    async def _get_table_info(table_name: str, source: str) -> Optional[TableInfo]: """获取表信息的内部方法""" if source == "database" and db_client: return db_client.get_table_info(table_name) elif source == "api" and api_client: return await api_client.get_table_info(table_name) elif source == "auto": # 优先使用数据库直连,然后是 API if db_client: result = db_client.get_table_info(table_name) if result: return result if api_client: return await api_client.get_table_info(table_name) return None
  • Core handler in DatabaseClient for get_table_info: prioritizes low-code schema query, falls back to database metadata.
    def get_table_info(self, table_name: str) -> Optional[TableInfo]: """获取指定表的结构信息""" if not self.engine: return None # 首先尝试通过低代码系统的 schema 表获取信息 schema_info = self._get_table_info_from_schema(table_name) if schema_info: return schema_info # 如果低代码系统查询失败,回退到传统的数据库元数据查询 return self._get_table_info_from_metadata(table_name)
  • Pydantic schema/model for TableInfo, defining the structure of table information returned by the tool.
    class TableInfo(BaseModel): """数据库表信息""" name: str comment: Optional[str] = None columns: List[ColumnInfo] indexes: List[Dict[str, Any]] = [] foreign_keys: List[Dict[str, Any]] = []

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/JJVvV/sp-enterprise-mcp'

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