Skip to content

Conversation

@lakshgupta
Copy link

Implements #235

  • QueryGrid (qg) is an optional module which requires --profile qg to load
  • Added tools which makes GET call to QueryGrid Manager (QGM) service to retrieve the configuration information
  • Tests run using: python tests/run_mcp_tests.py "uv run teradata-mcp-server" "tests/cases/qg_test_cases.json" --profile qg
  • More details about the new tools that were added can be found in the src/teradata_mcp_server/tools/qg/README.md file
Expand to see test results

╭────────────────────────────────────────────────────────────────────────────╮
│ │
│ _ __ ___ _____ __ __ _____________ ____ ____ │
│ _ __ ___ .'/ / // |/ / / __ \ | \ / __ \ │
│ _ __ ___ / /
/ __ `/ / __/ /|/ / / / // / / / / / / / │
│ _ __ ___ / __/ / /
/ (
) /
/ / / / /
/ / / __// // / │
│ _ __ ___ /
/ _
/
/_// //_// /___(*)____/ │
│ │
│ │
│ FastMCP 2.0 │
│ │
│ │
│ 🖥️ Server name: teradata-mcp-server │
│ 📦 Transport: STDIO │
│ │
│ 🏎️ FastMCP version: 2.12.2 │
│ 🤝 MCP SDK version: 1.14.0 │
│ │
│ 📚 Docs: https://gofastmcp.com
│ 🚀 Deploy: https://fastmcp.cloud
│ │
╰────────────────────────────────────────────────────────────────────────────╯

[11/24/25 13:54:11] INFO Starting MCP server server.py:1493
'teradata-mcp-server' with transport
'stdio'
✓ Loaded 56 tools from tests/cases/qg_test_cases.json
⚠ Test cases file not found: qg
✓ Total test cases loaded for 56 tools
Starting MCP server: uv run teradata-mcp-server
Starting server process...
Server process started, establishing MCP session...
Initializing MCP protocol...
Initialization timeout (5s), retrying... (attempt 1/3)
✓ Connected to MCP server
✓ Discovered 56 available tools
✓ Found test cases for 56 tools

✓ Tools with tests: qg_get_api_info, qg_get_bridge_by_id, qg_get_bridges, qg_get_comm_policies, qg_get_comm_policy_active, qg_get_comm_policy_by_id, qg_get_comm_policy_pending, qg_get_comm_policy_previous, qg_get_connector_active, qg_get_connector_by_id, qg_get_connector_drivers, qg_get_connector_pending, qg_get_connector_previous, qg_get_connectors, qg_get_create_foreign_server_status, qg_get_datacenter_by_id, qg_get_datacenters, qg_get_diagnostic_check_status, qg_get_fabric_active, qg_get_fabric_by_id, qg_get_fabric_pending, qg_get_fabric_previous, qg_get_fabrics, qg_get_issue_by_id, qg_get_issues, qg_get_link_active, qg_get_link_by_id, qg_get_link_pending, qg_get_link_previous, qg_get_links, qg_get_manager_by_id, qg_get_managers, qg_get_network_active, qg_get_network_by_id, qg_get_network_pending, qg_get_network_previous, qg_get_networks, qg_get_node_by_id, qg_get_node_heartbeat_by_id, qg_get_node_virtual_ip_by_id, qg_get_node_virtual_ips, qg_get_nodes, qg_get_nodes_auto_install_status, qg_get_query_by_id, qg_get_query_details, qg_get_query_summary, qg_get_software, qg_get_software_by_id, qg_get_software_jdbc_driver, qg_get_software_jdbc_driver_by_name, qg_get_system_by_id, qg_get_systems, qg_get_user_by_username, qg_get_user_mapping_by_id, qg_get_user_mappings, qg_get_users

Running 96 test cases...
────────────────────────────────────────────────────────────
Running qg_get_api_info:get_api_info... PASS (2.68s)
Running qg_get_managers:get_all_managers... PASS (0.29s)
Running qg_get_managers:get_managers_with_extra_info... PASS (0.29s)
Running qg_get_managers:get_managers_filtered_by_name... PASS (0.39s)
Running qg_get_manager_by_id:get_specific_manager... PASS (0.35s)
Running qg_get_nodes:get_all_nodes... PASS (0.35s)
Running qg_get_nodes:get_nodes_with_details... PASS (0.57s)
Running qg_get_nodes:get_nodes_filtered_by_system_id... PASS (0.43s)
Running qg_get_nodes:get_nodes_filtered_by_fabric_id_and_version... PASS (0.71s)
Running qg_get_nodes:get_nodes_filtered_by_bridge_id... PASS (0.80s)
Running qg_get_nodes:get_nodes_filtered_by_connector_id... PASS (0.37s)
Running qg_get_nodes:get_nodes_filtered_by_connector_version... PASS (0.29s)
Running qg_get_nodes:get_nodes_with_drivers_filter... PASS (0.30s)
Running qg_get_nodes:get_nodes_filtered_by_name... PASS (0.30s)
Running qg_get_node_by_id:get_specific_node... PASS (0.32s)
Running qg_get_node_heartbeat_by_id:get_node_heartbeat... PASS (0.30s)
Running qg_get_systems:get_all_systems... PASS (0.33s)
Running qg_get_systems:get_systems_with_extra_info... PASS (0.31s)
Running qg_get_systems:get_systems_filtered_by_name... PASS (0.55s)
Running qg_get_systems:get_systems_by_proxy_support... PASS (0.32s)
Running qg_get_systems:get_systems_filtered_by_tag... ⚠PASS (0.35s)
Running qg_get_system_by_id:get_specific_system... PASS (0.31s)
Running qg_get_system_by_id:get_specific_system_with_extra_info... PASS (0.30s)
Running qg_get_connectors:get_all_connectors... PASS (0.34s)
Running qg_get_connectors:get_connectors_flattened... PASS (0.32s)
Running qg_get_connectors:get_connectors_filtered_by_name... PASS (0.51s)
Running qg_get_connectors:get_connectors_by_tag... ⚠PASS (0.47s)
Running qg_get_connector_by_id:get_specific_connector... PASS (0.31s)
Running qg_get_connector_by_id:get_specific_connector_with_extra_info... PASS (0.27s)
Running qg_get_connector_active:get_active_connector_config... PASS (0.29s)
Running qg_get_connector_pending:get_pending_connector_config... Error in handle_qg_get_connector_pending: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/connectors/2f2f71d5-5edb-4fd0-9162-9063cd6b1e79/pending
PASS (0.30s)
Running qg_get_connector_previous:get_previous_connector_config... Error in handle_qg_get_connector_previous: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/connectors/2f2f71d5-5edb-4fd0-9162-9063cd6b1e79/previous
PASS (0.32s)
Running qg_get_connector_drivers:get_connector_drivers... PASS (0.26s)
Running qg_get_links:get_all_links... PASS (0.28s)
Running qg_get_links:get_links_flattened... PASS (0.34s)
Running qg_get_links:get_links_filtered_by_name... PASS (0.26s)
Running qg_get_link_by_id:get_specific_link... Error in handle_qg_get_link_by_id: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/links/f5d72daf-aa8f-486c-8058-4fc587c0b471
PASS (0.27s)
Running qg_get_link_by_id:get_specific_link_with_extra_info... Error in handle_qg_get_link_by_id: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/links/f5d72daf-aa8f-486c-8058-4fc587c0b471?extraInfo=True
PASS (0.32s)
Running qg_get_link_active:get_active_link_config... Error in handle_qg_get_link_active: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/links/f5d72daf-aa8f-486c-8058-4fc587c0b471/active
PASS (0.27s)
Running qg_get_link_pending:get_pending_link_config... Error in handle_qg_get_link_pending: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/links/f5d72daf-aa8f-486c-8058-4fc587c0b471/pending
PASS (0.27s)
Running qg_get_link_previous:get_previous_link_config... Error in handle_qg_get_link_previous: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/links/f5d72daf-aa8f-486c-8058-4fc587c0b471/previous
PASS (0.29s)
Running qg_get_fabrics:get_all_fabrics... PASS (0.28s)
Running qg_get_fabrics:get_fabrics_flattened... PASS (0.25s)
Running qg_get_fabrics:get_fabrics_filtered_by_name... PASS (0.28s)
Running qg_get_fabrics:get_fabrics_by_tag... ⚠PASS (0.30s)
Running qg_get_fabric_by_id:get_specific_fabric... PASS (0.29s)
Running qg_get_fabric_by_id:get_specific_fabric_with_extra_info... PASS (0.30s)
Running qg_get_fabric_active:get_active_fabric_config... PASS (0.33s)
Running qg_get_fabric_pending:get_pending_fabric_config... Error in handle_qg_get_fabric_pending: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/fabrics/7193ab30-766c-4f76-a0c2-c40b1f81304d/pending
PASS (0.34s)
Running qg_get_fabric_previous:get_previous_fabric_config... Error in handle_qg_get_fabric_previous: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/fabrics/7193ab30-766c-4f76-a0c2-c40b1f81304d/previous
PASS (0.34s)
Running qg_get_software:get_software_info... PASS (0.50s)
Running qg_get_software_jdbc_driver:get_software_jdbc_driver... ⚠PASS (0.33s)
Running qg_get_software_jdbc_driver_by_name:get_software_jdbc_driver_by_name... ⚠PASS (0.30s)
Running qg_get_software_by_id:get_software_by_id... PASS (0.30s)
Running qg_get_networks:get_all_networks... PASS (0.48s)
Running qg_get_networks:get_networks_flattened... PASS (0.28s)
Running qg_get_networks:get_networks_filtered_by_name... PASS (0.47s)
Running qg_get_network_by_id:get_specific_network... PASS (0.32s)
Running qg_get_network_by_id:get_specific_network_with_extra_info... PASS (0.34s)
Running qg_get_network_active:get_active_network_config... PASS (0.62s)
Running qg_get_network_pending:get_pending_network_config... Error in handle_qg_get_network_pending: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/networks/11fe9ff6-c3d2-4115-b0af-c26b1677c0a3/pending
PASS (0.41s)
Running qg_get_network_previous:get_previous_network_config... Error in handle_qg_get_network_previous: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/networks/11fe9ff6-c3d2-4115-b0af-c26b1677c0a3/previous
PASS (0.29s)
Running qg_get_comm_policies:get_all_comm_policies... PASS (0.42s)
Running qg_get_comm_policies:get_comm_policies_flattened... PASS (0.51s)
Running qg_get_comm_policies:get_comm_policies_filtered_by_name... PASS (0.26s)
Running qg_get_comm_policy_by_id:get_specific_comm_policy... PASS (0.28s)
Running qg_get_comm_policy_by_id:get_specific_comm_policy_with_extra_info... PASS (0.27s)
Running qg_get_comm_policy_active:get_active_comm_policy_config... PASS (0.28s)
Running qg_get_comm_policy_pending:get_pending_comm_policy_config... Error in handle_qg_get_comm_policy_pending: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/comm-policies/4d530c9a-7d01-4735-9ca2-74541cc38ced/pending
PASS (0.29s)
Running qg_get_comm_policy_previous:get_previous_comm_policy_config... Error in handle_qg_get_comm_policy_previous: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/comm-policies/4d530c9a-7d01-4735-9ca2-74541cc38ced/previous
PASS (0.32s)
Running qg_get_bridges:get_all_bridges... PASS (0.29s)
Running qg_get_bridges:get_bridges_filtered_by_system... PASS (0.40s)
Running qg_get_bridges:get_bridges_filtered_by_name... PASS (0.27s)
Running qg_get_bridge_by_id:get_specific_bridge... PASS (0.35s)
Running qg_get_datacenters:get_all_datacenters... PASS (0.32s)
Running qg_get_datacenters:get_datacenters_filtered_by_name... PASS (0.30s)
Running qg_get_datacenter_by_id:get_specific_datacenter... PASS (0.35s)
Running qg_get_node_virtual_ips:get_all_node_virtual_ips... ⚠PASS (0.32s)
Running qg_get_node_virtual_ip_by_id:get_specific_node_virtual_ip... Error in handle_qg_get_node_virtual_ip_by_id: 404 Client Error: for url: https://qg-centos-6773:9443/api/config/node-virtual-ips/8a0d2875-13c4-4796-8787-acc6805c3271
PASS (30.26s)
Running qg_get_query_summary:get_query_summary_recent... PASS (1.69s)
Running qg_get_query_summary:get_query_summary_completed... ⚠PASS (0.28s)
Running qg_get_query_summary:get_query_summary_with_phrase... PASS (0.64s)
Running qg_get_query_summary:get_query_summary_by_initiator_query_id... ⚠PASS (0.28s)
Running qg_get_query_summary:get_query_summary_by_ref_ids... ⚠PASS (0.31s)
Running qg_get_query_by_id:get_specific_query... Error in handle_qg_get_query_by_id: 404 Client Error: for url: https://qg-centos-6773:9443/api/queries/8a0d2875-13c4-4796-8787-acc6805c3271
PASS (0.37s)
Running qg_get_query_details:get_query_details... ⚠PASS (0.36s)
Running qg_get_user_mappings:get_all_user_mappings... PASS (0.27s)
Running qg_get_user_mappings:get_user_mappings_filtered_by_name... PASS (0.36s)
Running qg_get_user_mapping_by_id:get_specific_user_mapping... PASS (0.33s)
Running qg_get_users:get_all_users... PASS (0.64s)
Running qg_get_user_by_username:get_specific_user... PASS (0.37s)
Running qg_get_issues:get_all_issues... PASS (0.60s)
Running qg_get_issue_by_id:get_specific_issue... PASS (0.43s)
Running qg_get_diagnostic_check_status:get_diagnostic_check_status... Error in handle_qg_get_diagnostic_check_status: 404 Client Error: for url: https://qg-centos-6773:9443/api/operations/diagnostic-check/4f25c89d-d1a7-4374-b592-20870f91c527
PASS (0.60s)
Running qg_get_nodes_auto_install_status:get_nodes_auto_install_status... Error in handle_qg_get_nodes_auto_install_status: 400 Client Error: for url: https://qg-centos-6773:9443/api/operations/nodes-auto-install/4f25c89d-d1a7-4374-b592-20870f91c527
PASS (0.50s)
Running qg_get_create_foreign_server_status:get_create_foreign_server_status... Error in handle_qg_get_create_foreign_server_status: 404 Client Error: for url: https://qg-centos-6773:9443/api/operations/create-foreign-server/4f25c89d-d1a7-4374-b592-20870f91c527
PASS (0.50s)

────────────────────────────────────────────────────────────
Tests completed

================================================================================
WARNING DETAILS

⚠ qg_get_systems:get_systems_filtered_by_tag - Empty result set

⚠ qg_get_connectors:get_connectors_by_tag - Empty result set

⚠ qg_get_fabrics:get_fabrics_by_tag - Empty result set

⚠ qg_get_software_jdbc_driver:get_software_jdbc_driver - Empty result set

⚠ qg_get_software_jdbc_driver_by_name:get_software_jdbc_driver_by_name - Empty result set

⚠ qg_get_node_virtual_ips:get_all_node_virtual_ips - Empty result set

⚠ qg_get_query_summary:get_query_summary_completed - Empty result set

⚠ qg_get_query_summary:get_query_summary_by_initiator_query_id - Empty result set

⚠ qg_get_query_summary:get_query_summary_by_ref_ids - Empty result set

⚠ qg_get_query_details:get_query_details - Empty result set

================================================================================
PERFORMANCE

Total Time: 68.28s
Average Time: 0.71s per test

================================================================================
TEST REPORT

Total Tests: 96
Passed: 96
Failed: 0
Warnings: 10
Success Rate: 100.0%
Detailed results saved to: var/test-reports/test_report_20251124_135520.json

I don't see any mechanism currently implemented to validate the output or exceptions from the test cases. Please review and let me know if you have any suggestions.

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