Skip to main content
Glama
LiusCraft

Superset MCP Server

by LiusCraft

WIP: MCP Server Superset

基于 Apache Superset REST API 构建的 Model Context Protocol (MCP) 服务器端应用。

项目简介

这是一个基于 Apache Superset RESTAPI 在MCP上实现了通过大模型来让它进行基本的查询能力。

Related MCP server: MCP TapData Server

功能特性

  • 查询数据库

  • 查询表

  • 查询字段

  • 执行sql

环境要求

  • Node.js >= 14.0.0

快速开始

直接使用

npx -y https://github.com/LiusCraft/superset-mcp-server

SUPERSET_URL
SUPERSET_USERNAME
SUPERSET_PASSWORD

鉴权方式:ladp

安装依赖

# 安装 Node.js 依赖
npm install

启动服务

# api client 测试
npm run src/examples/superset-example.ts

# 调试环境
npm run inspector

# 生产环境
npm run build
npm start

配置说明

项目配置文件位于 config 目录下,包括:

  • 数据库配置

  • API 配置

  • 安全配置

API 文档

参考superset官方 swagger文档

开发指南

目录结构

.
├── src/          # 源代码目录
├── src/examples          # 封装的api客户端测试代码
├── src/services          # 封装的api函数
├── src/utils             # 封装的superset baseHttpClient
├── src/index.ts          # 定义mcp接口

开发规范

  • 遵循 ESLint 规范

  • 使用 TypeScript 进行开发

  • 遵循 Git Flow 工作流

部署

mcp 部署

  1. build the project

  2. set mcp config:

node currentFolder/build/index.js
  1. use the mcp

贡献指南

  1. Fork 本仓库

  2. 创建特性分支

  3. 提交变更

  4. 发起 Pull Request

许可证

Apache License 2.0

联系方式

如有问题,请提交 Issue 或联系项目维护者。

Available Tools

4 tools
list-databasesB

获取所有可用的数据库列表

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden for behavioral disclosure. It only states what the tool does ('get list of databases') without mentioning any behavioral traits like whether it requires authentication, has rate limits, returns paginated results, or what format the output takes. This is inadequate for a 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.

Conciseness5/5

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

The description is a single, efficient sentence in Chinese that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded with the essential information.

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 has no annotations, no output schema, and the description lacks behavioral context, this is incomplete. For a list operation, the description should ideally mention output format, pagination, or authentication requirements to help the agent understand what to expect.

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 schema fully documents the absence of inputs. The description appropriately doesn't discuss parameters, maintaining focus on the tool's purpose. A baseline of 4 is correct for zero-parameter 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 ('获取' meaning 'get/retrieve') and resource ('所有可用的数据库列表' meaning 'list of all available databases'), providing a specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'list-tables' or 'list-fields', 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 'list-tables' or 'query-superset'. It lacks any context about prerequisites, timing, or exclusions, leaving the agent to infer usage from the tool name alone.

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

list-fieldsC

获取指定表的字段列表

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseIdYes数据库ID
schemaYesSchema名称
tableNameYes表名

TDQS

C2.6/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 '获取' (gets) a field list, implying a read-only operation, but doesn't clarify aspects like whether it requires authentication, has rate limits, returns paginated results, or what the output format is (e.g., list of field names with types). For a tool with no annotations, this leaves significant gaps in understanding its behavior and constraints.

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 a single, efficient sentence in Chinese ('获取指定表的字段列表') that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource. However, it could be slightly more structured by explicitly mentioning the parameters or context, but as is, it avoids waste and is appropriately concise for a simple tool.

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 moderate complexity (3 required parameters, no output schema, and no annotations), the description is incomplete. It lacks details on behavioral traits (e.g., read-only nature, potential errors), usage guidelines, and output expectations. While the schema covers parameters well, the description doesn't compensate for the absence of annotations or output schema, making it insufficient for full contextual understanding.

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 100%, with clear descriptions for all three parameters (databaseId, schema, tableName). The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't explain relationships between parameters or provide examples). According to the rules, when schema coverage is high (>80%), the baseline score is 3, as the schema adequately documents the parameters without needing extra detail in the description.

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

Purpose3/5

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

The description '获取指定表的字段列表' (Get the field list of the specified table) states the verb ('获取' - get) and resource ('字段列表' - field list) with a scope ('指定表' - specified table), making the purpose clear. However, it doesn't differentiate from sibling tools like 'list-tables' or 'list-databases', which also list resources but at different levels. The description is functional but lacks specificity about what distinguishes this tool from its siblings.

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 a valid databaseId, schema, and tableName), exclusions, or comparisons to siblings like 'list-tables' (which might list tables instead of fields) or 'query-superset' (which might query data). Without such context, users must infer usage from the tool name and parameters alone.

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

list-tablesC

获取指定数据库的表列表

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseIdYes数据库ID
schemaNoSchema名称

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 full burden for behavioral disclosure. It states what the tool does but doesn't describe behavioral traits like whether this is a read-only operation, potential rate limits, authentication requirements, error conditions, or return format. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

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 in Chinese that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, with every word contributing to understanding what the tool does.

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 has no annotations, no output schema, and the description provides only basic purpose without behavioral context or usage guidance, the description is incomplete. For a tool that likely returns structured data (table lists), the lack of information about return format, error handling, or operational constraints 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 100%, so the schema already documents both parameters (databaseId and schema) with descriptions. The tool description adds no additional parameter semantics beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no parameter info in the description.

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: retrieving table lists for a specified database. It uses specific verbs ('获取' - get/retrieve) and resources ('表列表' - table lists), though it doesn't explicitly differentiate from sibling tools like list-databases or list-fields. The purpose is unambiguous but lacks sibling differentiation.

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 sibling tools like list-databases (for listing databases) or list-fields (for listing fields within tables), nor does it specify prerequisites or appropriate contexts. The agent must infer usage from the tool name and parameters alone.

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

query-supersetC

执行 Superset 数据查询

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseIdNo可选的数据库ID,如果不提供将自动选择匹配的数据库
queryYes用户的自然语言查询,例如'查询最近10条日志'
schemaNo可选的schema名称
tableNameNo可选的表名

TDQS

C2.7/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 executes a query but doesn't describe what happens (e.g., returns data, modifies data, requires authentication, has rate limits, or error handling). For a query tool with zero annotation coverage, this leaves critical behavioral traits unspecified.

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 with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration. Every word earns its place, making it highly concise.

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 data query tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, how results are formatted, or any behavioral context. The agent lacks sufficient information to understand the tool's full functionality and outcomes.

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 four parameters (databaseId, query, schema, tableName) with descriptions. The description adds no additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples. 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.

Purpose3/5

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

The description '执行 Superset 数据查询' (Execute Superset data query) states the basic action but is vague. It specifies the verb '执行' (execute) and resource 'Superset 数据查询' (Superset data query), but doesn't clarify what type of query this is (natural language, SQL, etc.) or how it differs from sibling tools like list-databases, list-fields, or list-tables. It's functional but lacks specificity.

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 any prerequisites, context for usage, or comparisons with sibling tools. The agent must infer usage from the input schema alone, which is insufficient for effective tool selection.

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. 4 tool updatesv1.0.0
    • First observedlist-databases
    • First observedlist-fields
    • First observedlist-tables
    • First observedquery-superset

TDQS

B3.2/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: list-databases enumerates databases, list-tables shows tables within a database, list-fields details fields within a table, and query-superset executes queries. The hierarchical progression from databases to tables to fields to queries eliminates any ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using kebab-case (list-databases, list-fields, list-tables, query-superset). The verbs 'list' and 'query' are appropriately descriptive and applied consistently across the set, making the naming highly predictable.

Tool Count4/5

With 4 tools, the count is reasonable for a Superset data exploration server, covering core operations like listing resources and querying. It feels slightly lean but not incomplete, as it supports basic workflows without unnecessary bloat. A few more tools (e.g., for metadata or schema operations) could enhance it, but it's well-scoped.

Completeness4/5

The tools provide a logical flow for data exploration: list databases, then tables, then fields, and finally query. Minor gaps exist, such as no explicit tools for creating or managing resources (e.g., dashboards or charts), but the core query and discovery operations are covered, allowing agents to navigate and query data effectively.

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables Large Language Models to access and interact with database connections, including viewing schemas and performing CRUD operations on connected databases.
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    A Model Context Protocol server that enables LLMs like Claude to interact with SQLite and SQL Server databases, allowing for schema inspection and SQL query execution.
    806
    380
    MIT

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/LiusCraft/superset-mcp-server'

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