Skip to content

ci: real MCP tool-listing smoke test - #48

Merged
yeongseon merged 1 commit into
mainfrom
ci/mcp-real-usage-smoke
Aug 14, 2026
Merged

ci: real MCP tool-listing smoke test#48
yeongseon merged 1 commit into
mainfrom
ci/mcp-real-usage-smoke

Conversation

@yeongseon

Copy link
Copy Markdown
Contributor

Summary

Replaces the shallow import cubrid_mcp_server smoke check in smoke-test.yml with a real-usage smoke test that constructs the FastMCP server object and enumerates its registered tools via mcp.list_tools(), asserting all 10 documented tools are present.

Why

A bare import only proves the module loads — it silently passes even if the @mcp.tool registration surface is broken (e.g. a tool fails to register, is renamed, or dropped upstream). Listing the tool surface exercises the actual server contract.

How it stays DB-free

Tool handlers connect to CUBRID lazily (only on first call via _db()), so enumerating the tool surface needs no live database and no CUBRID_* env vars. Verified locally against the pinned @v0.2.1 install (fastmcp 3.4.6): prints 10 tools, exits 0.

Tool contract asserted

all_table_names, filter_table_names, schema_definitions, describe_table, list_indexes, explain_query, table_row_counts, list_serials, list_class_hierarchy, execute_query

Test plan

  • YAML validates (yaml.safe_load)
  • Snippet verified end-to-end in a clean venv against the @v0.2.1 git install — exits 0, lists 10 tools
  • CI smoke-test workflow green on this PR

Replace the shallow `import cubrid_mcp_server` smoke with a real-usage
check that constructs the FastMCP server and enumerates its registered
tools via `mcp.list_tools()`, asserting all 10 documented tools are
present. Tool handlers connect to CUBRID lazily, so the tool surface is
verifiable without a live database or CUBRID_* env vars.

Closes #43 follow-up (real MCP usage smoke).
@yeongseon
yeongseon merged commit d34c527 into main Aug 14, 2026
7 checks passed
@yeongseon
yeongseon deleted the ci/mcp-real-usage-smoke branch August 14, 2026 09:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant