SAS MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_API_KEY | No | Optional API key to require from MCP clients (sent as X-API-Key or Authorization: Bearer) | |
| MCP_TRANSPORT | No | MCP transport to use: set to 'sse' to serve SSE instead of the default Streamable HTTP (http) | |
| SCOPE_ENFORCE | No | Whether to enforce the scope: 'true' (default) blocks out-of-scope access, 'false' only hides from listings | |
| USE_CASE_NAME | No | Name of the use case for scoping the assistant (returned by get_use_case) | |
| VIYA_ENDPOINT | No | The base URL of your SAS Viya environment (e.g. https://your-viya-server.com) | |
| VIYA_PASSWORD | No | Your SAS Viya password for server-side authentication (stdin/direct HTTP modes) | |
| VIYA_USERNAME | No | Your SAS Viya username for server-side authentication (stdin/direct HTTP modes) | |
| ALLOWED_MODELS | No | Comma- or newline-separated list of allowed model IDs or names | |
| ALLOWED_TABLES | No | Comma- or newline-separated list of allowed CAS tables (table, caslib.table, or server.caslib.table) | |
| ALLOWED_DECISIONS | No | Comma- or newline-separated list of allowed decision / MAS-module IDs or names | |
| VIYA_REFRESH_TOKEN | No | A refresh token for headless authentication to SSO/federated environments (e.g. Okta) when password grant is not available | |
| USE_CASE_DESCRIPTION | No | Description of the use case for scoping the assistant |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_use_caseA | Return this assistant's use-case scope: the datasets, models, and decisions it is limited to. Call this first to learn which resources you may work with. If the
assistant is not scoped to a use case, |
| execute_sas_codeA | Executes the provided SAS code in the Viya environment and returns information about the completed Job. This will create a job definition for the SAS code, execute it, and then retrieve the results. |
| render_chartA | Render an interactive chart in the chat UI. Use whenever the user asks to show / plot / visualize / graph / compare
data, or when a chart makes the answer clearer than text. Call this AFTER
fetching the rows with the data tools (e.g. get_castable_data) or computing
them with execute_sas_code, then pass the rows in as The chart is drawn by the user interface from this call; the tool itself does no plotting and returns the normalized chart spec. |
| list_cas_serversA | List available CAS servers on the Viya environment. |
| list_caslibsA | List CAS libraries (caslibs) available on a CAS server. |
| list_castablesB | List tables in a CAS library. |
| get_castable_infoA | Get metadata for a CAS table (row count, column count, size, etc.). |
| get_castable_columnsA | Get column metadata for a CAS table (names, types, labels, formats). |
| get_castable_dataB | Fetch rows from a CAS table with column names. |
| upload_dataC | Upload CSV data into a CAS table. |
| promote_table_to_memoryA | Promote a CAS table to global scope (makes it visible to all sessions). |
| list_filesB | List files in the Viya Files Service. |
| upload_fileB | Upload a file to the Viya Files Service. |
| download_fileB | Download file content from the Viya Files Service. |
| generate_synthetic_dataA | Generate a synthetic CAS table from a column specification. Use this to create realistic mock data on request (e.g. a driver-risk dataset for a demo). Recommended flow: first PROPOSE the column schema to the user in chat and get their agreement, THEN call this tool. The rows are generated in SAS and saved to CAS as a promoted (global) table, immediately usable by the data, charting, AutoML, and scoring tools. If a table with the requested name already exists, a numbered variant is created automatically (no error). Very large requests are capped to a safe maximum rather than failing. |
| submit_batch_jobA | Submit a SAS job for asynchronous execution via the Job Execution service. |
| get_job_statusB | Check the status of a submitted job. |
| list_jobsB | List recent jobs from the Job Execution service. |
| cancel_jobC | Cancel a running job. |
| get_job_logA | Retrieve the log of a completed job. |
| list_ml_projectsB | List AutoML pipeline automation projects. |
| create_ml_projectA | Create a new AutoML pipeline automation project. SAS auto-detects the target's measurement level from the data; for
classification targets, |
| run_ml_projectC | Run an AutoML pipeline automation project. |
| delete_ml_projectA | Delete an AutoML pipeline automation project. Use this to remove a project (for example, to start over with a different configuration) instead of calling the REST API from SAS code. |
| list_registered_modelsA | List models in the Model Repository. |
| list_models_and_decisionsB | List published scoring models and decisions (MAS modules). |
| score_dataB | Score data against a published model or decision (MAS module). |
| explain_dataA | Explain a column of a CAS table in relation to the other columns (SAS Insights). Returns natural-language descriptions of the variable, its outliers, and variable-screening results — useful for understanding which variables drive a target before exploring or modelling the data. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| debug_sas_log | Analyze a SAS log for errors, warnings, and notes with root-cause explanations and suggested fixes. |
| explore_dataset | Generate comprehensive SAS data-profiling code (CONTENTS, MEANS, FREQ, UNIVARIATE). |
| data_quality_check | Generate SAS code for a data quality assessment (completeness, uniqueness, validity). |
| statistical_analysis | Set up a complete SAS statistical analysis workflow with diagnostics. |
| optimize_sas_code | Review and optimize SAS code for performance, readability, or both. |
| explain_sas_code | Provide a block-by-block explanation of SAS code, tailored to skill level. |
| sas_macro_builder | Build a production-quality reusable SAS macro. |
| generate_report | Generate SAS ODS/PROC REPORT code for formatted output. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/raedaldweik/SAS_MCP_Server_personal'
If you have feedback or need assistance with the MCP directory API, please join our Discord server