Skip to content

Commit a11a017

Browse files
committed
Update README.md
clarify MCP tools and clean up.
1 parent d16e27d commit a11a017

File tree

1 file changed

+78
-39
lines changed

1 file changed

+78
-39
lines changed

README.md

Lines changed: 78 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
![CI](https://github.com/SoftwareAG/CONNX_MCP_Sample/actions/workflows/ci.yml/badge.svg)
2-
![Python Version](https://img.shields.io/badge/Python-3.11%2C%203.12-blue)
2+
![Python Version](https://img.shields.io/badge/Python-3.11%2C%203.12-blue)
33

44
## Table of Contents
55

@@ -19,31 +19,32 @@
1919

2020
## CONNX MCP Server
2121

22-
This project is a demonstration and reference implementation intended to show how an MCP server can be structured, configured, and hosted locally to enable AI-assisted access to CONNX data.
22+
This project is a demonstration and reference implementation intended to show how an MCP server can be structured, configured, and hosted locally to enable AI-assisted access to Mainframe VSAM data via Software AG CONNX.
2323

2424
The server is not intended to be a complete or hardened production solution. Instead, it provides a focused, minimal example of MCP concepts, including tool definitions, resource exposure, ANSI SQL-92 query patterns, and safe interaction with legacy data sources.
2525

2626
## Features
2727

2828
- ODBC connection to CONNX for unified database access.
29-
- MCP tools: `query_connx`, `update_connx`.
29+
- MCP tools: For example `query_connx`, `update_connx`.
3030
- Resources: Schema discovery.
3131
- Async support for efficiency.
3232

3333
## Prerequisites
3434

35-
- Python 3.8 or higher
35+
- Python 3.8 or higher (tested with Python 3.11/3.12)
3636
- CONNX ODBC driver installed and configured
37+
- For Windows: CONNX ODBC Driver.
38+
- For Linux: unixODBC with CONNX driver
3739
- Valid CONNX DSN (Data Source Name) configured in your system
3840
- Database credentials with appropriate read/write permissions
39-
- For Windows: Microsoft ODBC Driver for CONNX
40-
- For Linux: unixODBC with CONNX driver
4141

4242
## Installation
4343

4444
1. Clone the repo: `git clone https://github.com/SoftwareAG/CONNX_MCP_Sample.git`
4545
2. Install dependencies: `pip install -r requirements.txt`
4646
3. Configure CONNX DSN (see Configuration section below)
47+
4. Configure Claude Desktop MCP connection
4748

4849
## Configuration
4950

@@ -76,7 +77,7 @@ connection_string = (
7677

7778
This server is designed to be launched by an MCP host (e.g., Claude Desktop) using stdio transport.
7879

79-
You typically do not run it manually except for smoke testing.
80+
You typically do not run the Python code manually except for smoke testing.
8081

8182
---
8283

@@ -86,7 +87,7 @@ This server exposes functionality through **MCP tools**, allowing clients to exe
8687

8788
MCP tools provide a safe, well-defined interface for interacting with CONNX-backed data without exposing raw database connections to clients.
8889

89-
## Currently Available Tools
90+
## Sample of Currently Available Tools
9091

9192
### `query_connx`
9293

@@ -240,7 +241,7 @@ The CONNX MCP demo uses 3 Mainframe VSAM datasets. COBOL copybooks were used to
240241

241242
### Customers
242243

243-
```cobol
244+
```text
244245
245246
01 CUSTOMERS-VSAM.
246247
05 CUSTOMERID PIC X(5).
@@ -255,7 +256,7 @@ The CONNX MCP demo uses 3 Mainframe VSAM datasets. COBOL copybooks were used to
255256

256257
### Orders
257258

258-
```cobol
259+
```text
259260
260261
01 ORDERS-VSAM.
261262
05 ORDERID PIC 9(4).
@@ -267,44 +268,82 @@ The CONNX MCP demo uses 3 Mainframe VSAM datasets. COBOL copybooks were used to
267268

268269
### Products
269270

270-
```cobol
271+
```text
271272
272273
01 PRODUCTS-VSAM.
273-
05 PRODUCTID PIC 9(4).
274-
05 PRODUCTNAME PIC X(40).
275-
05 PRODUCTPRICE PIC 9(4).
276-
05 PRODUCTKEYWORDS PIC X(48).
277-
05 PRODUCTGROUPID PIC 9(4).
274+
05 PRODUCTID PIC 9(4).
275+
05 PRODUCTNAME PIC X(40).
276+
05 PRODUCTPRICE PIC 9(4).
277+
05 PRODUCTKEYWORDS PIC X(48).
278+
05 PRODUCTGROUPID PIC 9(4).
278279
```
279280

280281
---
281282

282283
## Sample Questions
283284

284-
1. “How many customers do we have in total?”
285-
2. “Which customers live in California?”
286-
3. “Which customers are in San Francisco?”
287-
4. “How many customers do we have in each state?”
288-
5. “Show me details for customer Z3375.”
289-
6. “Do we have any customers missing phone numbers?”
290-
7. "What products are most frequently ordered by customers?"
291-
292-
### What MCP tools are available?
293-
294-
CONNX Database Server Tools:
295-
296-
- query_connx - Query data from CONNX-connected databases using SQL (SELECT-only queries)
297-
- update_connx - Perform update operations (requires CONNX_ALLOW_WRITES=true)
298-
- count_customers - Get total number of customers
299-
- customers_by_state - Get customer distribution by state
300-
- customer_cities - Get customer cities information
301-
- customers_missing_phone - Find customers without phone numbers
302-
- get_customer - Retrieve a specific customer by ID
303-
- find_customers - Search for customers by state and optional city
304-
- describe_entities - Describe known business entities and their data sources
305-
- count_entities - Count rows for business entities (customers, clients, etc.)
306-
- customer_orders_for_product - Get detailed order information for a specific customer and product.
285+
- How many customers do we have in total?
286+
- Which customers live in California?
287+
- Which customers are in San Francisco?
288+
- How many customers do we have in each state?
289+
- Show me details for customer Z3375.
290+
- Do we have any customers missing phone numbers?
291+
- What products are most frequently ordered by customers?
292+
293+
---
294+
295+
### What MCP tools are available for the CONNX?
296+
297+
CONNX Demo Database Server Tools:
298+
299+
Core Query Tools
300+
301+
- **query_connx** - Execute SELECT queries (read-only, single statement)
302+
- **update_connx** - Execute INSERT/UPDATE/DELETE operations (requires `CONNX_ALLOW_WRITES=true`)
303+
304+
Customer-Specific Tools
305+
306+
- **count_customers** - Return total number of customers
307+
- **customers_by_state** - Get customer counts grouped by state
308+
- **customer_cities** - Get distinct list of customer cities
309+
- **customers_missing_phone** - Find customers without phone numbers
310+
- **get_customer** - Get full customer details by customer ID
311+
- **find_customers** - Find customers by state and optional city (with max_rows limit)
312+
- **customers_by_product** - Find customers who ordered a specific product (with optional order count)
313+
314+
Entity/Metadata Tools
315+
316+
- **describe_entities** - Describe known business entities (customers, orders, products) and their table mappings
317+
- **count_entities** - Count rows for any known business entity using natural language names
318+
319+
Resources (not tools, but available via MCP resources)
320+
321+
- **schema://schema** - Get all table/column schema information
322+
- **schema://schema/{table_name}** - Get schema for a specific table
323+
- **schema://domain/customers** - Canonical metadata about customers domain
324+
- **domain://datasets** - Information about available datasets
325+
- **semantic://entities** - Semantic entity information with relationships
326+
327+
---
328+
329+
## Tool Summary by Use Case
330+
331+
**For exploring data:**
332+
- `describe_entities` - Start here to see what's available
333+
- `query_connx` - Flexible SQL queries
334+
335+
**For customer operations:**
336+
- `get_customer` - Single customer lookup
337+
- `find_customers` - Search by location
338+
- `customers_by_product` - Product-based customer search
339+
- `count_customers` - Quick count
340+
341+
**For analytics:**
342+
- `customers_by_state` - Geographic distribution
343+
- `customers_missing_phone` - Data quality checks
344+
- `count_entities` - Entity counts with natural language
307345

346+
The tools follow a pattern of providing both low-level SQL access (`query_connx`) and high-level purpose-built tools for common operations.
308347

309348
---
310349

0 commit comments

Comments
 (0)