Sas MCP Server
UnclaimedA self-hosted Model Context Protocol (MCP) server that connects to your SAS Viya environment and provides tools across the analytics lifecycle.
Install
docker run -e VIYA_ENDPOINT=https://your-viya-server.com -p 8134:8134 ghcr.io/sassoftware/sas-mcp-server:latestSet up this server
More in AI & ML
Browse the full directoryUnclaimed listing
Is this your MCP server?
This listing was auto-indexed from the public record. Claim it to edit the page, set compatibility and unlock growth tools. Takes under two minutes.
Claim this serverSecurity profile
Claimed and verified servers get a weekly static scan that shows what the code can reach: external services, environment variables, shell commands, agent configuration folders, plus any dependencies with known advisories. Claim this listing to get one. How the security profile works
40 of 40 tools
Documented tools (40)
From project documentation. A server handshake does not verify each tool’s description or behavior.
apply_report_operations
The authoring workhorse — apply an ordered batch of native VA operations (addData, addPage, addObject, updateObject, setParameterValue, updateData, changeData, applyDataView) to a report. Give a page a title with addPage's title field (a text band at the top of the page body — VA headers are control
catalog_download_table_profile
Download a table's data dictionary and column profile as CSV, identified by either instanceid or resourceuri.
catalog_find_instance
Resolve the catalog instance for a source-asset resourceuri, bridging a search hit to the profiling and download tools without handling an instance id by hand.
catalog_get_adhoc_analysis
Poll a profiling job and cross-check the target instance, reporting profileready once results have landed on the asset — so a download isn't fired too early.
catalog_get_agent_history
Inspect an agent's run history — status and how much metadata each run enumerated/added/updated/removed.
catalog_list_agents
List the catalog's discovery agents (the crawlers that populate metadata).
catalog_run_adhoc_analysis
Submit an ad-hoc profiling job for a table. NLP enrichment (language, sentiment, semantic IDs) is on by default, populating informationPrivacy, nlpTerms, nlpTags, and mostImportantFields.
catalog_run_agent
Start a discovery agent run (asynchronous) to crawl its data source and refresh catalog metadata.
catalog_search
Search the catalog for assets (tables, columns, reports, …) using the SAS catalog search grammar (free text, facets like AssetType:Report, ranges). Each hit carries a resourceuri you can hand to the matching tool (e.g. getreport, getcastabledata).
catalog_search_helper
Discover how to query the catalog — list the available facets, or the valid values for one facet — so you can build precise catalogsearch queries.
copy_report
Copy a report to a new one (optionally renaming/refoldering). Pairs with a changeData operation for the copy-and-replace pattern.
create_report
Create a Visual Analytics report and return its id. Optionally pass an operations array to build the whole report in one atomic call; the result carries the created page/object names+labels and a verify hint.
delete_report
Delete a report and its content.
describe_report_objects
Discover what a report can contain — the eight report operations and every addable object (bar chart, list table, geo map, key value, …) with a one-line purpose, its data roles, common options, and an example payload. Call with no arguments for the catalog (including an intent→object map, placement
download_file
Download file content
execute_sas_code
Execute SAS code snippets and retrieve execution results (log and listing output). Runs in a reusable, per-user compute session that is kept warm across calls, so SAS state (WORK tables, macro variables, assigned librefs) persists between successive calls — use resetcomputesession to start fresh.
export_report
export a report (or specific report objects) in any format the VA service supports — package (zip), pdf, png, svg, csv, tsv, xlsx, or summary. Text formats come back inline, png as image content, and binary formats (package/pdf/xlsx) as an embedded file with the right MIME type.
get_castable_columns
Get column names, types, labels, formats
get_castable_data
Fetch sample rows from a CAS table
get_castable_info
Get table metadata (row count, columns, size)
get_job_status
Check job state
get_report
Get report metadata and definition
get_report_outline
Read a report's structure back — pages → objects with the handles the other tools need (object name for placement/updateObject targets, label for exportreport, page label for page placement).
list_cas_servers
List available CAS servers
list_caslibs
List CAS libraries on a server
list_castables
List tables in a CAS library
list_compute_columns
List the columns of a table in a SAS library
list_compute_contexts
List available compute contexts
list_compute_libraries
List the SAS libraries (librefs) assigned in a compute context
list_compute_tables
List the tables in a SAS library within a compute context
list_files
List files in the Viya Files Service
list_reports
List Visual Analytics reports
list_source_tables
List source tables not yet loaded into memory (candidates for promotion)
promote_table_to_memory
Load a source table into memory at global scope (idempotent)
query_data
Run a FedSQL SELECT against CAS or compute data and get the rows back — one SQL surface over both storage tiers. Pick the tier with target (cas for caslib.table, compute for libref.table); joins, subqueries, aggregation, and UNION all work, and the row cap is applied server-side by the tool (a LIMIT
reset_compute_session
Delete the cached compute session for a context, discarding its SAS state and forcing a fresh session on the next call
submit_batch_job
Submit a SAS job for async execution
upload_data
Upload a data file into a CAS table — read server-side so the data never passes through the model's context — from filepath (the server reads it off disk) or url (the server fetches it and converts it to the multipart upload the endpoint requires). Ingests the formats the casManagement uploadTable A
upload_file
Upload a file to the Viya Files Service, optionally into a Content folder (parentfolderuri). Content comes from exactly one of content (inline text), filepath (read server-side, binary-safe — xlsx, zip, images — gated by ALLOWLOCALFILEUPLOAD), or url (server-side fetch)
upload_inline_data
Create a small CAS table from inline csv/tsv text passed as a string (a lookup/mapping table the model builds on the fly, or a quick test table). The payload travels through the model's context, so it's for tiny tables only — use uploaddata for files or anything larger.
Tool change history
FAQ
Questions about Sas MCP Server
- How do I connect Sas MCP Server to Claude?
- The listing records `docker run -e VIYA_ENDPOINT=https://your-viya-server.com -p 8134:8134 ghcr.io/sassoftware/sas-mcp-server:latest` as its setup step. Run it, then follow the repository's instructions for the client configuration; the listing names Claude Code, Cursor, VS Code as compatible clients.
- Is Sas MCP Server free?
- The listed licence is Apache-2.0. Check the upstream terms for permitted use and commercial requirements; a public repository does not by itself mean the software is free or open source. Connected APIs and hosted services may have separate charges.
- What can Sas MCP Server do?
- Sas MCP Server documents 40 tools to the agent, including apply_report_operations, catalog_download_table_profile, catalog_find_instance. The descriptions above come from project documentation. A live handshake does not test individual tool behavior.