sasxpt_get_tablesLABSCO SUMMARY
Turns SAS transport files into something an assistant can query.
SAS xpt is an awkward format to explore interactively; the CData driver flattens it into SQL tables and this server puts those tables in front of a model. Budget your time for the driver install and licensing step rather than for the MCP wiring. The tools only read: writes, updates, deletes and actions are not in this build — CData offers those in its separate MCP Server for SAS xpt.
What it is
A Java MCP server that wraps the CData JDBC Driver for SAS xpt, exposing the data as relational SQL models so a client can answer questions about it without anyone writing SQL. This build is read-only.
What you get
- A tool that lists the tables the driver exposes, returned as CSV with a header row
- A tool that lists the columns on any one of those tables
- A tool that runs a SQL SELECT and hands back the rows
- Tool names carry the prefix you set in the .prp file — the sample
Prefix=sasxptgivessasxpt_get_tables,sasxpt_get_columnsandsasxpt_run_query - Calls you can script without a chat client: the repository README has a JSON-RPC 2.0 request example for each tool
Requirements
Build the jar with mvn clean install, then install and license the CData JDBC Driver for SAS xpt (java -jar cdata.jdbc.sasxpt.jar --license). Write a .prp file with DriverPath, DriverClass cdata.jdbc.sasxpt.SASxptDriver and the JdbcUrl copied from the connection-string utility. stdio only — the client has to run on the same machine as the server.
Setup effort
Build from source — clone the repository, then point your client at the binary
USE CASES
Getting oriented in an unfamiliar transport file
List the tables, then the columns on the one you care about, before asking anything that depends on a field name.
Pulling a summary out of study data
Ask the question in English; the server issues the SELECT and returns the rows as CSV.
3 tools
Listed in project docs. Your client may show a different list.
sasxpt_get_columnssasxpt_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. Tool names start with the Prefix in the .prp file, so the sample Prefix=sasxpt gives sasxpt_run_query. All three are read-only (run_query accepts only SELECT), even though the README's usage notes say the client can write, update and delete.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Clone the repository, then point your client at the binary. This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/cdatasoftware/sas-xpt-mcp-server-by-cdata.git
cd sas-xpt-mcp-server-by-cdata
mvn clean installDownload and install the CData JDBC Driver for SAS xpt from https://www.cdata.com/drivers/sasxpt/download/jdbc
License the driver: from the driver install's lib folder run java -jar cdata.jdbc.sasxpt.jar --license, then enter your name, email, and "TRIAL" (or your license key)
Build the connection string: run java -jar cdata.jdbc.sasxpt.jar to open the Connection String utility, click "Test Connection" (browser OAuth if the source needs it), and copy the connection string
Create sas-xpt.prp with:
Prefix=sasxpt
ServerName=CDataSASxpt
ServerVersion=1.0
DriverPath=<YOUR_DRIVER_PATH>
DriverClass=cdata.jdbc.sasxpt.SASxptDriver
JdbcUrl=<YOUR_JDBC_URL>
Tables=Tables only picks which tables also get a ready-made description for your assistant, and empty means none; the server can still list and query every table your connection string reaches, so to keep data out of reach, limit that connection or the account it signs in with.
Add the mcpServers entry below to claude_desktop_config.json and fully restart the client
MCP Clients
Claude Desktop — macOS or Linux
{
"mcpServers": {
"sas-xpt": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_SAS_XPT>"
]
}
}
}