You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,6 +37,13 @@ We are providing groupings of tools and associated helpful prompts to support al
37
37
38
38
**Step 3.** - There are many client options availale, the [Client Guide](docs/client_guide/CLIENT_GUIDE.md) explains how to configure and run a sample of different clients.
39
39
40
+
<br>
41
+
42
+
[A Video Library](./docs/VIDEO_LIBRARY.md) has been curated to assist.
43
+
44
+
<br>
45
+
46
+
40
47
41
48
### Quick start with Claude desktop
42
49
If you want to quickly evaluate the tool, we recommend using Claude desktop, the uv package manager and [Teradata Clearscape Experience](https://www.teradata.com/getting-started/demos/clearscape-analytics).
@@ -65,6 +72,10 @@ If you want to quickly evaluate the tool, we recommend using Claude desktop, the
65
72
}
66
73
```
67
74
75
+
## Contributing
76
+
Please refer to the [Contributing](./docs/CONTRIBUTING.md) guide and the [Developer Guide](./docs/developer_guide/DEVELOPER_GUIDE.md).
Copy file name to clipboardExpand all lines: docs/CONTRIBUTING.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,4 +12,4 @@ Make sure you have setup your environment based on the Developer Guide in this r
12
12
- Code structure should be maintained. The structure of the repo and files has been carefully crafted, and any deviations from that should be only done when agreed upon by the entire team.
13
13
14
14
## Design Guidelines
15
-
- Refer to Developer Guide.
15
+
- Refer to [Developer Guide](./developer_guide/DEVELOPER_GUIDE.md).
Copy file name to clipboardExpand all lines: docs/GETTING_STARTED.md
+7-10Lines changed: 7 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# MCP Server - Getting Started
2
2
3
-

3
+

4
4
5
5
This document will cover the process and options for getting the teradata-mcp-server up and running
6
6
@@ -10,8 +10,10 @@ Assumes that you have a running Teradata environment, you should have the follow
10
10
3. user password - password for the corresponding user name
11
11
4. database - On Teradata systems this is typically the same as you user name
12
12
13
-
## Step 0 - Installing git
14
-
Refer to the [git](https://git-scm.com/) website for download and installation instructions for your environment.
13
+
## Step 0 - Installing environment
14
+
- Refer to the [git](https://git-scm.com/) website for download and installation instructions, git will be used to pull code from the github repository.
15
+
- Refer to the [Installing uv](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer) guide to assist with installing uv, uv is used to manage packages that are used.
16
+
- Refer to the [Python.org](https://www.python.org/downloads/) for downloading and installing python 3.11 or greater.
15
17
16
18
## Step 1 - Download the Software
17
19
Clone the mcp-server repository with:
@@ -51,14 +53,9 @@ Deployment Choice
51
53
52
54
The recommended choice will be to deploy Streamable-http in a docker container. [Jump to next section](#step-5---using-docker) for the docker option.
53
55
54
-
## Step 4 - Decide on the tools/prompts you want to be available (optional) to a profile
55
-
56
-
Open the [configure_tools.yaml](../configure_tools.yml) file. The first level of the structure is the profile name, then the module name, then allmodule/tools/prompts
57
-
58
-
For each module if you set allmodule to True then all tools and prompts will be visible unless you explicitly set the tool/prompt name to False. If the allmodule is set to False, then nothing will be visible unless you explicitly set the tool/prompt name to True.
59
-
60
-
If no profile is defined then the default profile will be "all" this will enable all tools and prompts.
56
+
## Step 4 - Customizing the server (optional)
61
57
58
+
Refer to the [Customizing](CUSTOMIZING.md) instuctions
Copy file name to clipboardExpand all lines: docs/client_guide/CLIENT_GUIDE.md
+11-4Lines changed: 11 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Working with MCP Clients
2
2
3
-

3
+

4
4
5
5
This documet will cover the process and options for getting a client tool to connect to the teradata-mcp-server. Note that you have many client options, we will cover some but not all.
6
6
@@ -10,19 +10,26 @@ The transport mode that the server is running needs to be the same as the client
10
10
11
11
If you configured the server as a Streamable-http transport mode then the client also needs to be configured as a streamable-http mode.
12
12
13
+
There are many client options that you can choose from, they each have different strengths, we have curated a small number so that you have examples.
Copy file name to clipboardExpand all lines: docs/developer_guide/DEVELOPER_GUIDE.md
+25-3Lines changed: 25 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -123,7 +123,14 @@ Two guides have been created to show how to add tools and prompts:
123
123
<br>
124
124
125
125
## Tools testing
126
-
Every module will have at least one prompt that would be responsible for testing all of the tools in the module. The following template should be used in the module_objects.ylm file, the name of the testig prompt should be test_\<module name\>Tools:
126
+
Every module will have at least one prompt that would be responsible for testing all of the tools in the module.
127
+
128
+
Use the tester profile to see the test prompts.
129
+
130
+
`uv run teradata-mcp-server --profile tester`
131
+
132
+
The following test prompt template should be modified and placed in the module_objects.ylm file (e.g. base_objects.yml), the name of the testig prompt should be test_\<module name\>Tools. (e.g. test_baseTools):
133
+
127
134
128
135
```
129
136
test_baseTools:
@@ -136,39 +143,54 @@ test_baseTools:
136
143
137
144
## Phase 0 - Get a list of databases
138
145
- Get a list of databases from the user. Use the base_databaseList function to get the list. The tool should return a list of databases in the Teradata system.
146
+
139
147
## Phase 1 - Get the list of tables in each database
140
148
- For the DBC database, get the list of tables. Use the base_tableList function to get the list. The tool should return a list of tables in the DBC database.
149
+
141
150
## Phase 2 - Create a test table in your default database
142
151
- Create a customer table in your default database called test_customer, the table should have an Cust_id column. Use the base_writeQuery function to create the table. A test_customer table should be created.
143
152
- Add 10 rows to the test_customer table. Use the base_writeQuery function to add the rows.
153
+
144
154
## Phase 3 - Test the query tool
145
155
- test the query tool by running a query on the test_customer table. Use the base_readQuery function to run the query. The query should return the 10 rows you added in the previous phase.
146
156
- test the query tool by running a query on the test_customer table with a filter. Use the base_readQuery function to run the query. The query should return only the rows that match the filter. (example of a filter is Cust_id > 5)
157
+
147
158
## Phase 4 - Test the table DDL tool
148
159
- Get the DDL of the test_customer table. Use the base_tableDDL function to get the DDL. The tool should return the DDL of the test_customer table.
160
+
149
161
## Phase 5 - Test the column description tool
150
162
- Get the column description of the test_customer table. Use the base_columnDescription function to get the columns description. The tool should return the column description of the test_customer table.
163
+
151
164
## Phase 6 - Test the table preview tool
152
165
- Get the preview of the test_customer table. Use the base_tablePreview function to get the preview. The tool should return the first 5 rows of the test_customer table and the column information.
166
+
153
167
## Phase 7 - Test the table affinity tool
154
168
- Get the table affinity of the test_customer table. Use the base_tableAffinity function to get the affinity. The tool should return the table affinity of the test_customer table.
169
+
155
170
## Phase 8 - Test the table usage tool
156
171
- Get the table usage of the test_customer table. Use the base_tableUsage function to get the usage. The tool should return the table usage of the test_customer table.
172
+
157
173
## Phase 9 - Clean up
158
174
- Drop the test_customer table. Use the base_writeQuery function to drop the table. The tool should return a success message.
175
+
159
176
## Communication guidelines:
160
177
- Be concise but informative in your explanations
161
178
- Clearly indicate which phase the process is currently in
162
-
- summarize the success of the phase before moving to the next phase
179
+
- summarize the success or any failure of the phase before moving to the next phase
163
180
## Final output guidelines:
164
181
- return in markdown results for all phases
165
182
- Example:
166
183
***Phase 0:*** list databases: Successful
167
184
***Phase 1:*** list tables in DBC database: Successful
Before code is submitted, all test scripts should run with a successful outcome, this ensures that new code does not break old code. All new code needs to have test prompts added to the module test prompt.
190
+
191
+
You can run the test prompts via your client of choice.
Copy file name to clipboardExpand all lines: src/teradata_mcp_server/tools/base/base_objects.yml
+26-16Lines changed: 26 additions & 16 deletions
Original file line number
Diff line number
Diff line change
@@ -22,37 +22,47 @@ test_baseTools:
22
22
Perform the phases in order, and do not skip any phase.
23
23
24
24
## Phase 0 - Get a list of databases
25
-
- Get a list of databases from the user. Use the base_databaseList function to get the list. The tool should return a list of databases in the Teradata system.
25
+
- Get a list of databases from the user. Use the base_databaseList function to get the list. The tool should return a list of databases in the Teradata system, if no data is returned then fail this test.
26
26
## Phase 1 - Get the list of tables in each database
27
-
- For the DBC database, get the list of tables. Use the base_tableList function to get the list. The tool should return a list of tables in the DBC database.
27
+
- For the DBC database, get the list of tables. Use the base_tableList function to get the list. The tool should return a list of tables in the DBC database, if no data is returned then fail this test.
28
28
## Phase 2 - Create a test table in your default database
29
29
- Create a customer table in your default database called test_customer, the table should have an Cust_id column. Use the base_writeQuery function to create the table. A test_customer table should be created.
30
30
- Add 10 rows to the test_customer table. Use the base_writeQuery function to add the rows.
31
31
## Phase 3 - Test the query tool
32
-
- test the query tool by running a query on the test_customer table. Use the base_readQuery function to run the query. The query should return the 10 rows you added in the previous phase.
33
-
- test the query tool by running a query on the test_customer table with a filter. Use the base_readQuery function to run the query. The query should return only the rows that match the filter. (example of a filter is Cust_id > 5)
32
+
- test the query tool by running a query on the test_customer table. Use the base_readQuery function to run the query. The query should return the 10 rows you added in the previous phase, if no data is returned then fail this test.
33
+
- test the query tool by running a query on the test_customer table with a filter. Use the base_readQuery function to run the query. The query should return only the rows that match the filter, if no data is returned then fail this test. (example of a filter is Cust_id > 5)
34
34
## Phase 4 - Test the table DDL tool
35
-
- Get the DDL of the test_customer table. Use the base_tableDDL function to get the DDL. The tool should return the DDL of the test_customer table.
35
+
- Get the DDL of the test_customer table. Use the base_tableDDL function to get the DDL. The tool should return the DDL of the test_customer table, if no data is returned then fail this test.
36
36
## Phase 5 - Test the column description tool
37
-
- Get the column description of the test_customer table. Use the base_columnDescription function to get the columns description. The tool should return the column description of the test_customer table.
37
+
- Get the column description of the test_customer table. Use the base_columnDescription function to get the columns description. The tool should return the column description of the test_customer table, if no data is returned then fail this test.
38
38
## Phase 6 - Test the table preview tool
39
-
- Get the preview of the test_customer table. Use the base_tablePreview function to get the preview. The tool should return the first 5 rows of the test_customer table and the column information.
39
+
- Get the preview of the test_customer table. Use the base_tablePreview function to get the preview. The tool should return the first 5 rows of the test_customer table and the column information, if no data is returned then fail this test.
40
40
## Phase 7 - Test the table affinity tool
41
-
- Get the table affinity of the test_customer table. Use the base_tableAffinity function to get the affinity. The tool should return the table affinity of the test_customer table.
41
+
- Get the table affinity of the test_customer table. Use the base_tableAffinity function to get the affinity. The tool should return the table affinity of the test_customer table, if no data is returned then fail this test.
42
42
## Phase 8 - Test the table usage tool
43
-
- Get the table usage of the test_customer table. Use the base_tableUsage function to get the usage. The tool should return the table usage of the test_customer table.
43
+
- Get the table usage of the test_customer table. Use the base_tableUsage function to get the usage. The tool should return the table usage of the test_customer table, if no data is returned then fail this test.
44
44
## Phase 9 - Clean up
45
45
- Drop the test_customer table. Use the base_writeQuery function to drop the table. The tool should return a success message.
46
46
## Communication guidelines:
47
47
- Be concise but informative in your explanations
48
48
- Clearly indicate which phase the process is currently in
49
-
- summarize the success of the phase before moving to the next phase
50
-
## Final output guidelines:
51
-
- return in markdown results for all phases
52
-
- Example:
53
-
***Phase 0:*** list databases: Successful
54
-
***Phase 1:*** list tables in DBC database: Successful
- summarize the success or any failure of the phase before moving to the next phase
50
+
## Final output guidelines:
51
+
- return in markdown results for all phases as a table including the phase number, description, success or failure status, and a description of the outcome.
52
+
- if a tool does not return any results, then fail that test and indicate it in the outcome.
53
+
## Example output:
54
+
- | Phase | Description | Status | Outcome |
55
+
- |-------|-------------|--------|---------|
56
+
- | 0 | Get a list of databases | Success | List of databases returned |
57
+
- | 1 | Get the list of tables in DBC database | Success | List of tables returned |
58
+
- | 2 | Create a test table in default database | Success | test_customer table created |
59
+
- | 3 | Test the query tool on test_customer table | Success | 10 rows returned |
60
+
- | 4 | Get the DDL of the test_customer table | Success | DDL returned |
61
+
- | 5 | Get the column description of the test_customer table | Success | Column description returned |
62
+
- | 6 | Get the preview of the test_customer table | Success | First 5 rows and column info returned |
63
+
- | 7 | Get the table affinity of the test_customer table | Success | Table affinity returned |
64
+
- | 8 | Get the table usage of the test_customer table | Success | Table usage returned |
65
+
- | 9 | Drop the test_customer table | Success | Table dropped successfully |
0 commit comments