Skip to content

Commit 91a9e0f

Browse files
committed
removed teradataml context from TDConn
1 parent 14b4951 commit 91a9e0f

File tree

4 files changed

+16
-14
lines changed

4 files changed

+16
-14
lines changed

src/teradata_mcp_server/server.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from mcp.server.fastmcp.prompts.base import UserMessage, TextContent
1212
from dotenv import load_dotenv
1313
import tdfs4ds
14-
import teradataml as tdml
1514
import inspect
1615
from sqlalchemy.engine import Connection
1716
import argparse
@@ -67,8 +66,6 @@
6766
else:
6867
_enableEVS = False
6968

70-
_requireTdmlContext = _enableEFS or _enableEVS
71-
7269
# Set up logging
7370
os.makedirs("logs", exist_ok=True)
7471
logging.basicConfig(
@@ -88,11 +85,13 @@
8885

8986
# Connect to the Teradata server
9087
# Initiate base connection
91-
_tdconn = td.TDConn(tdml_context=_requireTdmlContext)
88+
_tdconn = td.TDConn()
9289

9390
# If the feature store is enabled, set it up
94-
if any(re.match(pattern, 'fs_*') for pattern in config.get('tool',[])):
91+
if _enableEFS:
9592
fs_config = td.FeatureStoreConfig()
93+
import teradataml as tdml # import of the teradataml package
94+
tdml.create_context(tdsqlengine=_tdconn.engine)
9695

9796
# If the enterprise vector store is enabled, set it up
9897
if _enableEVS and (len(os.getenv("VS_NAME", "").strip()) > 0):
@@ -142,7 +141,12 @@ def execute_db_tool(tool, *args, **kwargs):
142141
# (Re)initialize if needed
143142
if not getattr(_tdconn, "engine", None):
144143
logger.info("Reinitializing TDConn")
145-
_tdconn = td.TDConn(tdml_context=_requireTdmlContext)
144+
_tdconn = td.TDConn()
145+
if _enableEFS:
146+
fs_config = td.FeatureStoreConfig()
147+
import teradataml as tdml # import of the teradataml package
148+
tdml.create_context(tdsqlengine=_tdconn.engine)
149+
146150

147151
# Check is the first argument of the tool is a SQLAlchemy Connection
148152
sig = inspect.signature(tool)

src/teradata_mcp_server/tools/fs/fs_tools.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010

1111
logger = logging.getLogger("teradata_mcp_server")
12+
1213
from teradata_mcp_server.tools.utils import serialize_teradata_types, rows_to_json, create_response
1314

1415
#------------------ Do not make changes above ------------------#
@@ -235,11 +236,12 @@ def handle_fs_getAvailableDatasets(conn: TeradataConnection, fs_config, *args, *
235236
"""
236237
List the list of available datasets.Requires a configured `db_name` in the feature store config.Use this to explore the datasets that are available .
237238
"""
239+
238240
db_name = fs_config.db_name
239241
logger.info(f"Tool: handle_fs_getAvailableDatasets: Args: db_name: {db_name}")
240242

241243
is_a_feature_store = False
242-
244+
243245
try:
244246
is_a_feature_store = tdfs4ds.connect(database=db_name)
245247
except Exception as e:
@@ -248,13 +250,13 @@ def handle_fs_getAvailableDatasets(conn: TeradataConnection, fs_config, *args, *
248250

249251
if not is_a_feature_store:
250252
return create_response({"error": f"There is no feature store in {db_name}"}, {"tool_name": "handle_fs_getAvailableDatasets", "db_name": db_name})
251-
253+
252254
try:
253255
data = tdfs4ds.dataset_catalog().to_pandas()
254256
except Exception as e:
255257
logger.error(f"Error retrieving available datasets: {e}")
256258
return create_response({"error": str(e)}, {"tool_name": "handle_fs_getAvailableDatasets", "db_name": db_name})
257-
259+
258260
metadata = {
259261
"tool_name": "fs_getAvailableDatasets",
260262
"db_name": db_name,

src/teradata_mcp_server/tools/fs/fs_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from sqlalchemy.engine import Connection
77
from sqlalchemy import text
88

9-
109
logger = logging.getLogger("teradata_mcp_server")
1110

1211
class FeatureStoreConfig(BaseModel):
@@ -61,6 +60,7 @@ def fs_setFeatureStoreConfig(
6160
data_domain: Optional[str] = None,
6261
entity: Optional[str] = None,
6362
) -> "FeatureStoreConfig":
63+
6464
if db_name:
6565
if tdfs4ds.connect(database=db_name):
6666
logger.info(f"connected to the feature store of the {db_name} database")

src/teradata_mcp_server/tools/td_connect.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
class TDConn:
2222
engine: Optional[Engine] = None
2323
connection_url: Optional[str] = None
24-
tdml_context: Optional[bool] = False
2524

2625
# Constructor
2726
# It will read the connection URL from the environment variable DATABASE_URI
@@ -67,9 +66,6 @@ def __init__(self, connection_url: Optional[str] = None, tdml_context: Optional[
6766

6867
# Create the teradataml context
6968
self.tdml_context = tdml_context
70-
if self.tdml_context:
71-
import teradataml as tdml # import of the teradataml package
72-
tdml.create_context(tdsqlengine=self.engine)
7369

7470
# Destructor
7571
# It will close the SQLAlchemy connection and engine

0 commit comments

Comments
 (0)